0% found this document useful (0 votes)
3 views22 pages

Lecture 1

The document outlines the software design process, emphasizing its role in transforming user requirements into a suitable form for coding and implementation. It distinguishes between analysis and design, detailing the levels of software design: architectural, high-level, and detailed design, along with their respective outputs. Key characteristics of good software design and the importance of interface design are also highlighted.

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)
3 views22 pages

Lecture 1

The document outlines the software design process, emphasizing its role in transforming user requirements into a suitable form for coding and implementation. It distinguishes between analysis and design, detailing the levels of software design: architectural, high-level, and detailed design, along with their respective outputs. Key characteristics of good software design and the importance of interface design are also highlighted.

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/ 22

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
• Design process and concepts

2
Department of computer Science

Software Design
• Software design is a process to transform user requirements into
some suitable form, which helps the programmer in software coding
and implementation.
• For assessing user requirements, an SRS (Software Requirement
Specification) document is created whereas for coding and
implementation, there is a need of more specific and detailed
requirements in software terms. The output of this process can
directly be used into implementation in programming languages.

3
Department of computer Science

Software Design
• Software design is the step in SDLC (Software Design Life Cycle), which
moves the concentration from problem domain to solution domain.

• It tries to specify how to fulfill the requirements mentioned in SRS.

4
DIFFERENCE BETWEEN ANALYSIS
AND DESIGN
• The aim of analysis is to understand the problem with a view to
eliminate any deficiencies in the requirement specification such as
incompleteness, inconsistencies, etc.

• The model which we are trying to build may be or may not be ready.

• The aim of design is to produce a model that will provide a seamless


transition to the coding phase, i.e. once the requirements are
analyzed and found to be satisfactory, a design model is created
which can be easily implemented.
5
Software Design
• Software design deals with transforming the customer requirements, as
described in the SRS document, into a form (a set of documents) that is suitable
for implementation in a programming language.

• A good software design is seldom arrived by using a single step procedure but
rather through several iterations through a series of steps.

• Design activities can be broadly classified into two important parts:


• Preliminary (or high-level) design and
• Detailed design.

6
PRELIMINARY OR HIGH LEVEL
DESIGN
• High-level design means identification of different modules and the control
relationships among them and the definition of the interfaces among these
modules.

• The outcome of high-level design is called the program structure or software


architecture.

• Many different types of notations have been used to represent a high-level design.

• A popular way is to use a tree-like diagram called the structure chart to represent
the control hierarchy in a high-level design.

7
DETAILED DESIGN
• During detailed design, the data structure and the algorithms of the
different modules are designed.

• The outcome of the detailed design stage is usually known as the


module-specification document.

8
Department of computer Science

Software Design Levels

• Software design yields three levels of results:


• Architectural Design - The architectural design is the highest abstract version of the system.
It identifies the software as a system with many components interacting with each other. At
this level, the designers get the idea of proposed solution domain.
• High-level Design- The high-level design breaks the ‘single entity-multiple component’
concept of architectural design into less-abstracted view of sub-systems and modules and
depicts their interaction with each other. High-level design focuses on how the system
along with all of its components can be implemented in forms of modules. It recognizes
modular structure of each sub-system and their relation and interaction among each other.
• Detailed Design- Detailed design deals with the implementation part of what is seen as a
system and its sub-systems in the previous two designs. It is more detailed towards
modules and their implementations. It defines logical structure of each module and their
interfaces to communicate with other modules.

9
Department of computer Science

Items developed during the



software design
For a design to be easily implemented in a conventional programming language,
the following items must be designed during the design phase.
• Different modules required to implement the design solution.
• Control relationship among the identified modules. The relationship
is also known as the call relationship or invocation relationship
among modules.
• Interface among different modules. The interface among different
modules identifies the exact data items exchanged among the
modules.
• Data structures of the individual modules.
• Algorithms required to implement each individual module.
10
Department of computer Science

CHARACTERISTICS OF GOOD
SOFTWARE DESIGN
• Correctness: Software design should be correct as per requirement.
• Completeness: The design should have all components like data
structures, modules, and external interfaces, etc.
• Efficiency: Resources should be used efficiently by the program.
• Flexibility: Able to modify on changing needs.
• Consistency: There should not be any inconsistency in the design.
• Maintainability: The design should be so simple so that it can be
easily maintainable by other designers.

11
Department of computer Science

Software Design Process


• The design phase of software development deals with transforming
the customer requirements as described in the SRS documents into a
form implementable using a programming language.
The software design process can be divided into the following three
levels of phases of design:
• Interface Design
• Architectural Design
• Detailed Design

12
Department of computer Science

13
Department of computer Science

Interface Design
• Interface design is the specification of the interaction between a
system and its environment.
• This phase proceeds at a high level of abstraction with respect to the
inner workings of the system i.e, during interface design, the internal
of the systems are completely ignored and the system is treated as a
black box.

14
Interface Design
• Attention is focused on the dialogue between the target system and
the users, devices, and other systems with which it interacts.
• The design problem statement produced during the problem analysis
step should identify the people, other systems, and devices which are
collectively called agents.

15
Department of computer Science

Interface Design
• Interface design should include the following details:
• Precise description of events in the environment, or messages from
agents to which the system must respond.
• Precise description of the events or messages that the system must
produce.
• Specification on the data, and the formats of the data coming into and
going out of the system.
• Specification of the ordering and timing relationships between
incoming events or messages, and outgoing events or outputs.

16
Department of computer Science

Architectural Design
• Architectural design is the specification of the major components of a
system, their responsibilities, properties, interfaces, and the
relationships and interactions between them.
• In architectural design, the overall structure of the system is chosen,
but the internal details of major components are ignored.

17
Architectural Design
• Issues in architectural design includes:
• Gross decomposition of the systems into major components.
• Allocation of functional responsibilities to components.
• Component Interfaces
• Component scaling and performance properties, resource consumption
properties, reliability properties, and so forth.
• Communication and interaction between components.
• The architectural design adds important details ignored during the
interface design. Design of the internals of the major components is
ignored until the last phase of the design.
18
Detailed Design
• Design is the specification of the internal elements of all major system
components, their properties, relationships, processing, and often
their algorithms and the data structures.

19
Detailed Design
• The detailed design may include:
• Decomposition of major system components into program units.
• Allocation of functional responsibilities to units.
• User interfaces
• Unit states and state changes
• Data and control interaction between units
• Data packaging and implementation, including issues of scope and
visibility of program elements
• Algorithms and data structures
20
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

21
THANK YOU

22

You might also like