SlideShare a Scribd company logo
1 of 48
Chapter 5 :
Software design
Fundamentals of Software Engineering by Lami and Eshetu 1
Software Design
• Software design is a process to transform user requirements
into some suitable form, which helps the programmer in
software coding and implementation.
• For assessing user requirements, an SRS (Software
Requirement Specification document) is created whereas for
coding and implementation, there is a need of more specific
and detailed requirements in software terms.
• The output of this process can directly be used into
implementation in programming languages.
Fundamentals of Software Engineering by Lami and Eshetu 2
Software Design Levels
Software design yields three levels of results:
1. 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.
2. 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.
Fundamentals of Software Engineering by Lami and Eshetu 3
Software Design Levels
3. 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.
• It is more detailed towards modules and their
implementations.
• It defines logical structure of each module and their
interfaces to communicate with other modules.
Fundamentals of Software Engineering by Lami and Eshetu 4
Software Design
• The design activity is often divided into two separate phases-
system design and detailed design.
• System design, which is sometimes also called top-level
design, aims to identify the modules that should be in
the system, the specifications of these modules , and
how they interact with each other to produce the desired
results.
• At the end of system design all the major data structures ,
file formats , output formats, as well as the major
modules in the system and their specifications are
decided.
Fundamentals of Software Engineering by Lami and Eshetu 5
Software Design
• The design activity is often divided into two separate phases-
system design and detailed design.
• During detailed design the internal logic of each of the
modules specified in system design is decided.
• During this phase further details of the data structures and
algorithmic design of each of the modules is specified.
• The logic of a module is usually specified in a high-level
design description language, which is independent of the
target language in which the software will eventually
be implemented.
Fundamentals of Software Engineering by Lami and Eshetu 6
Software Design
MODULARITY
• is a technique to divide a software system into
multiple discrete and independent modules, which
are expected to be capable of carrying out tasks
independently.
• These modules may work as basic constructs for the
entire software.
• Designers tend to design modules such that they can
be executed and/or compiled separately and
independently. 7
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
Properties of modules:
i. Well defined subsystem
ii. Well defined purpose
iii. Can be separately compiled and stored in a
library.
iv. Module can use other modules
v. Module should be easier to use than to build
vi. Simpler from outside than from the inside.
8
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
• Modularity is the single attribute of software that
allows a program to be intellectually manageable.
• It enhances design clarity,which in turn eases
implementation, debugging, testing, documentation,
and maintenance of software product.
9
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
Coupling
Coupling is the measure of the degree of
interdependence between modules.
10
Fundamentals of Software Engineering by Lami and Eshetu
(Uncoupled : no dependencies)
(a)
Software Design
Loosely coupled:
some dependencies
(B)
Highly coupled:
many dependencies
(C)
Module coupling
11
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
This can be achieved as:
• Controlling the number of parameters passed amongst
modules.
• Avoid passing undesired data to calling module
• Maintain parent/child relationship between calling and
called models
• Pass data, not the control information
12
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
Consider the example of editing a student record in a
‘student information system’.
Edit student
record
Retrieve
student record
Student name,
student ID,
address,
course
Student
record
Edit student
record
Retrieve
student record
Student
record
13
Fundamentals of Software Engineering by Lami and Eshetu
Student
ID
Poor design: Tight Coupling Good design: Loose Coupling
Example of coupling
Fig. 7 : The types of module coupling
Given two procedures A & B, we can identify number of
ways in which they can be coupled.
Software Design
14
Fundamentals of Software Engineering by Lami and Eshetu
Data coupling Best
Stamp coupling
Control coupling
Common coupling
Content coupling Worst
Software Design
Data coupling
The dependency between module A and B is said to be data
15
Fundamentals of Software Engineering by Lami and Eshetu
Stamp coupling
Stamp coupling occurs between module A and B when
complete data structure is passed from one module to another.
coupled if their dependency is based on the fact they
than
are
communicate
communicating
independent.
by only
through
passing
data,
of data.
the two
Other
modules
Software Design
Control coupling
Module A and B are said to be control coupled if they
communicate by passing of control information. This is usually
accomplished by means of flags that are set by one module and
reacted upon by the dependent module.
Common coupling
With common coupling, module A and module B have shared
data. Global data areas are commonly found in programming
languages. Making a change to the common data means tracing
back to all the modules which access that data to evaluate the
effect of changes.
16
Fundamentals of Software Engineering by Lami and Eshetu
Fig. 8 : Example of common coupling
17
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
Software Design
Content coupling
Content coupling occurs when module A changes data of
module B or when control is passed from one module to the
middle of another. In figure below, module B branches into
D, even though D is supposed to be under the control of C.
18
Fundamentals of Software Engineering by Lami and Eshetu
Fig. 9 : Example of content coupling
Software Design
19
Fundamentals of Software Engineering by Lami and Eshetu
Cohesion
Cohesion is a measure of the degree to which the
elements of a module are functionally related.
Software Design
Cohesion=Strength of relations within modules
20
Fundamentals of Software Engineering by Lami and Eshetu
Module
strength
Software Design
Types of cohesion
• Functional cohesion
• Sequential cohesion
• Procedural cohesion
• Temporal cohesion
• Logical cohesion
• Coincident cohesion
21
Fundamentals of Software Engineering by Lami and Eshetu
Types of module cohesion
Software Design
22
Fundamentals of Software Engineering by Lami and Eshetu
Functional Cohesion Best (high)
Sequential Cohesion
Communicational Cohesion
Procedural Cohesion
Temporal Cohesion
Logical Cohesion
Coincidental Cohesion Worst (low)
Software Design
Functional Cohesion
• A and B are part of a single functional task. This is
very good reason for them to be contained in the same
procedure.
Sequential Cohesion
• Module A outputs some data which forms the input to
B. This is the reason for them to be contained in the
same procedure.
23
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
24
Fundamentals of Software Engineering by Lami and Eshetu
Procedural Cohesion
• Procedural Cohesion occurs in modules whose
instructions although accomplish different tasks yet have
been combined because thereis a specific order in which
the tasksare to be completed.
Temporal Cohesion
• Module exhibits temporal cohesion when it contains
tasks that are related by the fact that all tasks must be
executed in the same time-span
Software Design
Logical Cohesion
• Logical cohesion occurs in modules that contain
instructions that appear to be related because they fall
into the same logical class of functions.
Coincidental Cohesion
• Coincidental cohesion exists in modules that
contain instructions that have little or no relationship
to one another.
25
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
View of cohesion and coupling
Relationship between Cohesion & Coupling
If the software is not properly modularized, a host of
seemingly trivial enhancement or changes will result into
death of the project. Therefore, a software engineer must
design the modules with goal of high cohesion and low
coupling.
26
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
STRATEGY OF DESIGN
• A good system design strategy is to organize the program modules in
such a way that are easy to develop and latter to, change.
• Structured design techniques help developers to deal with the size
and complexity of programs. Analysts create instructions for the
developers about how code should be written and how pieces of
code should fit together to form a program.
• It is important for two reasons:
 First, even pre-existing code, if any, needs to be
