0% found this document useful (0 votes)
12 views27 pages

Lecture 5

The document discusses software design, emphasizing its role in transforming user requirements into implementable solutions. It covers various design approaches, including structured design, function-oriented design, object-oriented design, and hybrid design, detailing their characteristics and processes. Additionally, it highlights the importance of organization, modularity, and communication in achieving effective software design.

Uploaded by

Suraj Singh
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)
12 views27 pages

Lecture 5

The document discusses software design, emphasizing its role in transforming user requirements into implementable solutions. It covers various design approaches, including structured design, function-oriented design, object-oriented design, and hybrid design, detailing their characteristics and processes. Additionally, it highlights the importance of organization, modularity, and communication in achieving effective software design.

Uploaded by

Suraj Singh
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/ 27

Department of Computer Science

University Institute of Engineering


DEPARTMENT OF COMPUTER SCIENCE
& ENGINEERING
Bachelor of Engineering (Computer Science & Engineering)
Subject Name: Software Engineering
Subject Code: 22CST-313
Prepared by:
Er. Puneet Kaur(E6913)

Software Design DISCOVER . LEARN . EMPOWER


1
Department of computer Science

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

• If any pre-existing code needs to be understood, organized and pieced


together.
• It is common for the project team to have to write some code and
produce original programs that support the application logic of the
system.

5
Structured Design

• Structured design is a conceptualization of problem into several well-


organized elements of solution.
• It is basically concerned with the solution design.
• Benefit of structured design is, it gives better understanding of how
the problem is being solved.
• Structured design also makes it simpler for designer to concentrate on
the problem more accurately.

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

• In function-oriented design, the system is comprised of many smaller


sub-systems known as functions.
• These functions are capable of performing significant task in the
system.
• The system is considered as top view of all functions.
• Function oriented design inherits some properties of structured
design where divide and conquer methodology is used.

8
Function Oriented Design

• This design mechanism divides the whole system into smaller


functions, which provides means of abstraction by concealing the
information and their operation.

• These functional modules can share information among themselves


by means of information passing and using information available
globally.

9
Function Oriented Design

• Another characteristic of functions is that when a program calls a


function, the function changes the state of the program, which
sometimes is not acceptable by other modules.

• 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

• Object oriented design works around the entities and their


characteristics instead of functions involved in the software system.

• This design strategies focuses on entities and its characteristics.

• The whole concept of software solution revolves around the engaged


entities.

12
Object Oriented Design

• Let us see the important concepts of Object Oriented Design:


• Objects - All entities involved in the solution design are known as
objects. For example, person, banks, company and customers are
treated as objects. Every entity has some attributes associated to it
and has some methods to perform on the attributes.
• Classes - A class is a generalized description of an object. An object is
an instance of a class. Class defines all the attributes, which an object
can have and methods, which defines the functionality of the object.
• In the solution design, attributes are stored as variables and
functionalities are defined by means of methods or procedures.
13
Object Oriented Design

• Encapsulation - In OOD, the attributes (data variables) and methods


(operation on the data) are bundled together is called encapsulation.
Encapsulation not only bundles important information of an object
together, but also restricts access of the data and methods from the
outside world. This is called information hiding.
• 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. This makes it
easier to define specific class and to create generalized classes from
specific ones.
14
Object Oriented Design

• Polymorphism - OOD languages provide a mechanism where


methods performing similar tasks but vary in arguments, can be
assigned same name.
• This is called polymorphism, which allows a single interface
performing tasks for different types.
• Depending upon how the function is invoked, respective portion of
the code gets executed.

15
Design Process

• Software design process can be perceived as series of well-defined


steps. Though it varies according to design approach (function
oriented or object oriented, yet It may have the following steps
involved:
• A solution design is created from requirement or previous used
system and/or system sequence diagram.
• Objects are identified and grouped into classes on behalf of similarity
in attribute characteristics.
• Class hierarchy and relation among them is defined.
• Application framework is defined.
16
Software Design Approaches
• Top Down Design
• We know that a system is composed of more than one sub-systems
and it contains a number of components.
• Further, these sub-systems and components may have their on set of
sub-system and components and creates hierarchical structure in the
system.
• 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.
17
Top Down Design
• 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.

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

• Bottom-up strategy is more suitable when a system needs to be


created from some existing system, where the basic primitives can be
used in the newer system.
• Both, top-down and bottom-up approaches are not practical
individually. Instead, a good combination of both is used.

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

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy