UNIT IV: Software Design: Fundamental Design Concepts Modules
Download UNIT IV: Software Design: Fundamental Design Concepts Modules
Preview text
SOFTWARE ENGINEERING
UNIT IV: Software Design: Fundamental Design Concepts – Modules and Modularization Criteria – Design Notations – Design Techniques – Detailed Design Considerations – Real-Time and Distributed System Design – Test Plans – Milestones, Walkthroughs, and Inspections - Design Guidelines.
Prepared by S.Radha Priya
1
SOFTWARE DESIGN
Software design – 3 distinct types of activities
a. External Design
b. Architectural Design
c. Detailed Design
The External design and architectural design typically span the period from software requirements review to preliminary design review. Detailed design spans the period from preliminary design review to critical design review. The situations are illustrated as below:
Phases Activities
Analysis
Design
Implementation
Planning requirement definition
External Architecture Detailed
Coding Debugging Testing
SRR PDR CDR
SRR- Software Requirement review PDR-Preliminary design review CDR- Critical Design review
Prepared by S.Radha Priya
2
Fundamental Concepts of Software Design
1. Abstraction
Abstraction allows us to organize and channel our thought processes by postponing structural considerations and detailed algorithmic considerations, data stores.
Ex:
FIFO- Queue(front, rear)
LIFO- Stack( push, pop, Top, new, empty)
3 widely used abstraction mechanisms in software design are
a. functional abstraction(parameterized subroutine)
b. data abstraction.
c. control abstraction.
The above mechanisms control the complexity of design process.
Abstract Concrete
proceed
Prepared by S.Radha Priya
3
Functional abstraction can be generalized to the collection of subprograms, called ‘groups’ (ex: packages in Ada, Clusters in CLU)
In a group certain routines have visible property, which allows them to be used by other groups.
Hidden routines can be used only within the containing group.
Abstract data type are representation details of the data items and implementation details of the functions that manipulate the details of the functions that manipulate the data items are hidden within the group that implements the abstract type.
Control abstraction is used to state a desired effect without stating the exact mechanism of control.
ex: IF statements and while statements
ex: for all I in S sort files I.
2. Information Hiding
Information hiding is a fundamental design concept for software.
Prepared by S.Radha Priya
4
When software system is designed using information hiding approach, each module in the system hides the internal details of its processing activities and modules communicate only through well-defined interfaces.
According to parnas, design should begin with a list of difficult design each module is designed to hide such a decision from other modules.
ex: format of control blocks(queues) character codes ordering of character sets.
3.Structure
The use of structure permits decomposition of large system into smaller, more manageable units with well-defined relationships to other units in the system.
The most general form of system structure is a network. It is a directed graph consisting of nodes and arcs.
nodes data stores
Arcs
information
Prepared by S.Radha Priya
5
A structure inside complex processing node might consist of concurrent processes executing in parallel and communicating through some combination of shared variables and synchronous and asynchronous message passing.
Prepared by S.Radha Priya
6
Prepared by S.Radha Priya
7
The entire network might be complex abstraction that provides an information utility and in turn forms a node in more complex structure of people and machines.
The “uses” relationships can be represented by a directed graph, where the notation A B means “A uses B” or “B is used by A”.
Hierarchical ordering of abstractions is established by the following rule:
if A and B are distinct entities, and
if A uses B, then B is not permitted to use A or any entity that makes
use of A. Hierarchical ordering relation can be represented as an acyclic, directed
graph with a distinguished node that represents a root entity. The root uses other entities, but is not used by any entity. Hierarchical structure may or may not form a tree structure. The following
figure illustrates directed acyclic graph and a tree structure respectively.
The diagram is called structure charts depicts the structure of subroutines in a system.
Prepared by S.Radha Priya
8
Graph structure chart
A tree structure chart
Recursive routines should be avoided (A B C A) The chart reduces the complexity of iteration among software components The tree structure reduces the complexity of interactions among the software
components. In the diagram there are N(N-1)/2 interconnections among N nodes.
Prepared by S.Radha Priya
9
Illustrating N(N-1)/2 links among N nodes in a connected graph
Only N-1 interconnections of N nodes connected in a tree structure. N-1 is the minimum number of interconnections for N nodes
(N-1) links among N nodes in a tree.
Hierarchical tree structure components and promotes ease of understanding, implementation, debugging, testing, integration and modification of a system.
Prepared by S.Radha Priya
10
UNIT IV: Software Design: Fundamental Design Concepts – Modules and Modularization Criteria – Design Notations – Design Techniques – Detailed Design Considerations – Real-Time and Distributed System Design – Test Plans – Milestones, Walkthroughs, and Inspections - Design Guidelines.
Prepared by S.Radha Priya
1
SOFTWARE DESIGN
Software design – 3 distinct types of activities
a. External Design
b. Architectural Design
c. Detailed Design
The External design and architectural design typically span the period from software requirements review to preliminary design review. Detailed design spans the period from preliminary design review to critical design review. The situations are illustrated as below:
Phases Activities
Analysis
Design
Implementation
Planning requirement definition
External Architecture Detailed
Coding Debugging Testing
SRR PDR CDR
SRR- Software Requirement review PDR-Preliminary design review CDR- Critical Design review
Prepared by S.Radha Priya
2
Fundamental Concepts of Software Design
1. Abstraction
Abstraction allows us to organize and channel our thought processes by postponing structural considerations and detailed algorithmic considerations, data stores.
Ex:
FIFO- Queue(front, rear)
LIFO- Stack( push, pop, Top, new, empty)
3 widely used abstraction mechanisms in software design are
a. functional abstraction(parameterized subroutine)
b. data abstraction.
c. control abstraction.
The above mechanisms control the complexity of design process.
Abstract Concrete
proceed
Prepared by S.Radha Priya
3
Functional abstraction can be generalized to the collection of subprograms, called ‘groups’ (ex: packages in Ada, Clusters in CLU)
In a group certain routines have visible property, which allows them to be used by other groups.
Hidden routines can be used only within the containing group.
Abstract data type are representation details of the data items and implementation details of the functions that manipulate the details of the functions that manipulate the data items are hidden within the group that implements the abstract type.
Control abstraction is used to state a desired effect without stating the exact mechanism of control.
ex: IF statements and while statements
ex: for all I in S sort files I.
2. Information Hiding
Information hiding is a fundamental design concept for software.
Prepared by S.Radha Priya
4
When software system is designed using information hiding approach, each module in the system hides the internal details of its processing activities and modules communicate only through well-defined interfaces.
According to parnas, design should begin with a list of difficult design each module is designed to hide such a decision from other modules.
ex: format of control blocks(queues) character codes ordering of character sets.
3.Structure
The use of structure permits decomposition of large system into smaller, more manageable units with well-defined relationships to other units in the system.
The most general form of system structure is a network. It is a directed graph consisting of nodes and arcs.
nodes data stores
Arcs
information
Prepared by S.Radha Priya
5
A structure inside complex processing node might consist of concurrent processes executing in parallel and communicating through some combination of shared variables and synchronous and asynchronous message passing.
Prepared by S.Radha Priya
6
Prepared by S.Radha Priya
7
The entire network might be complex abstraction that provides an information utility and in turn forms a node in more complex structure of people and machines.
The “uses” relationships can be represented by a directed graph, where the notation A B means “A uses B” or “B is used by A”.
Hierarchical ordering of abstractions is established by the following rule:
if A and B are distinct entities, and
if A uses B, then B is not permitted to use A or any entity that makes
use of A. Hierarchical ordering relation can be represented as an acyclic, directed
graph with a distinguished node that represents a root entity. The root uses other entities, but is not used by any entity. Hierarchical structure may or may not form a tree structure. The following
figure illustrates directed acyclic graph and a tree structure respectively.
The diagram is called structure charts depicts the structure of subroutines in a system.
Prepared by S.Radha Priya
8
Graph structure chart
A tree structure chart
Recursive routines should be avoided (A B C A) The chart reduces the complexity of iteration among software components The tree structure reduces the complexity of interactions among the software
components. In the diagram there are N(N-1)/2 interconnections among N nodes.
Prepared by S.Radha Priya
9
Illustrating N(N-1)/2 links among N nodes in a connected graph
Only N-1 interconnections of N nodes connected in a tree structure. N-1 is the minimum number of interconnections for N nodes
(N-1) links among N nodes in a tree.
Hierarchical tree structure components and promotes ease of understanding, implementation, debugging, testing, integration and modification of a system.
Prepared by S.Radha Priya
10
Categories
You my also like
SD Subsequent Function Requirement Routines
843 KB31.6K10.1KCreate a Family Tree Embroidery
1.2 MB14.9K6.9KCOMP595EA Basic Design using RTOS
146.3 KB65.1K30.6KBacktracking And Branch And Bound
37.8 KB30.5K4.9KThe Health Benefits of Daily Routines
699.4 KB89.2K37.5KDomestic Routines and Design for the Home
565.5 KB78.3K26.6KNAG announces new numerical routines specially tuned for
609.6 KB48.6K12.6KTechnology management routines that matter to technology managers
376.5 KB50.2K23.6KCOMMUNICATIVE METHOD OF DIGITAL STORYTELLING IN MANDARIN Final
510 KB81.1K14.6K