Академический Документы
Профессиональный Документы
Культура Документы
Lecture No. 02
By
RAFIA HASSAN
• Importance of Prerequisites
• Determine the Kind of Software You’re
Working On
• Amount of Time to Spend on Upstream
Prerequisites
• Design in Construction
3
Measure Twice, Cut Once: Upstream
Prerequisites
4
Importance of Prerequisites
• A common denominator of programmers who build high-
quality software is their use of high-quality practices. Such
practices emphasize:
7
Causes of Incomplete Preparation
The data in the Table shown above states that, for example, an
architecture defect that costs $1000 to fix when the architecture is being
created can cost $15,000 to fix during system test.
9
Phase in Which a Defect Is Detected
11
Determine the Kind of Software You’re
Working On
12
Determine the Kind of Software You’re
Working On
13
Determine the Kind of Software You’re
Working On
14
Determine the Kind of Software You’re
Working On
15
Amount of Time to Spend on Upstream
Prerequisites
• The amount of time you spend on
prerequisites will depend on your project
type.
16
KEY CONSTRUCTION
DECISIONS
17
Choice of Programming Language
• The programming language in which the system
will be implemented should be of great interest.
20
Choice of Programming Language
21
Design in Construction
22
Design in Construction
26
Key Design Concepts: Managing
Complexity
27
Key Design Concepts: Desirable
Characteristics
• Minimal Complexity
• Ease of maintenance
• Minimal connectedness
• Extensibility
• Reusability
• High fan-in
• Low to medium fan-out
• Portability
• Leanness
29
30
Key Points
• Software’s Primary Technical Imperative is managing complexity.
This is greatly aided by a design focus on simplicity.
• Good design is iterative; the more design possibilities you try, the
better your final design will be. 31
References
Steve McConnell, “Code Complete: A Practical
Handbook of Software Construction”, Second
Edition.
• Chap # 4
• Chap # 5
32