understood, organized and pieced together.
 Second, it is still common for the project team to have to
write some code and produce original programs that
support the application logic of the system.
27
Fundamentals of Software Engineering by Lami and Eshetu
Fig. 13 : Bottom-up tree structure
Bottom-Up Design
These modules are collected together in the form of a “library”.
Software Design
28
Fundamentals of Software Engineering by Lami and Eshetu
Top-Down Design
• A top down design approach starts by identifying the major
modules of the system, decomposing them into their lower
level modules and iterating until the desired level of detail
is achieved.
• This is stepwise refinement; starting from an abstract
design, in each step the design is refined to a more
concrete level, until we reach a level where no more
refinement is needed and the design can be
implemented directly.
Software Design
29
Fundamentals of Software Engineering by Lami and Eshetu
Hybrid Design
For top-down approach to be effective, some bottom-up approach is
essential for the following reasons:
• To permit common sub modules.
• Near the bottom of the hierarchy, where the intuition is simpler, and
the need for bottom-up testing is greater, because there are more
number of modules at low levels than high levels.
• In the use of pre-written library modules, in particular, reuse of
modules.
30
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
FUNCTION ORIENTED DESIGN
• Function Oriented design is an approach to software design where
the design is decomposed into a set of interacting units where each
unit has a clearly defined function.
• Thus, system is designed from a functional viewpoint.
Software Design
31
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
32
Fundamentals of Software Engineering by Lami and Eshetu
• We continue the refinement of each module until we
reach the statement level of our programming language.
At that point, we can describe the structure of our
program as a tree of refinement as in design top-down
structure as shown in figure below.
Software Design
Top-down structure
33
Fundamentals of Software Engineering by Lami and Eshetu
• If a program is created top-down, the modules become very
specialized. As one can easily see in top down design structure,
each module is used by at most one other module, its parent.
For a module, however, we must require that several other
modules as in design reusable structure as shown in figure
below
Software Design
Design reusable structure
34
Fundamentals of Software Engineering by Lami and Eshetu
Design Notations
• Design notations are largely meant to be used during the
process of design and are used to represent design or
design decisions.
• For a function oriented design, the design can be
represented graphically or mathematically by the following:
• Data flow diagrams
• Data Dictionaries
• Structure Charts
• Pseudocode
Software Design
35
Fundamentals of Software Engineering by Lami and Eshetu
Structure Chart
• It partition a system into black boxes.
• A black box means that functionality is
known to the user without the knowledge of
internal design.
Software Design
Hierarchical format of a structure chart 36
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
Structure chart notations
37
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
Update file
A structure chart for “update file” is given
38
Fundamentals of Software Engineering by Lami and Eshetu
Pseudocode
• Pseudocode notation can be used in both the preliminary
and detailed design phases.
• Using pseudocode, the designer describes system
characteristics using short, concise, English language
phrases that are structured by key words such as If-
Then-Else, While-Do, and End.
39
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
IEEE Recommended practice for software design
descriptions (IEEE STD 1016-1998)
40
Fundamentals of Software Engineering by Lami and Eshetu
• Scope
An SDD is a representation of a software system that is used as a
medium for communicating software design information.
• References
i. IEEE std 830-1998, IEEE recommended practice for
software requirements specifications.
ii. IEEE std 610.12-1990, IEEE glossary of software
engineering terminology.
Software Design
Software Design
41
Fundamentals of Software Engineering by Lami and Eshetu
• Definitions
i. Design entity. An element (Component) of a design that is
structurally and functionally distinct from other elements and that is
separately named and referenced.
ii. Design View. A subset of design entity attribute information that is
specifically suited to the needs of a software project activity.
iii. Entity attributes. A named property or characteristics of a design
entity. It provides a statement of fact about the entity.
iv. Software design description (SDD). A representation of a software
system created to facilitate analysis, planning, implementation
and decision making.
Purpose of an SDD
 The SDD shows how the software system will be structured to
