Software
Design
Basics
Software design
• Software design is a process to transform user requirements into
some suitable form, which helps the programmer in software coding
and implementation.
• Software design 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.
• the output of this process can directly be used into implementation in
programming languages.
Software Design Levels
• Architectural Design
• The architectural design is the highest abstract
version of the system.
• 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
• Detailed Design
• Detailed design deals with the implementation part of
what is seen as a system and its sub-systems in the
previous two designs.
مدوالرس ازی ی ک تکنی ک ب رای تقس یم ی ک
Modularization سیستم نرمافزاری به چندین ماژول مجزا و
• Modularization is a technique to
مس تقل اس ت ک ه انتظ ار میرود بتوانن د
divide a software system into
multiple discrete and independent .وظایف را به طور مستقل انجام دهند
modules, which are expected to be
این ماژوله ا ممکن اس ت ب ه عن وان
capable of carrying out task(s)
independently. س اختارهای پای ه ب رای ک ل نرماف زار عم ل
• These modules may work as basic .کنند
constructs for the entire software.
طراحی مدوالر به طور غیرعمدی از قوانین
• Modular design unintentionally
follows the rules of ‘divide and استراتژی حل مسئله ‘تقسیم و غلبه’ پیروی
conquer’ problem-solving strategy میکن د زی را مزای ای بس یاری ب ا ط راحی
this is because there are many
other benefits attached with the ”.مدوالر نرمافزار همراه است
modular design of a software.
Advantage of modularization
• Smaller components are easier to create.
• Program can be divided based on functional aspects
• Components can be re-used again
• Concurrent execution can be made possible
Software Analysis & Design
Tools
• Software analysis and design includes all activities, which help the
transformation of requirement specification into implementation.
• Requirement specifications specify all functional and non-
functional expectations from the software.
• these requirement specifications come in the shape of human
readable and understandable documents, to which a computer has
nothing to do.
• Software analysis and design is the intermediate stage, which helps
human-readable requirements to be transformed into actual code
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.
Types of DFD
• Logical DFD - This type of DFD shows how 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.
DFD Components
Levels of DFD
• 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 information
• Level 2 - At this level, DFD shows how data flows inside the modules
mentioned in Level 1.
• Higher level DFDs can be transformed into more specific lower level
DFDs with deeper level of understanding unless the desired level of
specification is achieved.
HIPO Diagram
• HIPO (Hierarchical Input Process Output) diagram .
• HIPO model was developed by IBM in year 1970.
• HIPO diagram represents the hierarchy of modules in the
software system.
• Analyst uses HIPO diagram in order to obtain high-level view of
system functions.
• HIPO diagrams are good for documentation purpose. Their
graphical representation makes it easier for designers and
managers to get the pictorial idea of the system structure.
Structured English
• graphs or diagrams, may are sometimes interpreted
differently by different people.
• Hence, analysts and designers of the software come
up with tools such as Structured English.
• It is nothing but the description of what is required to
code and how to code it.
• Structured English helps the programmer to write
error-free code.
Pseudo-Code
• Pseudo code is written more close to programming language.
• Pseudo code avoids variable declaration but they are written using
some actual programming language’s constructs, like C, Fortran,
Pascal etc.
Decision Tables
• A Decision table represents conditions and the respective actions to
be taken to address them, in a structured tabular format.
• It is a powerful tool to debug and prevent errors.
• to create the decision table, the developer must follow basic four
steps:
• Identify all possible conditions .
• Determine actions for all identified conditions
• Create Maximum possible rules
• Define action for each rule
Example
• of day-to-day problem with our Internet connectivity
Entity-Relationship Model
• Entity-Relationship model is a type of
database model based on the notion of real
world entities and relationship among them.
• We can map real world scenario onto ER
database model.
• ER Model creates a set of entities with their
attributes, a set of constraints and relation
among them.