Title: INTRODUCTION TO SOFTWARE ENGINEERING
1INTRODUCTION TOSOFTWARE ENGINEERING
2Project Life Cycle Model
Initiation
Feasibility Studies
Software Development Life Cycle
3Concepts of a Software Development Life Cycle
Begin at the beginning the King said gravely,
and go till you come to the end then
stop. Lewis Carroll, Alices Adventures in
Wonderland, 1865
4Software Life Cycle
I
5I
Software Life Cycle
6 Software Life Cycle
7Software Life Cycle
8 Software Life Cycle
9Software Life Cycle
10Software Life Cycle
i
i
11 I
Software Life Cycle
i
i
12Activities in the Traditional Engineering Process
13Activities in the Traditional Engineering Process
- Iteration between formal analysis
- and design
14Activities in the TraditionalEngineering Process
- Iteration between formal analysis
- and design
- heavy use of earlier designs
15Activities in the TraditionalEngineering Process
- Iteration between formal analysis and design
- heavy use of earlier designs
- tradeoffs between alternatives
16Activities in the Traditional Engineering Process
- Iteration between formal analysis and design
- heavy use of earlier designs
- tradeoffs between alternatives
- handbooks and manuals
17Activities in the Traditional Engineering Process
- Iteration between formal analysis and design
- heavy use of earlier designs
- tradeoffs between alternatives
- handbooks and manuals
- a pragmatic approach to cost-effectiveness
18Augustines Law
- Software is like entropy. It is difficult to
grasp, and obeys the Second Law of
Thermodynamics I.e., it always increases.
19Components of a Software Product
- Requirements Document
- System Description Document
- Software Development Plan
- Functional Design Document
- Detailed Design Document
- Verification Plan
- Trouble Reports
20Components of a Software Product (cont.)
- Specification Document
- Test Specification
- Test Procedures
- Test Reports
- User Manual
- Source Code Listing
- Object Code Listing
2180
1000
60
750
40
500
Program Cost (B)
Onboard Software Size (KSLC)
20
250
Apollo
Shuttle
Space Station
Software Cost Ratio vs. Space Flight Software
Trends
22Relative Capability of Computer Hardware
100,000
10,000
1,000
100
Productivity of Programmers
10
1
1960
1964
1968
1972
1976
1990
Relative Capability of Computer Hardware
over Time
23100
80
60
40
Hardware Costs
20
1960
1990
1970
1980
Hardware vs. Software Cost Analysis of a Typical
Computer System
24Size Categories (LOC) for Software Products
BOEHM 81
Small
1-2 K
Intermediate / Medium
8-32 K
32-128 K
Large
512 K
Very large
25Size Categories (LOC) for Software Products
BOEHM 81 FAIRLEY 84
Small
1-2 K 1-2 K
Intermediate / Medium
8-32 K 5-50K
32-128 K 50-100 K
Large
512 K 1M
Very large
Extremely Large
1-10 M
26Size Categories (LOC) for Software Products
BOEHM 81 FAIRLEY 84 CHARETTE 86
Small
1-2 K 1-2 K 1-2
k
Intermediate / Medium
8-32 K 5-50K 5-100
k
32-128 K 50-100 K 100 k-1M
Large
512 K 1M 1-10M
Very large
Extremely Large
1-10 M 1-25M
25-100M
Ambitious
Probably wont work today
100M-?
27230 220 210 200 190 180 170 160 150 140 130 120 11
0
(Millions)
78 80 82 84 86 88 90
92
Growth in Cost of Ownership
28 Testing 40.0
Concept 5.0
Design 35.0
Implementation 20.0
Concept Development and Requirements Analysis
Distribution of Effort for Product -
Initial Development
29Errors
Requirements 64
Implementation 36
Requirements Specification and Design Errors
Typical Errors in a Product
30100
90
80
70
60
50
40
30
20
10
Design reviews
Testing Methods
High-Level Languages
Programming Teams
Formal Verification
Formal Requirements or Specifications
Formal Methodology
Program design languages
Implementation Audits
Practices Currently Used
Practices Currently Used
31Tool Usage
Requirements Design Development Integration
Maintenance
Life Cycle Phase
32POOR MARGINAL
GOOD
Software Engineering Practices for U.S.
Companies
33Relative Programmer Productivity
Normalized to 1955
Year
Productivity
1955
1.0
1960
1.6
1965
2.0
1970
2.3
1975
2.7
1980
3.1
1985
3.6
1990
4.0
34Trends in and Demand Software Supply
2.5 2 1.5 1 0.5 0
Demand (12/Yr.)
Productivity (4/Yr.)
Equivalent 1980 Software Personnel (Millions)
Personnel (4/Yr.)
1980 1982 1984 1986
1988 1990
35Relative Product Multiplicative Factors
Turnaround time
Vm volatility
Software tools
Schedule const.
Modn prg prac
Applic. exper
Lang. experience
Timing const
Personnel capability
Reliability reqmts.
Product complexity