satisfy the requirements identified in the SRS.
 It is basically the translation of requirements into a
description of the software structure, software components,
interfaces, and data necessary for the implementation phase.
 Hence, SDD becomes the blue print for the implementation
activity.
Design Description Information Content
 Introduction
 Design entities
 Design entity attributes
42
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
• The attributes and associated information items are
defined in the following subsections:
a) Identification f) Dependencies
b) Type g) Interface
c) Purpose h) Resources
d) Function i) Processing
e) Subordinates j) Data
43
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
Design Description Organization
• Each design description writer may have a different view of
what are considered the essential aspects of a software
design.
• The organization of SDD is given in table 1.
• This is one of the possible ways to organize and format the
SDD.
• A recommended organization of the SDD into separate
design views to facilitate information access and assimilation
is given in table 2.
44
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
Software Design
Cont…
45
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
Table 1:
Organization of
SDD
46
Fundamentals of Software Engineering by Lami and Eshetu
Software Design
47
Fundamentals of Software Engineering by Lami and Eshetu
Table 2: Design views
Design View Scope Entity attribute Example
representatio
n
Decomposition
description
Partition of the
system into design
entities
Identification,
type purpose,
function,
subordinate
Hierarchical
decomposition
diagram, natural
language
Dependency
description
Description of
relationships among
entities of system
resources
Identification, type,
purpose,
dependencies,
resources
Structure chart,
data flow
diagrams
Interface
description
List of everything a
designer, developer,
tester needs to know to
use design entities that
make up the system
Identification,
function,
interfaces
Interface files,
parameter
tables
Detail
description
Description of the
internal design
details of an entity
Identification,
processing,
data
Flow charts, PDL etc.
Fundamentals of Software Engineering by Lami and Eshetu 4
8

More Related Content

Similar to Chapter 5 Software Design of software engineering.pptx

Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part iBisrat Girma
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptxtaxegap762
 
Design Engineering and Design concepts
Design Engineering and Design conceptsDesign Engineering and Design concepts
Design Engineering and Design conceptsJigyasaAgrawal7
 
Software Engineering unit 3
Software Engineering unit 3Software Engineering unit 3
Software Engineering unit 3Abhimanyu Mishra
 
Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)MuhammadTalha436
 
Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020 Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020 MuhammadTalha436
 
coding is the .pptx
coding is the                      .pptxcoding is the                      .pptx
coding is the .pptxlaxmisorna12
 
Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9Dhairya Joshi
 
Lecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptLecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptesrabilgic2
 
System software design1
System software design1System software design1
System software design1PrityRawat2
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3SIMONTHOMAS S
 
term paper for cbd models
term paper for cbd modelsterm paper for cbd models
term paper for cbd modelsSukhdeep Singh
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdfdo_2013
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdfdo_2013
 

Similar to Chapter 5 Software Design of software engineering.pptx (20)

Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
Design Engineering and Design concepts
Design Engineering and Design conceptsDesign Engineering and Design concepts
Design Engineering and Design concepts
 
Software Engineering unit 3
Software Engineering unit 3Software Engineering unit 3
Software Engineering unit 3
 
software Design.ppt
software Design.pptsoftware Design.ppt
software Design.ppt
 
Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)
 
Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020 Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020
 
Software engg unit 3
Software engg unit 3 Software engg unit 3
Software engg unit 3
 
coding is the .pptx
coding is the                      .pptxcoding is the                      .pptx
coding is the .pptx
 
Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9
 
