






Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Guidelines and patterns for creating effective designs in software engineering. It covers topics such as architectural styles, data structures, design patterns, and modular design. The document also emphasizes the importance of information hiding, encapsulation, and inheritance in achieving high-quality software.
Typology: Study notes
1 / 10
This page cannot be seen from the preview
Don't miss anything!







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
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.
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
use-cases - text use-case diagramsactivity diagrams swim lane diagrams
data flow diagrams control-flow diagramsprocessing narratives
f l ow- o r i e nt e de l e m e nt s
c l a ss- ba se d b e ha v i or a le l e m e nt s e l e m e nt s
sc e na r i o- ba se de l e m e nt s
class diagramsanalysis packages CRcollaboration diagramsC models
state diagrams sequence diagrams D a t a / Cl a ss D e si g n
A r c h it e c t u r a l D e si g n
I n t e r f a c e D e si g n
Co m p o n e n t - L e v e l D e si g n
Design Model
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
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
A design should exhibit an architecture that (1) has been created using recognizableA design should exhibit an architecturethat (1) has been created using recognizable architectural styles or patterns, (2) is composed of components that exhibit goodarchitectural styles or patterns, (2) is composed of componentsthat exhibit good design characteristics and (3) can be implemented in an evolutionary fashiondesign characteristics and (3) can be implemented in an evolutionary fashion For smaller systems, design can sometimes be developed linearlyFor smaller systems, design can sometimes be developed linearly.. ^ A design should be modular; that is, the software should be logically partitioned intoA design should be modular; that is, the software should be logically partitioned into elements or subsystemselements or subsystems A design should contain distinct representations of data, architecture, interfaces, andA design should contain distinct representationsof data, architecture, interfaces, and components.components. A design should lead to data structures that are appropriate for the classes to beA design should lead to data structures that are appropriatefor the classes to be implemented and are drawn from recognizable data patterns.implemented and are drawn from recognizable data patterns. A design should lead to components that exhibit independent functionalA design should lead to components that exhibit independent functional characteristics.characteristics. A design should lead to interfaces that reduce the complexity of connections betweenA design should lead to interfaces that reduce the complexityof connections between components and with the external environment.components and with the external environment. A design should be derived using a repeatable method that is driven by informationA design should be derived using a repeatable methodthat is driven by information obtained during software requirements analysis.obtained during software requirements analysis. A design should be represented using a notation that effectively communicates itsA design should be represented using a notation that effectivelycommunicates its meaning.meaning.
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
^ The design process should not suffer fromThe design process should not suffer from ‘‘tunnel vision.tunnel vision.’’ The design should be traceable to the analysis model.The design should be traceable to the analysis model. The design should not reinvent the wheel.The design should not reinvent the wheel. The design shouldThe design should ““minimize the intellectual distanceminimize the intellectual distance”” [DAV95] between[DAV95] between the software and the problem as it exists in the real world.the software and the problem as it exists in the real world. The design should exhibit uniformity and integration.The design should exhibit uniformity and integration. The design should be structured to accommodate change.The design should be structured to accommodate change. The design should be structured to degrade gently, even when abeThe design should be structured to degrade gently, even when aberrantrrant data, events, or operating conditions are encountered.data, events, or operating conditions are encountered. Design is not coding, coding is not design.Design is not coding, coding is not design. The design should be assessed for quality as it is being createdThe design should be assessed for quality as it is being created, not after, not after the fact.the fact. The design should be reviewed to minimize conceptual (semantic)The design should be reviewed to minimize conceptual (semantic) errors.errors. From Davis [DAV95]
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
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
Pattern namePattern name ——describes the essence of the pattern in a short but expressive ndescribes the essence of the pattern in a short but expressive nameame IntentIntent ——describes the pattern and what it doesdescribes the pattern and what it does AlsoAlso--knownknown--asas ——lists any synonyms for the patternlists any synonyms for the pattern MotivationMotivation ——provides an example of the problemprovides an example of the problem ApplicabilityApplicability ——notes specific design situations in which the pattern is applicanotes specific design situations in which the pattern is applicableble StructureStructure ——describes the classes that are required to implement the patterndescribes the classes that are required to implement the pattern ParticipantsParticipants ——describes the responsibilities of the classes that are requireddescribes the responsibilities of the classes that are required toto implement the patternimplement the pattern CollaborationsCollaborations ——describes how the participants collaborate to carry out theirdescribes how the participants collaborate to carry out their responsibilitiesresponsibilities ConsequencesConsequences ——describes thedescribes the ““design forcesdesign forces”” that affect the pattern and thethat affect the pattern and the potential tradepotential trade--offs that must be considered when the pattern is implementedoffs that must be considered when the pattern is implemented Related patternsRelated patterns ——crosscross--references related design patternsreferences related design patterns
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
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
optimal number optimal number of modulesof modules
cost ofcost of softwaresoftware
number of modulesnumber of modules
modulemodule integrationintegration costcost
module development costmodule development cost
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
**- • algorithmalgorithm
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
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
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
Entity classesEntity classes Boundary classesBoundary classes Controller classesController classes
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
Boundary classes are designed with the responsibility of managinBoundary classes are designed with the responsibility of managingg the way entity objects are represented to users.the way entity objects are represented to users.
the creation or update of entity objects;the creation or update of entity objects; the instantiation of boundary objects as they obtain informatiothe instantiation of boundary objects as they obtain information fromn from entity objects;entity objects; complex communication between sets of objects;complex communication between sets of objects; validation of data communicated between objects or between thevalidation of data communicated between objects or between the user and the application.user and the application.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
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
:SenderObject
:ReceiverObject
message (
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
case ofcase of graphtypegraphtype:: ifif graphtypegraphtype == linegraphlinegraph thenthen DrawLineGraphDrawLineGraph (data);(data); ifif graphtypegraphtype == piechartpiechart thenthen DrawPieChartDrawPieChart (data);(data); ifif graphtypegraphtype = histogram then= histogram then DrawHistoDrawHisto (data);(data); ifif graphtypegraphtype == kiviatkiviat thenthen DrawKiviatDrawKiviat (data);(data); end case;end case;
graphtype drawgraphtypedraw
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
process dimension
archit ect ure element s
int erface element s
component -level element s
deployment -level element s
low
high
class diagrams analysis packages CRC models collabor at ion diagrams
use- cases - t ext use- case diagr ams act ivit y diagr ams sw im lane diagr ams collabor at ion diagr ams (^) dat a f low diagr ams cont r ol- f low diagrams pr ocessing nar r at ives
dat a f low diagramscont r ol- f low diagr ams processing nar r at ives st at e diagr ams sequence diagr ams
st at e diagr ams sequence diagr ams
design class r ealizat ionssubsyst ems collabor at ion diagrams
design class realizat ions subsyst ems collabor at ion diagr ams
ref inement s t o:
deployment diagr ams
class diagr ams analysis packages CRC models collabor at ion diagr ams
component diagr ams design classes act ivit y diagrams sequence diagr ams r ef inement s t o: component diagr amsdesign classes act ivit y diagrams sequence diagr ams
design class r ealizat ions subsyst ems collaborat ion diagr ams component diagrams design classes act ivit y diagr ams sequence diagr ams
a na ly sis m ode l
de sign m ode l
Requirement s: const raint s int eroperabilit y t arget s and conf igurat ion
t echnical int er f ace design Navigat ion design GUI design
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
Figure 9. 8 UML deploy m ent diagram f or SafeHom e
Per sonal comput er
Security
homeManagement
Surveillance
communication
Cont rol Panel CPI serv er Security (^) homeownerAccess
externalAccess
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
Design forcesDesign forces describe nondescribe non--functional requirements (e.g., ease of maintainability,functional requirements (e.g., ease of maintainability, portability) associated the software for which the pattern is toportability) associated the software for which the pattern is to be applied.be applied.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided