Department of Computer Science & Engineering (SB)
Department of Computer Science & Engineering (SB)
SOFTWARE ENGINEERING
SUBJET/COURSE CODE: 22PC0CS10
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:
.
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
(3) can be implemented in an evolutionary fashion,2 thereby facilitating implementation and testing.
3. A design should contain distinct representations of data, architecture, interfaces, and components.
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
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