Ase Text Book Chapter 1
Ase Text Book Chapter 1
Outline
Slide 1.1
Object-Oriented and
Classical Software
Engineering
Slide 1.3
Historical aspects
Economic aspects
Maintenance aspects
Requirements, analysis, and design aspects
Team development aspects
Why there is no planning phase
Stephen R. Schach
Copyright 2011 by The McGraw-Hill Companies, Inc. All rights reserved.
CHAPTER 1
Outline (contd)
Slide 1.2
Slide 1.4
THE SCOPE OF
SOFTWARE
ENGINEERING
3/6/2016
Software is delivered
Slide 1.7
Late
Over budget
With residual faults
Conclusion
Slide 1.6
Data on
projects
completed
in 2006
Slide 1.8
Figure 1.1
3/6/2016
Slide 1.9
Slide 1.11
Of course!
Life-cycle model
Slide 1.12
Life cycle
The actual steps performed on a specific product
Requirements phase
Explore the concept
Elicit the clients requirements
3/6/2016
Design phase
Slide 1.15
Development-then-maintenance model
Implementation phase
Classical maintenance
Coding
Unit testing
Integration
Acceptance testing
Postdelivery maintenance
Slide 1.16
Corrective maintenance
Perfective maintenance
Adaptive maintenance
Classical maintenance
Retirement
3/6/2016
Slide 1.17
Slide 1.19
Slide 1.20
Another problem:
Development (building software from scratch) is rare
today
Reuse is widespread
3/6/2016
Slide 1.21
Slide 1.23
Postdelivery maintenance
Changes after delivery and installation [IEEE 1990]
Figure 1.3
Slide 1.24
Figure 1.4
3/6/2016
Slide 1.27
The cost of
detecting and
correcting a
fault at each
phase
Figure 1.5
Copyright 2011 by The McGraw-Hill Companies, Inc. All rights reserved.
Slide 1.28
The
previous
figure
redrawn
on a
linear
scale
Figure 1.6
Copyright 2011 by The McGraw-Hill Companies, Inc. All rights reserved.
3/6/2016
Conclusion
Slide 1.29
Slide 1.31
Slide 1.32
Hardware is cheap
We can build products that are too large to be written by
one person in the available time
3/6/2016
Conclusion
Slide 1.35
Slide 1.34
Slide 1.36
3/6/2016
Slide 1.37
Verification
Slide 1.39
Validation
Testing at the end of the project (far too late)
Conclusion
Slide 1.40
10
3/6/2016
Conclusion
Slide 1.43
Object:
A software component that incorporates both data and
the actions that are performed on that data
Example:
Bank account
Data:
account balance
Actions: deposit, withdraw, determine balance
Slide 1.44
Figure 1.7
Information hiding
Responsibility-driven design
Impact on maintenance, development
11
3/6/2016
Information Hiding
Slide 1.47
Slide 1.46
Slide 1.48
Development is easier
Objects generally have physical counterparts
This simplifies modeling (a key aspect of the objectoriented paradigm)
12
3/6/2016
Responsibility-Driven Design
Analysis/Design Hump
Slide 1.49
Slide 1.51
Structured paradigm:
Call 1-800-flowers
Where is 1-800-flowers?
Which Chicago florist does the delivery?
Information hiding
Send a message to a method [action] of an object
without knowing the internal structure of the object
Object-oriented paradigm:
Objects enter from the very beginning
Slide 1.52
Design
Figure 1.8
Determine how to do it
Architectural design determine the modules
Detailed design design each module
13
3/6/2016
Object-Oriented Paradigm
Slide 1.53
Slide 1.55
Object-oriented analysis
Determine what has to be done
Determine the objects
Object-oriented design
Determine how to do it
Design the objects
In More Detail
Slide 1.56
Figure 1.9
14
3/6/2016
Terminology (contd)
Slide 1.59
Software
Methodology, paradigm
Object-oriented paradigm
Classical (traditional) paradigm
Technique
1.11 Terminology
Terminology (contd)
Slide 1.58
Slide 1.60
Internal software
Defect
Contract software
Bug
Open-source software
Linus's Law
Copyright 2011 by The McGraw-Hill Companies, Inc. All rights reserved.
15
3/6/2016
Object-Oriented Terminology
Slide 1.63
State variable
Instance variable (Java)
Field (C++)
Attribute (generic)
Hard working
Intelligent
Sensible
Up to date and, above all,
Ethical
16