0% found this document useful (0 votes)
16 views24 pages

Department of Computer Science & Engineering (SB)

The document outlines the syllabus for the Software Engineering course in the Department of Computer Science & Engineering for the academic year 2023-2024, focusing on Design Engineering. It covers key topics such as the design process, architectural design, UML diagrams, design quality, and various design concepts and principles. The document also includes expected questions and references for further reading.
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)
16 views24 pages

Department of Computer Science & Engineering (SB)

The document outlines the syllabus for the Software Engineering course in the Department of Computer Science & Engineering for the academic year 2023-2024, focusing on Design Engineering. It covers key topics such as the design process, architectural design, UML diagrams, design quality, and various design concepts and principles. The document also includes expected questions and references for further reading.
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/ 24

Department of Computer Science & Engineering (SB)

II B. Tech -II Semester

SOFTWARE ENGINEERING
SUBJET/COURSE CODE: 22PC0CS10

Academic Year : 2023-2024


DESIGN ENGINEERING

UNIT – III
Syllabus
UNIT – III
Design Engineering: Design process and design quality, design concepts, the
design model. Creating an architectural design: software architecture, data
design, architectural styles and patterns, architectural design, conceptual model
of UML, basic structural modeling, class diagrams, sequence diagrams,
collaboration diagrams, use case diagrams, component diagrams.
UNIT - III UNIT-III LECTURE - 01
Design Engineering
Text Books:
• Software Engineering, A practitioner’s Approach- Roger S. Pressman, 6th edition, McGraw
Hill International Edition.
• Software Engineering- Sommerville, 7th edition, Pearson Education.
Reference Book:
• The unified modeling language user guide Grady Booch, James Rambaugh, Ivar Jacobson.
• Software Engineering, an Engineering approach- James F. Peters, Witold Pedrycz, John Wiley.
• Software Engineering principles and practice- Waman S Jawadekar, The McGraw- Hill
Companies.
No of Hours Required: 9
UNIT - III LECTURE - 01
UNIT-III
Expected Questions:

1. Explain software design concepts.

2. Describe Architectural Styles in Software Design.

3. Explain the Steps involved in Design process.


UNIT - III Design Engineering LECTURE - 02
Design Engineering encompasses the set of principles, concepts, and practices that lead to
the development of a high-quality system or product
The goal of Design Engineering is to produce a model or representation
Design allows software engineer to model the system or product that is to be built
Steps: Design depicts the software in a number of different ways
First, the architecture of the system or product must be represented, then the interfaces that
connect the software to end users, to other systems and devices, and to its own constituent
components are modelled.
What is the work product:
Design model that encompasses architectural, interface, component level, and deployment
representations is the primary work product that is produced during software design.
UNIT - III LECTURE - 03
Design within the context of Software Engineering

Once software requirements have been analyzed and modeled, software


design is the last software engineering action within the modeling activity and
sets the stage for construction (code generation and testing).
Translating the requirements model into the design model
Each of the elements of the requirements model provides information that is
necessary to create the four design models required for a complete
specification of design.
UNIT - III LECTURE - 04

.
UNIT - III Design Process and Design Quality LECTURE - 05

Software design is an iterative process through which requirements are translated into a
“blueprint” for constructing the software.
Initially, the blueprint depicts a holistic view of software.
That is, the design is represented at a high level of abstraction—
a level that can be directly traced to the specific system objective and more detailed
data, functional, and behavioral requirements.
UNIT - III Software Quality Guidelines and Attributes
LECTURE - 06
Three characteristics that serve as a guide for the evaluation of a good design:
• The design must implement all of the explicit requirements contained in the
requirements model, and it must accommodate all of the implicit requirements desired by
stakeholders.
• The design must be a readable, understandable guide for those who generate code and
for those who test and subsequently support the software.
• The design should provide a complete picture of the software, addressing the data,
functional, and behavioral domains from an implementation perspective.
UNIT - III Quality Guidelines LECTURE - 07
1. A design should exhibit an architecture that

(1) has been created using recognizable architectural styles or patterns,

(2) is composed of components that exhibit good design characteristics

(3) can be implemented in an evolutionary fashion,2 thereby facilitating implementation and testing.

2. A design should be modular

3. A design should contain distinct representations of data, architecture, interfaces, and components.

4. A design should lead to data structures

5. A design should lead to components that exhibit independent functional characteristics.

6. A design should lead to interfaces that reduce the complexity of connections

7. A design should be derived using a repeatable method