Software design
Software designSoftware design
Software design
 
Lecture1422914635
Lecture1422914635Lecture1422914635
Lecture1422914635
 
Lecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptLecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).ppt
 
System software design1
System software design1System software design1
System software design1
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
 
SMD Unit i
SMD Unit iSMD Unit i
SMD Unit i
 
Design final
Design finalDesign final
Design final
 
term paper for cbd models
term paper for cbd modelsterm paper for cbd models
term paper for cbd models
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
 

More from gadisaAdamu

Chapter 1. Introduction to Software Engineering.pptx
Chapter 1. Introduction to Software Engineering.pptxChapter 1. Introduction to Software Engineering.pptx
Chapter 1. Introduction to Software Engineering.pptxgadisaAdamu
 
Chapter_2_Software_Development_Life_Cycle_and_Process_Models.pptx
Chapter_2_Software_Development_Life_Cycle_and_Process_Models.pptxChapter_2_Software_Development_Life_Cycle_and_Process_Models.pptx
Chapter_2_Software_Development_Life_Cycle_and_Process_Models.pptxgadisaAdamu
 
Chapter 4 Software Project Planning.pptx
Chapter 4 Software Project Planning.pptxChapter 4 Software Project Planning.pptx
Chapter 4 Software Project Planning.pptxgadisaAdamu
 
Chapter 7 - Resource Monitoring & Management.ppt
Chapter 7 - Resource Monitoring & Management.pptChapter 7 - Resource Monitoring & Management.ppt
Chapter 7 - Resource Monitoring & Management.pptgadisaAdamu
 
Chapter_2_Network_Operating_System_NOS_and_Windows_Network_Concepts.pptx
Chapter_2_Network_Operating_System_NOS_and_Windows_Network_Concepts.pptxChapter_2_Network_Operating_System_NOS_and_Windows_Network_Concepts.pptx
Chapter_2_Network_Operating_System_NOS_and_Windows_Network_Concepts.pptxgadisaAdamu
 
Chapter 8 - nsa Introduction to Linux.ppt
Chapter 8 -  nsa Introduction to Linux.pptChapter 8 -  nsa Introduction to Linux.ppt
Chapter 8 - nsa Introduction to Linux.pptgadisaAdamu
 
Derartu Habtamu research Presentation.pptx
Derartu Habtamu  research Presentation.pptxDerartu Habtamu  research Presentation.pptx
Derartu Habtamu research Presentation.pptxgadisaAdamu
 
Chapter five software Software Design.pptx
Chapter five software  Software Design.pptxChapter five software  Software Design.pptx
Chapter five software Software Design.pptxgadisaAdamu
 
OSI open system interconnection LAYERS.pdf
OSI open system interconnection LAYERS.pdfOSI open system interconnection LAYERS.pdf
OSI open system interconnection LAYERS.pdfgadisaAdamu
 
computer network and chapter 7 OSI layers.pptx
computer network and chapter 7 OSI layers.pptxcomputer network and chapter 7 OSI layers.pptx
computer network and chapter 7 OSI layers.pptxgadisaAdamu
 
IP Address in data communication and computer notework.ppt
IP Address in data communication and computer notework.pptIP Address in data communication and computer notework.ppt
IP Address in data communication and computer notework.pptgadisaAdamu
 
ERROR DETECTION data communication and computer network.pptx
ERROR DETECTION data communication and computer network.pptxERROR DETECTION data communication and computer network.pptx
ERROR DETECTION data communication and computer network.pptxgadisaAdamu
 
Ch1Intro.pdf Computer organization and org.
Ch1Intro.pdf Computer organization and org.Ch1Intro.pdf Computer organization and org.
Ch1Intro.pdf Computer organization and org.gadisaAdamu
 
Computer application-chapter four lecture note. pptx
Computer application-chapter four lecture note. pptxComputer application-chapter four lecture note. pptx
Computer application-chapter four lecture note. pptxgadisaAdamu
 
Computer application lecture note-Chapter-5.pptx
Computer application lecture note-Chapter-5.pptxComputer application lecture note-Chapter-5.pptx
Computer application lecture note-Chapter-5.pptxgadisaAdamu
 
Chapter 03-Number System-Computer Application.pptx
Chapter 03-Number System-Computer Application.pptxChapter 03-Number System-Computer Application.pptx
Chapter 03-Number System-Computer Application.pptxgadisaAdamu
 
Chapter one-Introduction to Computer.pptx
Chapter one-Introduction to Computer.pptxChapter one-Introduction to Computer.pptx
Chapter one-Introduction to Computer.pptxgadisaAdamu
 
Chapter Three, four, five and six.ppt ITEtx
Chapter Three, four, five and six.ppt ITEtxChapter Three, four, five and six.ppt ITEtx
Chapter Three, four, five and six.ppt ITEtxgadisaAdamu
 
