Unit-IV System Design
Unit-IV System Design
Session: 2023-24
Software Engineering
Kailash Soni
Associate Professor(CSE)
1
Software Engineering
Syllabus
2
Unit-IV
Software Design:
• Introduction,
• Design fundamentals.
Effective modular design:
• Data architectural and procedural design,
• Design documentation.
3
Contents
• OVERVIEW
• DESIGN PROCESS
• DESIGN CONCEPTS
Abstraction
Refinement
Modularity
Software Architecture
Control Hierarchy
Structural Partitioning
Data Structure
Software Procedure
Information Hiding
Overview
The main aim of design engineering is to generate a
model which shows resolution, delight and service to
customer.
Design Process
SRS Software Design
(create holistic view
(Problem Domain) (Solution Domain)
of software)
Software Design Process
(Problem Solving Activity )
• Software designing is more creative than analysis.
SRS
More Requirements
Design process
involve:-
Diversification
and convergence
Module Testing
Design Models
The entity relationship diagram and the detailed data content depicted in the
data dictionary provide the basis for the data design activity.
• Architectural Design:-
It defines the relationship between major structural elements of the software,
the “design patterns” that can be used to achieve the requirements that have
been defined for the system.
• Component-level Design :-
It transforms structural elements of the software architecture into a
procedural description of software components. Information
obtained from the PSPEC, CSPEC, and STD serve as the basis for
component design.
The importance of software design can be stated with a single word
“quality”.
Software Design Process have two part of design:-
• Conceptual Design (Customer)
• Technical Design (System Designers)
What How
Software Design
Document(SDD)
Conceptual design of software:
• Written in simple language i.e. customer
understandable language.
• Detail explanation about system characteristics.
• Describes the functionality of the system.
• It is independent of implementation.
• Linked with requirement document.
Technical Design of software:
Design consistency and uniformity are crucial when large systems are
to be built. A set of design rules should be established for the
software team before work begins.
DESIGN PRINCIPLES
Davis suggests a set1 of principles for software design, which
have been adapted and extended in the following list:
24
Activity During Design Phase
• Modularity
that is, software is divided into separately
• Control relationship among the modules
call relationship or invocation relationship
• Interface among different modules,
data items exchanged among different
modules,
• Data structures of individual modules,
• Algorithms for individual modules.
Module Structure
• “Module” used often – usually refers to a
method or class.
Module-1
Module-2 Module-3
F1…
F2… Functions
F3…
F4…
Fn…
Good and bad designs
• There is no unique way to design a system.
temporal
logical
coincidental
Coincidental cohesion
search
display
Functional cohesion
• Different elements of a module
cooperate:
–to achieve a single function,
–e.g. managing an employee's pay-
roll.
• When a module displays functional
cohesion,
–we can describe the function using a
single sentence.
Coupling
• Coupling indicates:
–how closely two modules interact or
how interdependent they are.
–The degree of coupling between two
modules depends on their interface
complexity.
Coupling
• There are no ways to precisely determine
coupling between two modules:
– classification of different types of coupling will
help us to approximately estimate the degree of
coupling between two modules.
• Five types of coupling can exist between any
two modules.
Classes of coupling
data
stamp
control Degree of
coupling
common
content
Data coupling
• Two modules are data coupled,
–if they communicate via a parameter:
• an elementary data item,
• e.g an integer, a float, a character, etc.
– The data item should be problem related:
• not used for control purpose.
Stamp coupling
• Two modules are stamp coupled,
–if they communicate via a composite
data item
• such as a record in PASCAL
• or a structure in C.
Control coupling
• Data from one module is used to
direct
–order of instruction execution in
another.
• Example of control coupling:
–a flag set in one module and tested in
another module.
Common Coupling
• Two modules are common
coupled,
–if they share some global data.
Content coupling
• Content coupling exists between two
modules:
– if they share code,
– e.g, branching from one module into
another module.
• The degree of coupling increases
– from data coupling to content coupling.
Characteristics of Module Structure
• Depth:
– number of levels of control
• Width:
– overall span of control.
• Fan-out:
– a measure of the number of modules
directly controlled by given module.
Characteristics of Module Structure
• Fan-in:
–indicates how many modules
directly invoke a given module.
–High fan-in represents code reuse
and is in general encouraged.
Module Structure
Fan out=2
Fan out=1
Fan in=1
Fan in=2
Fan out=0
Software Design Methods:
Data Architecture &
Procedural Design
59
THANK YOU
60