0% found this document useful (0 votes)
23 views108 pages

Unit 4

This document provides an overview of software design principles, methods, and concepts, emphasizing the importance of structured design and modularity. It discusses design principles such as traceability, reusability, and the need for abstraction, cohesion, and coupling in software components. Additionally, it introduces the 4+1 architectural view, which includes logical, process, development, and physical perspectives of software architecture.

Uploaded by

NAMDEO
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views108 pages

Unit 4

This document provides an overview of software design principles, methods, and concepts, emphasizing the importance of structured design and modularity. It discusses design principles such as traceability, reusability, and the need for abstraction, cohesion, and coupling in software components. Additionally, it introduces the 4+1 architectural view, which includes logical, process, development, and physical perspectives of software architecture.

Uploaded by

NAMDEO
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 108

UNIT 4:Introduction to Software Design

Introduction to Software Design,


design methods: procedural/structural and object oriented,
Requirement Vs Analysis, 4+1 Architecture,
case study of transferring requirement to design,
use case based software life cycle,
Introduction to UML-Basic building blocks, Reusability,
Use case Modeling, Use case template.
• What is it?
Design is a meaningful engineering representation that is to be built.
Design focuses on four major areas of concern: data, architecture,
interfaces, and components.
At the data and architectural level, design focuses on pattern as they
apply to the application .
At the interface level, human ergonomics often dictate our design
approach.
At the component level, a “programming approach” leads us to
effective data and procedural designs.
• Why it is important?
You wouldn’t attempt to build a house without a blueprint,
DESIGN PRINCIPLES
• The design process should not suffer from “tunnel vision.”
alternative approaches, judging each based on the
requirements of the problem, the resources available.
• The design should be traceable to the analysis model.
single element of the design model often traces to multiple
requirements.
• The design should not reinvent the wheel.
• The design should “minimize the intellectual distance”
between the software and the problem as it exists in the real
world.
DESIGN PRINCIPLES.....

• The design should exhibit uniformity and integration


• The design should be structured to accommodate change.
• The design should be structured to degrade gently, even
when aberrant data, events, or operating conditions are
encountered.
• Design is not coding, coding is not design.
• The design should be assessed for quality as it is being
created.
• The design should be reviewed to minimize conceptual
(semantic) errors.
DESIGN CONCEPTS
Helps the software engineer to answer the following questions:
• What criteria can be used to partition software into individual
components?
• How is function or data structure detail separated from a conceptual
representation of the software?
• What uniform criteria define the technical quality of a software
design?
• Abstraction Modularity
• Software Architecture Control Hierarchy
• Structural Partitioning Data Structure
• Software Procedure Information Hiding
What is abstraction?
• Simplify problem by omitting unnecessary details
-Focus attention on only one ascept of the problem and ignore other
ascepts and irrelavent details.
Ex:
You are asked to develop overall understanding of country
-would you visit every citizen of country,every house, examine
every tree

-You will possibly refer map of country.