Chapter One & Two.pptx introduction to emerging Technology
Chapter One & Two.pptx introduction to emerging TechnologyChapter One & Two.pptx introduction to emerging Technology
Chapter One & Two.pptx introduction to emerging TechnologygadisaAdamu
 
Compiler chapter six .ppt course material
Compiler chapter six .ppt course materialCompiler chapter six .ppt course material
Compiler chapter six .ppt course materialgadisaAdamu
 

More from gadisaAdamu (20)

Chapter 1. Introduction to Software Engineering.pptx
Chapter 1. Introduction to Software Engineering.pptxChapter 1. Introduction to Software Engineering.pptx
Chapter 1. Introduction to Software Engineering.pptx
 
Chapter_2_Software_Development_Life_Cycle_and_Process_Models.pptx
Chapter_2_Software_Development_Life_Cycle_and_Process_Models.pptxChapter_2_Software_Development_Life_Cycle_and_Process_Models.pptx
Chapter_2_Software_Development_Life_Cycle_and_Process_Models.pptx
 
Chapter 4 Software Project Planning.pptx
Chapter 4 Software Project Planning.pptxChapter 4 Software Project Planning.pptx
Chapter 4 Software Project Planning.pptx
 
Chapter 7 - Resource Monitoring & Management.ppt
Chapter 7 - Resource Monitoring & Management.pptChapter 7 - Resource Monitoring & Management.ppt
Chapter 7 - Resource Monitoring & Management.ppt
 
Chapter_2_Network_Operating_System_NOS_and_Windows_Network_Concepts.pptx
Chapter_2_Network_Operating_System_NOS_and_Windows_Network_Concepts.pptxChapter_2_Network_Operating_System_NOS_and_Windows_Network_Concepts.pptx
Chapter_2_Network_Operating_System_NOS_and_Windows_Network_Concepts.pptx
 
Chapter 8 - nsa Introduction to Linux.ppt
Chapter 8 -  nsa Introduction to Linux.pptChapter 8 -  nsa Introduction to Linux.ppt
Chapter 8 - nsa Introduction to Linux.ppt
 
Derartu Habtamu research Presentation.pptx
Derartu Habtamu  research Presentation.pptxDerartu Habtamu  research Presentation.pptx
Derartu Habtamu research Presentation.pptx
 
Chapter five software Software Design.pptx
Chapter five software  Software Design.pptxChapter five software  Software Design.pptx
Chapter five software Software Design.pptx
 
OSI open system interconnection LAYERS.pdf
OSI open system interconnection LAYERS.pdfOSI open system interconnection LAYERS.pdf
OSI open system interconnection LAYERS.pdf
 
computer network and chapter 7 OSI layers.pptx
computer network and chapter 7 OSI layers.pptxcomputer network and chapter 7 OSI layers.pptx
computer network and chapter 7 OSI layers.pptx
 
IP Address in data communication and computer notework.ppt
IP Address in data communication and computer notework.pptIP Address in data communication and computer notework.ppt
IP Address in data communication and computer notework.ppt
 
ERROR DETECTION data communication and computer network.pptx
ERROR DETECTION data communication and computer network.pptxERROR DETECTION data communication and computer network.pptx
ERROR DETECTION data communication and computer network.pptx
 
Ch1Intro.pdf Computer organization and org.
Ch1Intro.pdf Computer organization and org.Ch1Intro.pdf Computer organization and org.
Ch1Intro.pdf Computer organization and org.
 
Computer application-chapter four lecture note. pptx
Computer application-chapter four lecture note. pptxComputer application-chapter four lecture note. pptx
Computer application-chapter four lecture note. pptx
 
Computer application lecture note-Chapter-5.pptx
Computer application lecture note-Chapter-5.pptxComputer application lecture note-Chapter-5.pptx
Computer application lecture note-Chapter-5.pptx
 
Chapter 03-Number System-Computer Application.pptx
Chapter 03-Number System-Computer Application.pptxChapter 03-Number System-Computer Application.pptx
Chapter 03-Number System-Computer Application.pptx
 
Chapter one-Introduction to Computer.pptx
Chapter one-Introduction to Computer.pptxChapter one-Introduction to Computer.pptx
Chapter one-Introduction to Computer.pptx
 
Chapter Three, four, five and six.ppt ITEtx
Chapter Three, four, five and six.ppt ITEtxChapter Three, four, five and six.ppt ITEtx
Chapter Three, four, five and six.ppt ITEtx
 
Chapter One & Two.pptx introduction to emerging Technology
Chapter One & Two.pptx introduction to emerging TechnologyChapter One & Two.pptx introduction to emerging Technology
Chapter One & Two.pptx introduction to emerging Technology
 
Compiler chapter six .ppt course material
Compiler chapter six .ppt course materialCompiler chapter six .ppt course material
Compiler chapter six .ppt course material
 

