SlidePub
Home
Categories
Login
Register
Home
Design
Ppt on Design engineering which is chapter 9
Ppt on Design engineering which is chapter 9
ranjan317165
14 views
30 slides
Apr 29, 2024
Slide
1
of 30
Previous
Next
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
About This Presentation
Design engineering by Pressman
Size:
2.05 MB
Language:
en
Added:
Apr 29, 2024
Slides:
30 pages
Slide Content
Slide 1
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 1
Design Engineering
based on
Chapter 9 Software Engineering: A Practitioner’s Approach, 6/e
copyright © 1996, 2001, 2005
R.S. Pressman & Associates, Inc.
For University Use Only
May be reproduced ONLY for student use at the university level
when used in conjunction with Software Engineering: A Practitioner's Approach.
Any other reproduction or use is expressly prohibited.
Slide 2
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 2
Analysis Model -> Design ModelAnalysis Model
use-cases - text
use-case diagrams
activity diagrams
swim lane diagrams
data flow diagrams
control-flow diagrams
processing narratives
flow-oriented
elements
behavioral
elements
class-based
elements
scenario-based
elements
class diagrams
analysis packages
CRC models
collaboration diagrams
state diagrams
sequence diagrams
Data/Class Design
Architectural Design
Interface Design
Component-
Level Design
Design Model
Slide 3
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 3
Design and Quality
the design must implement all of the explicit requirements
contained in the analysis model,
… and it must accommodate all of the implicit requirementsdesired by the
customer(?)
the design must be a readable, understandableguidefor those
who generate code and for those who test and subsequently support
the software.
the design should provide a completepicture of the software,
addressing the data, functional, and behavioral domains from an
implementation perspective.
Slide 4
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 4
Quality Guidelines
A design should exhibit an architecturethat
(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
A design should be modular; that is, the software should be logically partitioned into
elements or subsystems
A design should contain distinct representationsof data, architecture, interfaces, and
components.
A design should lead to components that exhibit independent functional
characteristics.
A design should be represented using a notation that effectively communicates its
meaning.
Slide 5
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 5
Fundamental Concepts
abstraction—data, procedure, control
architecture—the overall structure of the software
modularity—compartmentalization of data and function
Functional independence—single-minded function and low coupling
hiding—controlled interfaces
refinement—elaboration of detail for all abstractions
Refactoring—a reorganization technique that simplifies the design
Slide 6
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 6
Data Abstraction
door
implemented as a data structure
manufacturer
model number
type
swing direction
inserts
lights
type
number
weight
opening mechanism
abstraction
architecture
modularity
functional independence
hiding
refinement
refactoring
Slide 7
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 7
Procedural Abstraction
open
implemented with a "knowledge" of the
object that is associated with enter
details of enter
algorithm
Slide 8
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 8
Architecture
“The overall structure of the software and the ways in
which that structure provides conceptual integrity for a
system.” [SHA95a]
Structural properties.This aspect of the architectural design representation
defines the components of a system (e.g., modules, objects, filters) and the
manner in which those components are packaged and interact with one
another. For example, objects are packaged to encapsulate both data and the
processing that manipulates the data and interact via the invocation of methods
Extra-functional properties.achieves requirements for performance, capacity,
reliability, security, adaptability, and other system characteristics.
Families of related systems.The architectural design should draw upon
repeatable patterns that are commonly encountered in the design of families of
similar systems. In essence, the design should have the ability to reuse
architectural building blocks.
abstraction
architecture
modularity
functional independence
hiding
refinement
refactoring
Slide 9
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 9
Modular Designeasier to build, easier to change, easier to fix ...
abstraction
architecture
modularity
functional independence
hiding
refinement
refactoring
Slide 10
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 10
Modularity: Trade-offs
What is the "right" number of modules
for a specific software design?
optimal number
of modules
cost of
software
number of modules
module
integration
cost
module development cost
Slide 11
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 11
Functional IndependenceCOHESION - the degree to which a
module performs one and only one
function.
COUPLING - the degree to which a
module is "connected" to other
modules in the system.
abstraction
architecture
modularity
functional independence
hiding
refinement
refactoring
Slide 12
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 12
Information Hiding
module
controlled
interface
"secret"
• algorithm
• data structure
• details of external interface
• resource allocation policy
clients
a specific design decision
abstraction
architecture
modularity
functional independence
hiding
refinement
refactoring
Slide 13
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 13
Why Information Hiding?
reduces the likelihood of “side effects”
limits the global impact of local design
decisions
emphasizes communication through
controlled interfaces
discourages the use of global data
leads to encapsulation—an attribute of
high quality design
results in higher quality software
Slide 14
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 14
Stepwise Refinement
open
walk to door;
reach for knob;
open door;
walk through;
close door.
repeat until door opens
turn knob clockwise;
if knob doesn't turn, then
take key out;
find correct key;
insert in lock;
endif
pull/push door
move out of way;
end repeat
abstraction
architecture
modularity
functional independence
hiding
refinement
refactoring
Slide 15
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 15
Refactoring
Fowler [FOW99] defines refactoring in the following manner:
"Refactoring is the process of changing a software system in
such a way that it does not alter the external behavior of the
code [design] yet improves its internal structure.”
When software is refactored, the existing design is examined
for
redundancy
unused design elements
inefficient or unnecessary algorithms
poorly constructed or inappropriate data structures
or any other design failure that can be corrected to yield a better
design.
abstraction
architecture
modularity
functional independence
hiding
refinement
refactoring
Slide 16
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 16
OO Design Concepts
Design classes
Entity classes
Boundary classes
Controller classes
Inheritance—all responsibilities of a superclass is
immediately inherited by all subclasses
Messages—stimulate some behavior to occur in the
receiving object
Polymorphism—a characteristic that greatly reduces the
effort required to extend the design
Slide 17
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 17
Design Classes
Analysis classes are refined during design to become entity
classes
Boundary classesare developed during design to create the
interface (e.g., interactive screen or printed reports) that the user
sees and interacts with as the software is used.
Boundary classes are designed with the responsibility of managing
the way entity objects are represented to users.
Controller classesare designed to manage
the creation or update of entity objects;
the instantiation of boundary objects as they obtain information from
entity objects;
complex communication between sets of objects;
validation of data communicated between objects or between the
user and the application.
Design classes
Inheritance
Messages
Polymorphism
Slide 18
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 18
What can be in the top boxes?
(http://www.agilemodeling.com/artifacts/sequenceDiagram.htm)
Outputting
transcripts
Boundary/interface elements: software elements such as screens, reports, HTML pages, or
system interfaces that actors interact with.
Control/processelements (controllers): These serve as the glue between boundary elements
and entity elements, implementing the logic required to manage the various elements and their
interactions.Often implemented using objects, but simple ones using methods of an entity or boundary
class.
Entityelements
Slide 19
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 19
Inheritance
Design options:
The class can be designed and built from scratch. That is, if
inheritance is not used.
The class hierarchy can be searched to determine if a class
higher in the hierarchy (a superclass) contains most of the
required attributes and operations. The new class inherits from
the superclass and additions may then be added, as required.
The class hierarchy can be restructured so that the required
attributes and operations can be inherited by the new class.
Characteristics of an existing class can be overridden and
different versions of attributes or operations are implemented for
the new class.
Design classes
Inheritance
Messages
Polymorphism
Slide 20
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 20
Messages:SenderObject
:ReceiverObject
message (<parameters>)
Design classes
Inheritance
Messages
Polymorphism
Slide 21
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 21
Polymorphism
case of graphtype:
if graphtype = linegraph then DrawLineGraph (data);
if graphtype = piechart then DrawPieChart (data);
if graphtype = histogram then DrawHisto (data);
if graphtype = kiviat then DrawKiviat (data);
end case;
All of the graphs become subclasses of a general class called graph.
Using a concept called overloading [TAY90], each subclass defines an
operation called draw. An object can send a drawmessage to any one
of the objects instantiated from any one of the subclasses. The object
receiving the message will invoke its own drawoperation to create the
appropriate graph.
graphtype draw
Conventionalapproach …
Design classes
Inheritance
Messages
Polymorphism
Slide 22
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 22
Design Model Elements
Data elements
Data model --> data structures
Data model --> database architecture
Architectural elements
Application domain
Analysis classes, their relationships, collaborations and behaviors are
transformed into design realizations
Patterns and “styles” (Chapter 10)
Interface elements
the user interface (UI)
external interfaces to other systems, devices, networks or other producers or
consumers of information
internal interfaces between various design components.
Component elements
Deployment elements
Slide 23
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 23
Interface ElementsControlPanel
LCDdisplay
LEDindicators
keyPadCharacteristics
speaker
wirelessInterface
readKeyStroke()
decodeKey()
displayStatus()
lightLEDs()
sendControlMsg()
Figure 9.6 UML interface representation for ControlPanel
KeyPad
readKeystroke()
decodeKey()
<<interface>>
WirelessPDA
KeyPad
MobilePhone
Slide 24
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 24
Component ElementsSensorManagement
Sensor
Slide 25
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 25
Deployment ElementsFigure 9.8 UML deployment diagram for SafeHome
Personal computer
Security
homeManagement
Surveillance
communication
Control Panel CPI server
Security
homeownerAccess
externalAccess
Slide 26
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 26
Omitted Slides
Slide 27
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 27
Patterns
Design Pattern Template
Pattern name—describes the essence of the pattern in a short but expressive name
Intent—describes the pattern and what it does
Also-known-as—lists any synonyms for the pattern
Motivation—provides an example of the problem
Applicability—notes specific design situations in which the pattern is applicable
Structure—describes the classes that are required to implement the pattern
Participants—describes the responsibilities of the classes that are required to implement
the pattern
Collaborations—describes how the participants collaborate to carry out their
responsibilities
Consequences—describes the “design forces” that affect the pattern and the potential
trade-offs that must be considered when the pattern is implemented
Related patterns—cross-references related design patterns
Slide 28
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 28
Design Patterns
The best designers in any field have an uncanny ability to see patterns that
characterize a problem and corresponding patterns that can be combined to
create a solution
A description of a design pattern may also consider a set of design forces.
Design forcesdescribe non-functional requirements (e.g., ease of maintainability,
portability) associated the software for which the pattern is to be applied.
The pattern characteristics(classes, responsibilities, and collaborations)
indicate the attributes of the design that may be adjusted to enable the
pattern to accommodate a variety of problems.
Slide 29
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 29
Frameworks
A framework is not an architectural pattern, but rather a
skeleton with a collection of “plug points” (also called
hooksand slots) that enable it to be adapted to a specific
problem domain.
Gamma et al note that:
Design patterns are more abstract than frameworks.
Design patterns are smaller architectural elements than
frameworks
Design patterns are less specialized than frameworks
Slide 30
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach,6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 30
The Design Modelprocess dimension
architecture
elements
interface
elements
component-level
elements
deployment-level
elements
low
high
class diagrams
analysis packages
CRC models
collaboration diagrams
use-cases - text
use-case diagrams
activity diagrams
swim lane diagrams
collaboration diagrams data flow diagrams
control-flow diagrams
processing narratives
data flow diagrams
control-flow diagrams
processing narratives
state diagrams
sequence diagrams
state diagrams
sequence diagrams
design class realizations
subsystems
collaboration diagrams
design class realizations
subsystems
collaboration diagrams
refinements to:
deployment diagrams
class diagrams
analysis packages
CRC models
collaboration diagrams
component diagrams
design classes
activity diagrams
sequence diagrams
refinements to:
component diagrams
design classes
activity diagrams
sequence diagrams
design class realizations
subsystems
collaboration diagrams
component diagrams
design classes
activity diagrams
sequence diagrams
analysis model
design model
Requirements:
constraints
interoperability
targets and
configuration
technical interface
design
Navigation design
GUI design
Tags
Categories
Design
Download
Download Slideshow
Get the original presentation file
Quick Actions
Embed
Share
Save
Print
Full
Report
Statistics
Views
14
Slides
30
Age
581 days
Related Slideshows
1
MGV Residential Design projects for different clients, including a New Mexico Adobe project-1-.pdf
mannyvesa
26 views
16
EUNITED_Advocacy and Public Engagement through Visual Media
GeorgeDiamandis11
30 views
31
DESIGN THINKINGGG PPT 2 TOPIC IDEATION.pptx
HibaZaidi2
24 views
36
DESIGN THINKING CHAPTER 1 PPTT PPT 1.pptx
HibaZaidi2
27 views
112
Hinduism and Its History - PowerPoint Slides.pptx
ConorMcCormack10
23 views
20
Service Attributes of Manufactured Parts.pptx
MustafaEnesKrmac
24 views
View More in This Category
Embed Slideshow
Dimensions
Width (px)
Height (px)
Start Page
Which slide to start from (1-30)
Options
Auto-play slides
Show controls
Embed Code
Copy Code
Share Slideshow
Share on Social Media
Share on Facebook
Share on Twitter
Share on LinkedIn
Share via Email
Or copy link
Copy
Report Content
Reason for reporting
*
Select a reason...
Inappropriate content
Copyright violation
Spam or misleading
Offensive or hateful
Privacy violation
Other
Slide number
Leave blank if it applies to the entire slideshow
Additional details
*
Help us understand the problem better