Professional Documents
Culture Documents
02 Intro Software Engineering PDF
02 Intro Software Engineering PDF
Purpose
To introduce software engineering
Historical Aspect
Economic Aspect
To distinguish classical and modern
approach in software engineering
Maintenance Aspect
Software Life cycle
Kardi Teknomo, PhD
Time
Kardi Teknomo, PhD
50
40
30
20
10
0
Cost overrun Successful Cancelled
Source: The Standish Group, 1994
Software myths
Management myths
Standards and procedures for building software
Add more programmers if behind the schedule
Customer myths
A general description of objectives enough to start
coding
Requirements may change as the software is flexible
Practitioner myths
Task accomplished when the program works
Quality assessment when the program is running
Working program the only project deliverable
Kardi Teknomo, PhD
Software failures
Failures resulting from software errors have varied
consequences ranging from minor inconveniences
to catastrophic loss of life & property:
Therac-25 (1985-1987): six people overexposed
during treatments for cancer
Taurus (1993): the planned automatic transaction
settlement system for London Stock Exchange
cancelled after five years of development
Ariane 5 (1996): roket exploded soon after its
launch due error conversion (16 floating point into 16-
bit integer)
The Mars Climate Orbiter assumed to be lost by
NASA officials (1999): different measurement systems
(Imperial and metric)
Kardi Teknomo, PhD
However …
Important progress:
Ability to produce more complex software has increased
Economic Aspects
Coding method CMnew is 10% faster than currently used
method CMold. Should it be used?
Dicussion Example
You are in charge of a software development.
The cost of developing the software is
estimated to be P 400,000. Approximately, how
much additional money would be needed for
post delivery maintenance of the software?
80
70
60
Cost
50
40
30
20
10
0
Design
Maintenance
Testing
Implementation
Requirements
Brooks' Law:
Adding manpower to a late software project makes it later.
Fred Brooks, The Mythical Man-Month
Kardi Teknomo, PhD
Kardi Teknomo, PhD
Life cycle
The actual steps performed on a specific
product
Kardi Teknomo, PhD
Requirements
Analysis
Design
Implementation
Maintenance
Retirement
Kardi Teknomo, PhD
Typical Phases
Requirements phase
Explore the concept
Elicit the client’s requirements
Implementation phase
Coding
Unit testing
Integration
Acceptance testing
Kardi Teknomo, PhD
Retirement
Kardi Teknomo, PhD
Classical maintenance
Development-then-maintenance model
Another problem:
Development (building software from
scratch) is rare today
Reuse is widespread
Kardi Teknomo, PhD
Figure 1.4
Kardi Teknomo, PhD
The cost of
detecting and
correcting a
fault at each
phase
Figure 1.5
Requirements, Analysis, and Design Aspects
Kardi Teknomo, PhD
(contd)
The
previous
figure
redrawn
on a
linear
scale
Figure 1.6
Kardi Teknomo, PhD
30
10
3 4
1 2
Requirements Specification Planning Design Implementation Integration Maintenance
Requirements, Analysis, and Design Aspects
Kardi Teknomo, PhD
(contd)
To correct a fault early in the life cycle
Usually just a document needs to be changed
Discussion Example
6 months after delivery a fault is detected in the
software. Cost of fixing is P 2,000,000. The cause of
faults is an ambiguus senetnce in the sepcification
document. Approximately, how much would it cost to
have corrected the fault during analysis phase?
Answer:
Relative costs of fixing software faults during
specification is 2 compare to 200 during maintenance.
Thus, if the fault was corrected during analysis phase,
it would cost only P 20,000
Kardi Teknomo, PhD
Conclusion
It is vital to improve our requirements,
analysis, and design techniques
To find faults as early as possible
To reduce the overall number of faults (and,
hence, the overall cost)
Kardi Teknomo, PhD
Kardi Teknomo, PhD
Conclusion
Planning activities are carried out
throughout the life cycle
Verification
Testing at the end of each phase (too late)
Validation
Testing at the end of the project (far too
late)
Kardi Teknomo, PhD
Conclusion
Continual testing activities must be
carried out throughout the life cycle
Conclusion
Documentation activities must be
performed in parallel with all other
development and maintenance activities
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
Kardi Teknomo, PhD
Information hiding
Responsibility-driven design
Impact on maintenance, development
Kardi Teknomo, PhD
Information Hiding
In the object-oriented version
The solid line around accountBalance denotes that
outside the object there is no knowledge of how
accountBalance is implemented
Development is easier
Objects generally have physical counterparts
This simplifies modeling (a key aspect of the object-
oriented paradigm)
Strengths of the Object-Oriented Paradigm
Kardi Teknomo, PhD
(contd)
(contd)
Responsibility-Driven Design
Also called design by contract
Workflows
Figure 1.8
Analysis/Design “Hump”
Structured paradigm:
There is a jolt between analysis (what) and
design (how)
Object-oriented paradigm:
Objects enter from the very beginning
Kardi Teknomo, PhD
In More Detail
Object-Oriented Paradigm
Modules (objects) are introduced as early
as the object-oriented analysis workflow
This ensures a smooth transition from the
analysis workflow to the design workflow
(contd)
Summary
Critical aspects of our day to day lives depend on
software, yet software development lacks the rigor and
discipline of mature engineering disciplines:
Too many projects get delayed, costs and schedules
slip
Software engineering seeks to bring discipline and rigor
to the building and maintenance of software systems