0% found this document useful (0 votes)
16 views13 pages

Software Design

Software design is the process of transforming user requirements into a suitable form for coding and implementation, marking the first step in the Software Design Life Cycle (SDLC). It encompasses various levels including architectural design, high-level design, and the use of design tools like Data Flow Diagrams (DFD) to represent data flow within a system. Different design strategies such as structured design, function-oriented design, and object-oriented design are employed to effectively address software requirements.

Uploaded by

Claire Mangapan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views13 pages

Software Design

Software design is the process of transforming user requirements into a suitable form for coding and implementation, marking the first step in the Software Design Life Cycle (SDLC). It encompasses various levels including architectural design, high-level design, and the use of design tools like Data Flow Diagrams (DFD) to represent data flow within a system. Different design strategies such as structured design, function-oriented design, and object-oriented design are employed to effectively address software requirements.

Uploaded by

Claire Mangapan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 13

SOFTWARE

DESIGN
DEFINITION
 A process to transform user requirements into
some suitable form, which helps the programmer
in software coding and implementation.
 It is the first step in SDLC (Software Design Life
Cycle), which moves the concentration from
problem domain to solution domain. It tries to
specify how to fulfill the requirements mentioned
in SRS.
SOFTWARE DESIGN LEVELS
 Architectural Design - The architectural
design is the highest abstract version of the
system. It identifies the software as a system
with many components interacting with each
other. At this level, the designers get the idea of
proposed solution domain.
EXAMPLE: AutoCAD, 3DEXPERIENCE CATIA, Chief
Architect, SketchUp Pro, & TurboCAD
 High-level Design- The high-level design
breaks the ‘single entity-multiple component’
concept of architectural design into less-
abstracted view of sub-systems and modules
and depicts their interaction with each other.
High-level design focuses on how the system
along with all of its components can be
implemented in forms of modules. It recognizes
modular structure of each sub-system and their
relation and interaction among each other.
Example: Complete flowchart of the system and
navigation, blueprints
 High-level Design- The high-level design breaks the
‘single entity-multiple component’ concept of
architectural design into less-abstracted view of sub-
systems and modules and depicts their interaction
with each other. High-level design focuses on how the
system along with all of its components can be
implemented in forms of modules. It recognizes
modular structure of each sub-system and their
relation and interaction among each other.
Example: software performance requirements, software
external interface requirements, software design
constraints, and software quality attributes
DESIGN TOOLS
 Data Flow Diagram
Data flow diagram is graphical representation of flow of data in an
information system. It is capable of depicting incoming data flow, outgoing data
flow and stored data. The DFD does not mention anything about how data flows
through the system.
TYPES OF DFD
Data Flow Diagrams are either Logical or Physical.
 Logical DFD - This type of DFD concentrates on the system process, and flow
of data in the system.For example in a Banking software system, how data is
moved between different entities.
 Physical DFD - This type of DFD shows how the data flow is actually
implemented in the system. It is more specific and close to the implementation.
COMPONENTS

Entities - Entities are source and destination of information data. Entities


are represented by a rectangles with their respective names.
Process - Activities and action taken on the data are represented by
Circle or Round-edged rectangles.
Data Storage - There are two variants of data storage - it can either be
represented as a rectangle with absence of both smaller sides or as an
open-sided rectangle with only one side missing.
Data Flow - Movement of data is shown by pointed arrows. Data
movement is shown from the base of arrow as its source towards head of
the arrow as destination.
LEVELS OF DATA FLOW
DIAGRAM
 Level 0- Highest
abstraction level DFD is
known as Level 0 DFD, which
depicts the entire
information system as one
diagram concealing all the
underlying details. Level 0
DFDs are also known as
context level DFDs.
 Level 1 - The
Level 0 DFD is
broken down into
more specific,
Level 1 DFD.
Level 1 DFD
depicts basic
modules in the
system and flow
of data among
various modules.
Level 1 DFD also
mentions basic
processes and
sources of
SOFTWARE DESIGN STRATEGIES
There are multiple variants of software design:
 Structured Design
Structured design is a conceptualization of
problem into several well-organized elements of
solution. It is basically concerned with the solution
design. Benefit of structured design is, it gives better
understanding of how the problem is being solved.
Structured design also makes it simpler for designer
to concentrate on the problem more accurately.
 Function Oriented Design
In function-oriented design, the system is comprised of
many smaller sub-systems known as functions. These functions
are capable of performing significant task in the system. The
system is considered as top view of all functions.
Function oriented design inherits some properties of
structured design where divide and conquer methodology is used.
This design mechanism divides the whole system into
smaller functions, which provides means of abstraction by
concealing the information and their operation.. These functional
modules can share information among themselves by means of
information passing and using information available globally.
 Object Oriented Design
Object oriented design works around the entities and their
characteristics instead of functions involved in the software system.
This design strategies focuses on entities and its characteristics. The
whole concept of software solution revolves around the engaged
entities.
Let us see the important concepts of Object Oriented Design:
 Objects - All entities involved in the solution design are known as
objects. For example, person, banks, company and customers are
treated as objects. Every entity has some attributes associated to it
and has some methods to perform on the attributes.
 Classes - A class is a generalized description of an object. An object
is an instance of a class. Class defines all the attributes, which an
object can have and methods, which defines the functionality of the
object.
 Encapsulation - In OOD, the attributes (data variables) and methods
(operation on the data) are bundled together is called encapsulation.
Encapsulation not only bundles important information of an object
together, but also restricts access of the data and methods from the
outside world. This is called information hiding.
 Inheritance - OOD allows similar classes to stack up in hierarchical
manner where the lower or sub-classes can import, implement and re-
use allowed variables and methods from their immediate super
classes. This property of OOD is known as inheritance. This makes it
easier to define specific class and to create generalized classes from
specific ones.
 Polymorphism - OOD languages provide a mechanism where
methods performing similar tasks but vary in arguments, can be
assigned same name. This is called polymorphism, which allows a
single interface performing tasks for different types. Depending upon
how the function is invoked, respective portion of the code gets
executed.

You might also like