8. A design should be represented using a notation that effectively communicates its meaning.
UNIT - III Quality Attributes LECTURE - 08
.
Hewlett-Packard [Gra87] developed a set of software quality attributes that has been given the acronym
.
FURPS
The FURPS quality attributes represent a target for all software design:
Functionality: is assessed by evaluating the feature set and capabilities of the program and
 the generality of the functions that are delivered, and the security of the overall system.
Usability:is assessed by considering human factors, overall aesthetics, consistency, and documentation.
Reliability: is evaluated by measuring the frequency and severity of failure.
Performance:is measured by considering processing speed, response time, resource consumption,
throughput, and efficiency.
Supportability:combines the ability to extend the program (extensibility), adaptability, serviceability—
these three attributes represent a more common term, maintainability
UNIT - III Design Concepts LECTURE - 10
A set of fundamental software design concepts are

1. Abstraction: When you consider a modular solution to any problem we can implement abstraction,
Procedural abstraction: refers to a sequence of instructions that have a specific and limited function, Data
abstraction: In data abstraction, we mostly create complex data types and hide their implementation. is a
named collection of data that describes a data object

2. Architecture: Software architecture defines “the overall structure of the software”, that structure
provides conceptual integrity for a system, architecture is the structure or organization of program
components(modules), the manner in which these components interact, and the structure of data that are
used by the components, The architectural design can be represented using one or more of a number of
UNIT - III LECTURE - 11
3. Patterns: A design pattern describes a design structure that solves a particular design problem
within a specific context, it describes how pattern is applied and used,
4. Modularity: Software is divided into separately named and addressable components, sometimes
called modules, “modularity is the single attribute of software that allows a program to be
intellectually manageable”
5. Information Hiding: The principle of information hiding suggests the modules to be “characterized
by design decisions that hides from all others.”
6. Functional Independence: The concept of functional independence is a direct outgrowth of
separation of concerns, modularity, and the concepts of abstraction and information hiding.
7. Refinement: Refinement is actually a process of elaboration. You begin with a statement of
function (or description of information) that is defined at a high level of abstraction.
8. Refactoring: Refactoring is a reorganization technique that simplifies the design (or code) of a
component without changing its function or behavior.
9. Design Classes:
UNIT - III LECTURE - 12
UNIT - III The Design Model LECTURE - 13

The design model can be viewed in two different dimensions


The process dimension indicates the evolution of the design model as design tasks are
executed as part of the software process.
The abstraction dimension represents the level of detail as each element of the
analysis model is transformed into a design equivalent and then refined iteratively.
The elements of the design model use many of the same UML diagrams7 that were
used in the analysis model
UNIT - III LECTURE - 14
UNIT - III Design Model: Design Elements LECTURE - 15

1. Data Design Elements: Data design (sometimes referred to as data architecting)


creates a model of data and/or information that is represented at a high level of
abstraction (the customer/user’s view of data).
2. Architectural Design Elements: The architectural design for software is the
equivalent to the floor plan of a house. The floor plan depicts the overall layout of
the rooms; their size, shape, and relationship to one another.
UNIT - III 3.Interface Design Elements LECTURE - 16
The interface design for software is a set of detailed drawings (and specifications) for the
doors, windows, and external utilities of a house.
These drawings depict the size and shape of doors and windows, the manner in which they
operate, the way in which utility connections (e.g., water, electrical, gas, telephone) come
into the house and are distributed among the rooms depicted in the floor plan.
There are three important elements of interface design:
(1) the user interface (UI);
(2) external interfaces to other systems, devices, networks, or other producers or consumers
of information; and
(3) internal interfaces between various design components. These interface design
elements allow the software to communicate externally and enable internal communication
and collaboration among the components that populate the software architecture.
UNIT - III LECTURE - 17
UNIT - III 4.Component level Design Elements
LECTURE - 18
The component-level design for software is the equivalent to a set of detailed drawings
(and specifications) for each room in a house.
These drawings depict wiring and plumbing within each room, the location of
electrical receptacles and wall switches, faucets, sinks, showers, tubs, drains, cabinets,
and closets.
Within the context of object-oriented software engineering, a component is
represented in UML diagrammatic form as SensorManagement
The SensorManagement component performs all functions associated with SafeHome
sensors including monitoring and configuring them
UNIT - III LECTURE - 19
UNIT - III 5.Deployment level Design Elements LECTURE - 20

Deployment-level design elements indicate how software functionality and


subsystems will be allocated within the physical computing environment that will
support the software.
For example, the elements of the SafeHome product are configured to operate within
three primary computing environments
UNIT - III LECTURE - 21
UNIT - III LECTURE - 22

You might also like