© 2010 john wiley & sons ltd. software engineering modern approaches eric braude and michael...
TRANSCRIPT
![Page 1: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/1.jpg)
© 2010 John Wiley & Sons Ltd.
Software Engineering Modern Approaches
Eric Braude and Michael Bernstein1
![Page 2: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/2.jpg)
© 2010 John Wiley & Sons Ltd.
Principles of Software Design
2
![Page 3: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/3.jpg)
© 2010 John Wiley & Sons Ltd.
Learning Goals of This Chapter
• What are the goals of software design?
• How do you use various design models for a single application?
• What are the use case model, the class models, the data flow models, and the state models?
• How are frameworks used in design?
• What are the IEEE standards for expressing designs?
• How does a team prepare for design in practice?
Requirements analysis
Design
Implementation
Testing
Maintenance
Planning
The Software Development
Lifecycle
Phase most relevant to this
chapter is shown in bold
3
![Page 4: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/4.jpg)
© 2010 John Wiley & Sons Ltd.
Goals of Software Design
Sufficiency: handles the requirements
Understandability: can be understood by intended audience
Modularity: divided into well-defined parts
Cohesion: organized so like-minded elements are grouped
together
Coupling: organized to minimize dependence between
elements
4
![Page 5: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/5.jpg)
© 2010 John Wiley & Sons Ltd.
Goals of Software Design
Robustness: can deal with wide variety of input
Flexibility: can be readily modified to handle changes in
requirements
Reusability: can use parts of the design and implementation
in other applications
5
![Page 6: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/6.jpg)
© 2010 John Wiley & Sons Ltd.
Goals of Software Design
Information hiding: module internals are hidden from others
Efficiency: executes within acceptable time and space limits
Reliability: executes with acceptable failure rate
6
![Page 7: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/7.jpg)
© 2010 John Wiley & Sons Ltd.
Cohesion and Coupling: Bridge Example
1
2 3 4
5 6
High cohesion(parts belong together)
Low coupling(little contact)
component
component
7
![Page 8: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/8.jpg)
© 2010 John Wiley & Sons Ltd.
Questionable Architecture: High Coupling in Truss
High coupling
component
8
![Page 9: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/9.jpg)
© 2010 John Wiley & Sons Ltd.
Aspects of Flexibility
Obtaining more or less of what’s already present
Example: handle more kinds of accounts without needing
to change the existing design or code
Adding new kinds of functionality
Example: add withdraw to existing deposit function
Changing functionality
Example: allow withdrawals to create an overdraft
9
![Page 10: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/10.jpg)
© 2010 John Wiley & Sons Ltd.
Types of Reuse
We can reuse …. Object code (or equivalent)Example: sharing dll’s between word processor and
spreadsheet Classes – in source code formExample: Customer class used by several applications
Thus, we write generic code whenever possible Assemblies of Related Classes Example: the java.awt package Patterns of Class Assemblies
10
![Page 11: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/11.jpg)
© 2010 John Wiley & Sons Ltd.
Types of Reuse
We can reuse …. Object code (or equivalent) Classes – in source code form Assemblies of Related Classes Patterns of Class Assemblies
11
![Page 12: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/12.jpg)
© 2010 John Wiley & Sons Ltd.
TargetApplication
Class model“
State model
Use-case model
Data Flow model
To express requirements, architecture & detailed designModels
12
![Page 13: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/13.jpg)
© 2010 John Wiley & Sons Ltd.
TargetApplication
Class model“with objects of these classes ...”
e.g., with Engagement … classes
State model“reacting to these events ...”
e.g., when foreign character enters
Use-case model“Do this ...”
e.g.*, engage foreign character
Data Flow model“in this way ...”
e.g., character scores flow from … to …
Models
* Video game example 13
![Page 14: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/14.jpg)
© 2010 John Wiley & Sons Ltd.
TargetApplication Class model
State model
Use-case model:
Data flow model
Use case
Scenarios
Business use case
elaborated by ...
Sequencediagram
Role of Use Case Models
14
![Page 15: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/15.jpg)
© 2010 John Wiley & Sons Ltd.
TargetApplication
Class model
State model
Use-case model
Data flow model
class
methods
packageConsists
of ...
Jacobson et al
Role of Class Models
15
![Page 16: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/16.jpg)
© 2010 John Wiley & Sons Ltd.
Role of Component Model
TargetApplication
Class model
State model
Use-case model
Data Flow model
Processing element
Sub-processing element
Data type
organizedby ...
Jacobson et al
1
Data store
16
![Page 17: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/17.jpg)
© 2010 John Wiley & Sons Ltd.
Role of State Models
TargetApplication
Class model
State model: “reacting to these events”
Use-case model
Component model
States
Transitions
Substatesdecomposeinto ...
Jacobson et al
17
![Page 18: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/18.jpg)
© 2010 John Wiley & Sons Ltd.
Rental Framework
Rentals
RentalCustomers
RentalItems
18
![Page 19: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/19.jpg)
© 2010 John Wiley & Sons Ltd.
Domain classes
Design classes
Class Model vs. Architecture and Detailed Design
Framework classes
The detailed design
The architecture
The Class Model DVD
RentalItem
19
![Page 20: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/20.jpg)
© 2010 John Wiley & Sons Ltd.
Design Comparison Example
Candidates Al Pruitt’sParallel
Communicating Processes
Event Systems Layered
Qualities
Sufficiency: handles the requirements 1 1 2 2
Understandability: can be understood by intended audience 0 2 1 2
Modularity: divided into well-defined parts 0 0 1 2
Cohesion: organized so like-minded elements are grouped together 1 0 2 2
20
![Page 21: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/21.jpg)
© 2010 John Wiley & Sons Ltd.
Design Comparison Example ctd.
Coupling: organized to minimize dependence between elements 0 1 0 1
Robustness: can deal with wide variety of input 1 0 2 1
Flexibility: can be readily modified to handle changes in requirements 1 0 1 1
Reusability: can use parts of the design and implementation in other applications 0 0 1 2
21
![Page 22: © 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1](https://reader035.vdocuments.us/reader035/viewer/2022062807/5697bfeb1a28abf838cb7c56/html5/thumbnails/22.jpg)
© 2010 John Wiley & Sons Ltd.
Design Comparison Example, concluded
Information hiding: module internals are hidden from others 1 1 2 2
Efficiency: executes within acceptable time and space limits 1 2 0 1
Reliability: 0 1 1 2TOTALS 6 8 13 18
22