AIT0401 SE Unit-3
AIT0401 SE Unit-3
Software Design
Unit: III
International 2 5
Evaluation Scheme
Syllabus
Course Objective
Course Outcomes
Program Outcome
CO-PO Mapping
Program Specific Outcome
CO-PSO Mapping
Program Educational Objective
Result Analysis
End Semester Question Paper Template
Prerequisite/Recap
Brief Introduction about subject with video
Unit Content
Unit Objective
Topic Objective/Topic Outcome
Design principles
The design process
Design concepts: Abstraction, Refinement, Modularity (Cohesion and coupling)
Software Architecture (Function Oriented Design, Object Oriented Design)
Control Hierarchy (Top-Down and Bottom-Up Design)
Structural partitioning
Data structure
Software procedure
Information hiding
Daily Quiz
Weekly Assignment
Old Question Papers
Expected Questions
Recap of Unit
19/05/2024 Dr. Amba Mishra ACSE0301 Software Engineering Unit III 4
Evaluation Scheme
Software Process Models: SDLC, Waterfall Model, Prototype Model, Spiral, Model, Iterative Model, Incremental
Model, V Process Model, Agile Methodology.
Software Measurement and Metrics: Various Size Oriented Measures, Function Point, Design Heuristics for effective
modularity, Cyclomatic Complexity Measures: Control Flow Graphs.
Software Testing: Testing Objectives, Unit Testing, Integration Testing, User Acceptance Testing,
Regression Testing, Testing for Functionality and Testing for Performance, Top Down and Bottom-Up
Testing Strategies: Test Drivers and Test Stubs, Test Beds and Test Oracle, Structural Testing (White Box
Testing), Functional Testing (Black Box Testing), Test Data Suit Preparation, Alpha and Beta Testing of
Products.
Static Testing Strategies: Formal Technical Reviews (Peer Reviews), Walk Through, Code Inspection,
Compliance with Design and Coding Standards.
Software Quality Assurance (SQA): Quality concepts, Software quality assurance, SQA activities,
Formal approaches to SQA; Statistical software quality assurance; CMM, The ISO standard.
• Business software.
• Accounting software.
• Analytics.
• Decision support systems.
• Airline reservations.
• Banking, Automated teller machines, Cheque processing.
• Commerce, Trade, Auctions (e.g. eBay)
• Compilers
• Animation
TOPIC Objective
Software Design To Understand the basic concept of
design
Low Level Design Study of Low Level Design
Coupling and Cohesion Measures To Understand and compare the Coupling
and Cohesion
CO 2 Demonstrate the contents of a SRS and apply basic software quality K1, K2
assurance practices to ensure that design, development meet or
exceed applicable standards
CO PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12
2 3 3 3 2 - - - - - 3 3
CO1
3 3 3 3 3 - - - - - 2 3
CO2
CO3 3 2 3 2 2 - - - - - 3 3
CO4 2 2 2 2 3 3 - 3 3 - 3 3
CO5 2 2 3 2 3 3 - 3 - 3 3 3
B TECH
(SEM-V) THEORY EXAMINATION 20__-20__
SOFTWARE ENGINEERING
Time: 3 Hours Total Marks:
100
Note: 1. Attempt all Sections. If require any missing data; then choose
suitably.
SECTION A
1. Attempt all questions in brief.
Q.No. Question
1 x 10CO
Marks
= 10
1 2
2 2
. .
10 2
SECTION A
2. Attempt all questions in brief. 2 x 5 = 10
Q.No. Question Marks CO
1 2
2 2
. .
5 2
SECTION C
4. Attempt any one part of the following: 1 x 10 = 10
Q.No. Question Marks CO
1 10
2 10
• Degrade gently –
The software should be designed in such a way that it degrades gracefully which means it
should work properly even if an error occurs during the execution.
• Assessed or quality –
The design should be assessed or evaluated for the quality meaning that during the
evaluation, the quality of the design needs to be checked and focused on.
Informal More
design Informal formal Finished
outline design design design
• Modularization:
– Complex system may be divided into simpler pieces called modules.
– A system is composed of modules is called modular.
– Module is treated separately If different modules have either no or
little interactions with each other.
– Cohesion and coupling are decide the degree of modularity.
– A design solution is considered to be highly modular if different
modules in the solution have high cohesion and their inter module
coupling are low.
Properties of a module
• Well defined subsystem
• Well defined purpose
• Can be separately compiled and stored in a library.
• Module can use other modules
• Module should be easier to use than to build
• Simpler from outside than from the inside.
Data coupling
Modules communicate by parameters Each parameter is an
elementary piece of data Each parameter is necessary for the
communication. Nothing extra is needed
Data coupling problems
Too many parameters - makes the interface difficult to
understand and possible error to occur
Tramp data - data ‘traveling’ across modules before being used
Stamp coupling
Occurs when A composite data(data structure) is passed
between modules
problem in stamp coupling
Internal structure contains data not used Bundling -
grouping of unrelated data into an artificial structure
Control coupling
• A module controls the logic of another module through the
control information(flag)
• Controlling module needs to know how the other module
works – not
External Coupling
• Occurs when another module is external to the s/w being
developed or to a particular type of hardware.
• It is based on communication to external tools and devices.
Common coupling
Use of global data as communication between modules
Making a change to the common data means tracing back to
all the modules which access that data to evaluate the effect of
changes.
problem in Common coupling
ripple effect
inflexibility
difficult to understand the use of data
It can difficult to determine which value is responsible for having
set a variable to a particular values
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 Fig. , module B
branches into D, even though D is supposed to be under the control of C. A
module refers to the inside of another module. Branch into another module
Refers to data within another module Changes the internal workings of
another module Mostly by low-level languages
• Definition
– The degree to which all elements of a module are directed
towards a single task.
– The degree to which all elements directed towards a task are
contained in a single component.
– The degree to which all responsibilities of a single class are
related.
• Internal glue with which Module is constructed
• All elements of module are directed toward and essential for
performing the same task.
• Elements: instructions, groups of instructions, data definition, call of
another module.
Functional cohesion
Sequential cohesion
Procedural cohesion
Temporal cohesion
Logical cohesion
Coincident cohesion
High Cohesion
Functional
Sequential
Communicational
Procedural
Temporal
Logical
Coincidental Low
• Several logically related elements are in the same module and one
of the elements is selected by the client module. Ex.
• A module reads inputs from tape, disk, and network.
• All the code for these functions are in the same module.
• Operations are related, but the functions are significantly
different.
Limitation:
• No standard way that should be included in flow chart.
• Difficult to draw, if algorithms has complex branches and
loops.
• Time consuming process for large complex problems
• Difficult to include any new step in existing flow chart.
• Top-down design takes the whole software system as one entity and
then decomposes it to achieve more than one sub-system or
component based on some characteristics.
• Each sub-system or component is then treated as a system and
decomposed further. This process keeps on running until the lowest
level of system in the top-down hierarchy is achieved.
• Top-down design starts with a generalized model of system and
keeps on defining the more specific part of it. When all components
are composed the whole system comes into existence.
• Top-down design is more suitable when the software solution needs
to be designed from scratch and specific details are unknown.
• The bottom up design model starts with most specific and basic
components.
• It proceeds with composing higher level of components by using basic or
lower level components. It keeps creating higher level components until the
desired system is not evolved as one single component.
• The whole system is seen as how data flows in the system by means
of data flow diagram.
• DFD depicts how functions changes data and state of entire system.
• The entire system is logically broken down into smaller units known
as functions on the basis of their operation in the system.
Attribute
An attributes is a data value held by the objects in a class.
Operation
An operation is a function or transformation that may be applied to or by
objects in a class
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.
Internal Logical Files (ILF): A user identifiable group of logical related data
or control information maintained within the system.
operator # of occurrences
public 1
sort() 1
int 4
[] 7
{} 4
for {;;} 2
if () 1
= 5
< 2
… …
n1 = 17 N1 = 39
• Control flow graph with unique entry and exit nodes, all nodes reachable from
the entry, and exit reachable from all nodes then it has only one connected
component.
• imagine a main program M and two called subroutines A and B having
a control flow graph
• https://nptel.ac.in/courses/106/105/106105182/
• https://
www.youtube.com/watch?v=5q_KBeNlRFk&list=PLbRMhDVUMngf8oZ
R3DpKMvYhZKga90JVt&index=19
• https://
www.youtube.com/watch?v=FTyncRpLd5g&list=PLbRMhDVUMngf8oZR
3DpKMvYhZKga90JVt&index=20
• https://
www.youtube.com/watch?v=OFxBjpE8mT0&list=PLbRMhDVUMngf8oZ
R3DpKMvYhZKga90JVt&index=22
19/05/2024 Dr. Amba Mishra ACSE0301 Software Engineering Unit III 119
Daily Quiz
19/05/2024 Dr. Amba Mishra ACSE0301 Software Engineering Unit III 120
Daily Quiz
6) Fault is
(a) Defect in the program (b) Mistake in the program
(c) Error in the program (d) All of the above
7) The extent to which different modules are dependent upon each other is called
(a) Coupling (b) Cohesion (c) Modularity (d) Stability
8) A system that does not interact with external environment is called
(a) Closed system (b) Logical system
(c) Open system (d) Hierarchal system
9) The worst type of cohesion is
(a) Temporal cohesion (b) Coincidental cohesion
(c) Logical cohesion (d) Sequential cohesion
10) Which one is not a strategy for design?
(a) Bottom up design (b) Top down design
(c) Embedded design (d) Hybrid design
19/05/2024 Dr. Amba Mishra ACSE0301 Software Engineering Unit III 121
Weekly Assignment
19/05/2024 Dr. Amba Mishra ACSE0301 Software Engineering Unit III 124
Old Question Papers
19/05/2024 Dr. Amba Mishra ACSE0301 Software Engineering Unit III 125
Old Question Papers
19/05/2024 126
Dr. Amba Mishra ACSE0301 Software Engineering Unit III
Old Question Papers
19/05/2024 127
Dr. Amba Mishra ACSE0301 Software Engineering Unit III
Expected Questions for University Exam
19/05/2024 Dr. Amba Mishra ACSE0301 Software Engineering Unit III 128
Summary
Software Design
• Basic Concept of Software Design
• Architectural Design Low Level Design: Modularization
• Design Structure Charts
• Pseudo Codes
• Flow Charts
• Coupling and Cohesion Measures
Design Strategies:
• Function Oriented Design
• Object Oriented Design
• Top-Down and Bottom-Up Design
• Software Measurement and Metrics
• Various Size Oriented Measures
• Halestead’s Software Science
• Function Point (FP) Based Measures
• Cyclomatic Complexity Measures, Control Flow Graphs
19/05/2024 Dr. Amba Mishra ACSE0301 Software Engineering Unit III 129
References
19/05/2024 Dr. Amba Mishra ACSE0301 Software Engineering Unit III 130
Recap of Unit
19/05/2024 Dr. Amba Mishra ACSE0301 Software Engineering Unit III 131
Example
19/05/2024 Dr. Amba Mishra ACSE0301 Software Engineering Unit III 132
Example
25. Consider a software project with the following information domain characteristic for calculation of function point metric.
19/05/2024 Dr. Amba Mishra ACSE0301 Software Engineering Unit III 133