Lecture 5
Lecture 5
Chapter-4
Software Design
• Approaches to Software design
2
Department of computer Science
Software Design
• Software design is a process to conceptualize the software
requirements into software implementation.
• Software design takes the user requirements as challenges and tries
to find optimum solution.
• While the software is being conceptualized, a plan is chalked out to
find the best possible design for implementing the intended solution.
3
Software Design
• A good system design is to organize the program modules in such a
way that are easy to develop and 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.
4
Importance
5
Structured Design
6
Structured Design
• The small pieces of problem are solved by means of solution modules.
• Structured design emphasis that these modules be well organized in
order to achieve precise solution.
• These modules are arranged in hierarchy.
• They communicate with each other. A good structured design always
follows some rules for communication among multiple modules,
namely -
• Cohesion - grouping of all functionally related elements.
• Coupling - communication between different modules.
• A good structured design has high cohesion and low coupling
arrangements.
7
Function Oriented Design
8
Function Oriented Design
9
Function Oriented Design
• Function oriented design works well where the system state does not
matter and program/functions work on input rather than on a state.
10
Design Process
• 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.
• Each function is then described at large.
11
Object Oriented Design
12
Object Oriented Design
15
Design Process
18
Top Down Design
19
Top Down Design
• Advantages:
• The main advantage of top down approach is that its strong focus on
requirements helps to make a design responsive according to its
requirements.
• Disadvantages:
• Project and system boundaries tends to be application specification
oriented. Thus it is more likely that advantages of component reuse
will be missed.
• The system is likely to miss, the benefits of a well-structured, simple
architecture.
20
Bottom-up Design
• 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.
• With each higher level, the amount of abstraction is increased.
21
Bottom-up Design
22
Bottom-up Design
23
Bottom-up Design
• Advantages:
• The economics can result when general solutions can be reused.
• It can be used to hide the low-level details of implementation and be
merged with top-down technique.
• Disadvantages:
• It is not so closely related to the structure of the problem.
• High quality bottom-up solutions are very hard to construct.
• It leads to proliferation of ‘potentially useful’ functions rather than
most appropriate ones.
24
Hybrid Design
• Hybrid Design:
It is a combination of both the top – down and bottom – up design
strategies. In this we can reuse the modules.
25
Department of computer Science
References
• https://www.tutorialspoint.com/software_engineering/software_desi
gn_basics.htm#:~:text=Software%20design%20is%20a%20process,in
%20software%20coding%20and%20implementation.&text=Software
%20design%20is%20the%20first,problem%20domain%20to%20soluti
on%20domain.
• https://www.geeksforgeeks.org/software-engineering-software-desig
n-process/
• https://www.javatpoint.com/software-engineering-software-design
26
THANK YOU
27