• We can study the
political map which
focuses on the
different provinces,
capital, major cities,
railway road
connectivity etc.
• You will look into the
physical map and try
to find out the
vegetation, the
elevation of the
different places,
rivers, sea shore and
etc.
Abstraction of complex problem
• Does every problem have
single abstraction?
• Several abstraction of single
problem can be created
• Focus on some specific
aspect and ignore rest.
• Different type of models
helps to understand different
aspects of problem.
MODULAR DESIGN
• Functional Independence: each module addresses a specific
subfunction of requirements .
• Independent modules are easier to develop, easier to maintain and
test, Understandability,complexity of the design is reduced, Easy
reusing,reduces error propagation
• Independence is measured using two qualitative criteria:
• Cohesion: It is a measure of the relative functional strength of a
module
• Coupling: It is a measure of the relative interdependence among
modules.
Cohesion
• A good design where the modules
are functionally independent, these
have high cohesion and low
coupling.
• The cohesion existing in a module
can be classified into coincidental,
logical, temporal, procedural,
communicational, sequential and
functional.
• worst form of cohesion is
coincidental.
• functional is best form of cohesion.
• Coincidental: The different functions existing
in the program they have been randomly put
into different modules, without any thought or
design.
• logical:all elements of the module performs
similar functions for example, all functions do
error handling, let say, print statements or read
data, scan statements or all print statements.
• temporal: Here we group functions together if
they are executed within the same time span.
• Procedural:different functions in the module,
they are part of same algorithm.
• Communicational:different functions they
operate on the same data structure.
• The result is shared between the different
functions.
• Sequential:different functions in the module
share data, but then the data is passed from one
function to the other in a sequence.
For example, first do sorting then, search then,
display and so on.
• Functional:different functions shared data, but then they work towards
achieving a single function. To manage the employees pay roll, module like
compute overtime, compute the current months’ pay,into a module.
Coupling
• It is a measure of the relative interdependence
OR Interaction between modules.
• Coupling between two modules can be
identified by looking at the interface
complexity.
• Data coupling: only simple data items like
integer or character are exchanged between
two modules.
• Stamp coupling: more complex data items
like an array or a data structure, list are
exchanged between different modules.
Coupling.....
• Control coupling:
-one module decides the control path in another module.
-Data item passed by one module is used as a control element in another
module.
For example, it may they send an integer which is used as a flag tested in
another module.
• Common coupling: share some common data.
-Two modules coupled through some global data.
• Content coupling: assembly routines and machine language
programming content coupling was possible.
high-level languages, it is difficult to write a program where there will be
-Creat Member
-Delete Member
-Update Member record
Introduction to structured analysis and
structured design
-Each function consumes some input data.
-Produces some output data
External Process/
Entity Function

Direction of data flow

Output Data Store


Student

Entire system is represented by single bubble. LMS

Bubble is labled as per main function of system

Print
Record
Tic Tac Toe
Developing DFD
Find Errors in DFD
`
• static modeling view
4+1 Architectural View
• Component design view
• Decomposition of
• developers view
system • subsystem & system
• deals with functionality
development
• view of the important
• layers and how classes
classes and
are organized, as well as
relationships.
dependencies.
• sequence, class
• component & Package
&communication
diagram
diagram
• Task view • Deployment scenario of
• Deals with runtime system
• tools & environment of
description and
system and associated
execution aspect hardware.
• scalability & • system engineers point of
performance view
• Activity diagram • deployment diagram
4+1 Architectural View
The simple system which accepts as stream of characters as input and
produces a new stream of characters identical to original but with
upper case and lower case characters alternating.
PROCESS VIEW
To -Upper

SPLIT MERGE

To -Lower
Logical View
Main

SPLIT To -LOWER To -Upper MERGE

Config Stdio
LMS-Logical View
LIB

Catlog Book
Acquisition

Circulation User reg Journal


Subscription
LMS-Process View

Catlog

Book
Circulation Acquisition

User reg
Journal
Subscription
LMS-Physical View

Machine 1

Catlog

Machine 2

Circulation Book
Acquisition
User reg
Machine 3
Journal
Subscription
LMS-Development View
LIB

Catlog Book
Developed
Acquisition
in Mumbai
Pune

Circulation User reg Journal


Subscription
Developed in Delhi
Banguluru
Logical View: It is a view of the important classes and
relationships. The logical view, or logical architecture, is the
object model for the design.
It describes the structures of the software that solve the
functional requirements for the system.
It is a subset of all the classes of the system.
The logical view is strictly a structural view of the software,
including the important classes and class relationships in the
architecture.
Process View
It is the runtime and execution view.
The process view, or process architecture, describes the
view of the architecture that includes running processes
and instantiated objects that exist in the system.
It describes important concurrency and synchronization
issues.
Development View: It shows the layers and how classes are
organized, as well as dependencies.
The development architecture view focuses on the module
organization of the software.
It shows how classes are organized into packages, and it
outlines the dependencies between packages of software.
This is the view of the design that shows the layered
structures of the software and what the responsibilities of
each layer in the system are.
Physical View: It shows the deployment scenario and

associated hardware.

The physical view describes the machines that run the

software and how components, objects, and processes are

deployed onto those machines and their configurations at

run-time.

You might also like