Recently uploaded

DATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage exampleDATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage examplePragyanshuParadkar1
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
EduAI - E learning Platform integrated with AI
EduAI - E learning Platform integrated with AIEduAI - E learning Platform integrated with AI
EduAI - E learning Platform integrated with AIkoyaldeepu123
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxPoojaBan
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvLewisJB
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 

Recently uploaded (20)

DATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage exampleDATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage example
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes  examplesPOWER SYSTEMS-1 Complete notes  examples
POWER SYSTEMS-1 Complete notes examples
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
EduAI - E learning Platform integrated with AI
EduAI - E learning Platform integrated with AIEduAI - E learning Platform integrated with AI
EduAI - E learning Platform integrated with AI
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptx
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvv
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 

Chapter 5 Software Design of software engineering.pptx

  • 1. Chapter 5 : Software design Fundamentals of Software Engineering by Lami and Eshetu 1
  • 2. Software Design • Software design is a process to transform user requirements into some suitable form, which helps the programmer in software coding and implementation. • For assessing user requirements, an SRS (Software Requirement Specification document) is created whereas for coding and implementation, there is a need of more specific and detailed requirements in software terms. • The output of this process can directly be used into implementation in programming languages. Fundamentals of Software Engineering by Lami and Eshetu 2
  • 3. Software Design Levels Software design yields three levels of results: 1. 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. 2. 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. Fundamentals of Software Engineering by Lami and Eshetu 3
  • 4. Software Design Levels 3. 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. • It is more detailed towards modules and their implementations. • It defines logical structure of each module and their interfaces to communicate with other modules. Fundamentals of Software Engineering by Lami and Eshetu 4
  • 5. Software Design • The design activity is often divided into two separate phases- system design and detailed design. • System design, which is sometimes also called top-level design, aims to identify the modules that should be in the system, the specifications of these modules , and how they interact with each other to produce the desired results. • At the end of system design all the major data structures , file formats , output formats, as well as the major modules in the system and their specifications are decided. Fundamentals of Software Engineering by Lami and Eshetu 5
  • 6. Software Design • The design activity is often divided into two separate phases- system design and detailed design. • During detailed design the internal logic of each of the modules specified in system design is decided. • During this phase further details of the data structures and algorithmic design of each of the modules is specified. • The logic of a module is usually specified in a high-level design description language, which is independent of the target language in which the software will eventually be implemented. Fundamentals of Software Engineering by Lami and Eshetu 6
  • 7. Software Design MODULARITY • is a technique to divide a software system into multiple discrete and independent modules, which are expected to be capable of carrying out tasks independently. • These modules may work as basic constructs for the entire software. • Designers tend to design modules such that they can be executed and/or compiled separately and independently. 7 Fundamentals of Software Engineering by Lami and Eshetu
  • 8. Software Design Properties of modules: i. Well defined subsystem ii. Well defined purpose iii. Can be separately compiled and stored in a library. iv. Module can use other modules v. Module should be easier to use than to build vi. Simpler from outside than from the inside. 8 Fundamentals of Software Engineering by Lami and Eshetu
  • 9. Software Design • Modularity is the single attribute of software that allows a program to be intellectually manageable. • It enhances design clarity,which in turn eases implementation, debugging, testing, documentation, and maintenance of software product. 9 Fundamentals of Software Engineering by Lami and Eshetu
  • 10. Software Design Coupling Coupling is the measure of the degree of interdependence between modules. 10 Fundamentals of Software Engineering by Lami and Eshetu (Uncoupled : no dependencies) (a)
  • 11. Software Design Loosely coupled: some dependencies (B) Highly coupled: many dependencies (C) Module coupling 11 Fundamentals of Software Engineering by Lami and Eshetu
  • 12. Software Design This can be achieved as: • Controlling the number of parameters passed amongst modules. • Avoid passing undesired data to calling module • Maintain parent/child relationship between calling and called models • Pass data, not the control information 12 Fundamentals of Software Engineering by Lami and Eshetu
  • 13. Software Design Consider the example of editing a student record in a ‘student information system’. Edit student record Retrieve student record Student name, student ID, address, course Student record Edit student record Retrieve student record Student record 13 Fundamentals of Software Engineering by Lami and Eshetu Student ID Poor design: Tight Coupling Good design: Loose Coupling Example of coupling
  • 14. Fig. 7 : The types of module coupling Given two procedures A & B, we can identify number of ways in which they can be coupled. Software Design 14 Fundamentals of Software Engineering by Lami and Eshetu Data coupling Best Stamp coupling Control coupling Common coupling Content coupling Worst
  • 15. Software Design Data coupling The dependency between module A and B is said to be data 15 Fundamentals of Software Engineering by Lami and Eshetu Stamp coupling Stamp coupling occurs between module A and B when complete data structure is passed from one module to another. coupled if their dependency is based on the fact they than are communicate communicating independent. by only through passing data, of data. the two Other modules
  • 16. Software Design Control coupling Module A and B are said to be control coupled if they communicate by passing of control information. This is usually accomplished by means of flags that are set by one module and reacted upon by the dependent module. Common coupling With common coupling, module A and module B have shared data. Global data areas are commonly found in programming languages. Making a change to the common data means tracing back to all the modules which access that data to evaluate the effect of changes. 16 Fundamentals of Software Engineering by Lami and Eshetu
  • 17. Fig. 8 : Example of common coupling 17 Fundamentals of Software Engineering by Lami and Eshetu Software Design
  • 18. Software Design Content coupling Content coupling occurs when module A changes data of module B or when control is passed from one module to the middle of another. In figure below, module B branches into D, even though D is supposed to be under the control of C. 18 Fundamentals of Software Engineering by Lami and Eshetu
  • 19. Fig. 9 : Example of content coupling Software Design 19 Fundamentals of Software Engineering by Lami and Eshetu
  • 20. Cohesion Cohesion is a measure of the degree to which the elements of a module are functionally related. Software Design Cohesion=Strength of relations within modules 20 Fundamentals of Software Engineering by Lami and Eshetu Module strength
  • 21. Software Design Types of cohesion • Functional cohesion • Sequential cohesion • Procedural cohesion • Temporal cohesion • Logical cohesion • Coincident cohesion 21 Fundamentals of Software Engineering by Lami and Eshetu
  • 22. Types of module cohesion Software Design 22 Fundamentals of Software Engineering by Lami and Eshetu Functional Cohesion Best (high) Sequential Cohesion Communicational Cohesion Procedural Cohesion Temporal Cohesion Logical Cohesion Coincidental Cohesion Worst (low)
  • 23. Software Design Functional Cohesion • A and B are part of a single functional task. This is very good reason for them to be contained in the same procedure. Sequential Cohesion • Module A outputs some data which forms the input to B. This is the reason for them to be contained in the same procedure. 23 Fundamentals of Software Engineering by Lami and Eshetu
  • 24. Software Design 24 Fundamentals of Software Engineering by Lami and Eshetu Procedural Cohesion • Procedural Cohesion occurs in modules whose instructions although accomplish different tasks yet have been combined because thereis a specific order in which the tasksare to be completed. Temporal Cohesion • Module exhibits temporal cohesion when it contains tasks that are related by the fact that all tasks must be executed in the same time-span
  • 25. Software Design Logical Cohesion • Logical cohesion occurs in modules that contain instructions that appear to be related because they fall into the same logical class of functions. Coincidental Cohesion • Coincidental cohesion exists in modules that contain instructions that have little or no relationship to one another. 25 Fundamentals of Software Engineering by Lami and Eshetu
  • 26. Software Design View of cohesion and coupling Relationship between Cohesion & Coupling If the software is not properly modularized, a host of seemingly trivial enhancement or changes will result into death of the project. Therefore, a software engineer must design the modules with goal of high cohesion and low coupling. 26 Fundamentals of Software Engineering by Lami and Eshetu
  • 27. Software Design STRATEGY OF DESIGN • A good system design strategy is to organize the program modules in such a way that are easy to develop and latter to, change. • Structured design techniques help developers to deal with the size and complexity of programs. Analysts create instructions for the developers about how code should be written and how pieces of code should fit together to form a program. • It is important for two reasons:  First, even pre-existing code, if any, needs to be understood, organized and pieced together.  Second, it is still common for the project team to have to write some code and produce original programs that support the application logic of the system. 27 Fundamentals of Software Engineering by Lami and Eshetu
  • 28. Fig. 13 : Bottom-up tree structure Bottom-Up Design These modules are collected together in the form of a “library”. Software Design 28 Fundamentals of Software Engineering by Lami and Eshetu
  • 29. Top-Down Design • A top down design approach starts by identifying the major modules of the system, decomposing them into their lower level modules and iterating until the desired level of detail is achieved. • This is stepwise refinement; starting from an abstract design, in each step the design is refined to a more concrete level, until we reach a level where no more refinement is needed and the design can be implemented directly. Software Design 29 Fundamentals of Software Engineering by Lami and Eshetu
  • 30. Hybrid Design For top-down approach to be effective, some bottom-up approach is essential for the following reasons: • To permit common sub modules. • Near the bottom of the hierarchy, where the intuition is simpler, and the need for bottom-up testing is greater, because there are more number of modules at low levels than high levels. • In the use of pre-written library modules, in particular, reuse of modules. 30 Fundamentals of Software Engineering by Lami and Eshetu Software Design
  • 31. FUNCTION ORIENTED DESIGN • Function Oriented design is an approach to software design where the design is decomposed into a set of interacting units where each unit has a clearly defined function. • Thus, system is designed from a functional viewpoint. Software Design 31 Fundamentals of Software Engineering by Lami and Eshetu
  • 32. Software Design 32 Fundamentals of Software Engineering by Lami and Eshetu
  • 33. • We continue the refinement of each module until we reach the statement level of our programming language. At that point, we can describe the structure of our program as a tree of refinement as in design top-down structure as shown in figure below. Software Design Top-down structure 33 Fundamentals of Software Engineering by Lami and Eshetu
  • 34. • If a program is created top-down, the modules become very specialized. As one can easily see in top down design structure, each module is used by at most one other module, its parent. For a module, however, we must require that several other modules as in design reusable structure as shown in figure below Software Design Design reusable structure 34 Fundamentals of Software Engineering by Lami and Eshetu
  • 35. Design Notations • Design notations are largely meant to be used during the process of design and are used to represent design or design decisions. • For a function oriented design, the design can be represented graphically or mathematically by the following: • Data flow diagrams • Data Dictionaries • Structure Charts • Pseudocode Software Design 35 Fundamentals of Software Engineering by Lami and Eshetu
  • 36. Structure Chart • It partition a system into black boxes. • A black box means that functionality is known to the user without the knowledge of internal design. Software Design Hierarchical format of a structure chart 36 Fundamentals of Software Engineering by Lami and Eshetu
  • 37. Software Design Structure chart notations 37 Fundamentals of Software Engineering by Lami and Eshetu
  • 38. Software Design Update file A structure chart for “update file” is given 38 Fundamentals of Software Engineering by Lami and Eshetu
  • 39. Pseudocode • Pseudocode notation can be used in both the preliminary and detailed design phases. • Using pseudocode, the designer describes system characteristics using short, concise, English language phrases that are structured by key words such as If- Then-Else, While-Do, and End. 39 Fundamentals of Software Engineering by Lami and Eshetu Software Design
  • 40. IEEE Recommended practice for software design descriptions (IEEE STD 1016-1998) 40 Fundamentals of Software Engineering by Lami and Eshetu • Scope An SDD is a representation of a software system that is used as a medium for communicating software design information. • References i. IEEE std 830-1998, IEEE recommended practice for software requirements specifications. ii. IEEE std 610.12-1990, IEEE glossary of software engineering terminology. Software Design
  • 41. Software Design 41 Fundamentals of Software Engineering by Lami and Eshetu • Definitions i. Design entity. An element (Component) of a design that is structurally and functionally distinct from other elements and that is separately named and referenced. ii. Design View. A subset of design entity attribute information that is specifically suited to the needs of a software project activity. iii. Entity attributes. A named property or characteristics of a design entity. It provides a statement of fact about the entity. iv. Software design description (SDD). A representation of a software system created to facilitate analysis, planning, implementation and decision making.
  • 42. Purpose of an SDD  The SDD shows how the software system will be structured to satisfy the requirements identified in the SRS.  It is basically the translation of requirements into a description of the software structure, software components, interfaces, and data necessary for the implementation phase.  Hence, SDD becomes the blue print for the implementation activity. Design Description Information Content  Introduction  Design entities  Design entity attributes 42 Fundamentals of Software Engineering by Lami and Eshetu Software Design
  • 43. • The attributes and associated information items are defined in the following subsections: a) Identification f) Dependencies b) Type g) Interface c) Purpose h) Resources d) Function i) Processing e) Subordinates j) Data 43 Fundamentals of Software Engineering by Lami and Eshetu Software Design
  • 44. Design Description Organization • Each design description writer may have a different view of what are considered the essential aspects of a software design. • The organization of SDD is given in table 1. • This is one of the possible ways to organize and format the SDD. • A recommended organization of the SDD into separate design views to facilitate information access and assimilation is given in table 2. 44 Fundamentals of Software Engineering by Lami and Eshetu Software Design
  • 45. Software Design Cont… 45 Fundamentals of Software Engineering by Lami and Eshetu
  • 46. Software Design Table 1: Organization of SDD 46 Fundamentals of Software Engineering by Lami and Eshetu
  • 47. Software Design 47 Fundamentals of Software Engineering by Lami and Eshetu Table 2: Design views Design View Scope Entity attribute Example representatio n Decomposition description Partition of the system into design entities Identification, type purpose, function, subordinate Hierarchical decomposition diagram, natural language Dependency description Description of relationships among entities of system resources Identification, type, purpose, dependencies, resources Structure chart, data flow diagrams Interface description List of everything a designer, developer, tester needs to know to use design entities that make up the system Identification, function, interfaces Interface files, parameter tables Detail description Description of the internal design details of an entity Identification, processing, data Flow charts, PDL etc.
  • 48. Fundamentals of Software Engineering by Lami and Eshetu 4 8