Sie sind auf Seite 1von 15

Software Engineering

Topic 1:
Software Engineering: A Preview
Your Name: ____________________
Computer Science & Engineering Department
The Chinese University of Hong Kong
Chinese University, CSE Dept.

Software Engineering / 1 - 1

What Is Software Engineering?


Software Engineering: A multi-person construction
of multi-version software.

A term invented in the late 1960s.


Not just programming.
Dealing with complex systems.
Standard techniques and tools are invented and
applied in this field.

Chinese University, CSE Dept.

Software Engineering / 1 - 2

Why Software Engineering?


1. Growing software scale and cost
An order of magnitude growth in every 10 years.
Techniques applicable to small systems could
not be scaled up.

2. Complexity of applications
The demand for software operations increases at
a faster rate than software engineers
productivity

Chinese University, CSE Dept.

Software Engineering / 1 - 3

Why Software Engineering?


3. Impact of software failure
Lack of discipline makes software
easy to be misused.
Multiple copies of software make
software failures spread fast.

Chinese University, CSE Dept.

Software Engineering / 1 - 4

Why Software Engineering?


4. Evolution of software

Software crisis was identified in 1960s.


Software crisis is still software crisis today.
Code is easy to change, but software is hard to
replace.

5. Requirements of software measurement and


metrics

Estimate software ______.


Predict and meet software development ______.
Measure and demonstrate software ______.

Chinese University, CSE Dept.

Software Engineering / 1 - 5

The Software Life Cycle


(The Waterfall Model)
1. Requirement Analysis and Specification
After a feasibility study of customers demand
Identify and document the exact requirements for
the system
Involve customer, developer, and user
______ the problem is

2. Design
A software system is developed to meet the
requirements
Architectural + detailed design
______ to solve the problem
Chinese University, CSE Dept.

Software Engineering / 1 - 6

The Software Life Cycle


3. Coding and Module Testing (Unit
testing)
To produce the actual code for the customer
Ideas on modules (units) divide and conquer
Work breakdown structure
Break the system down into __________

Modules are tested individually

Chinese University, CSE Dept.

Software Engineering / 1 - 7

The Software Life Cycle


4. Integration and System Testing
Modules are integrated and tested as a whole
system

5. Delivery and Maintenance


Delivery to user for operation
Corrective, adaptive, perfective maintenance

Chinese University, CSE Dept.

Software Engineering / 1 - 8

The Waterfall Model of


the Software Life Cycle
Requirements
analysis and
specification

Figure 1.1:
The waterfall model of the software life cycle
Design and
specification

verify

e.g., NASA model

Design review
Design walkthrough
Formal inspection

Coding and
module
testing

verify
Code review

Code walkthrough

verify

Testing results

Integration
and system
testing

verify
Operational environment
Chinese University, CSE Dept.

Delivery and
maintenance
Software Engineering / 1 - 9

Typical Software Cost Distribution


System Type

Phase Costs (%)


Requirements/design
Implementation

Command and control Systems


Spaceborne systems
Operating systems
Scientific systems
Business systems

Testing

46

20

34

34
33
44
44
______

20
17
26
28
______

46
50
30
28
______

The cost of s/w development activities

Therefore, _________________ ___________________


However, good ______________ good _______________
Chinese University, CSE Dept.

Software Engineering / 1 - 10

Relative Penalty of Error Correction


Figure 1.2:
Relative cost vs. phase

Chinese University, CSE Dept.

Software Engineering / 1 - 11

Possible Software Development Paths


Figure 1.3:
Many possible paths
to develop software

Chinese University, CSE Dept.

Software Engineering / 1 - 12

Well-Engineered Software
1.
2.
3.
4.

The software should be maintainable


The software should be reliable
The software should be efficient
The software should offer an appropriate user
interface
5. The software should be measurable for trade-off
study

Chinese University, CSE Dept.

Software Engineering / 1 - 13

Typical Trade-Off Study


Cost

The law of
________________

Figure 1.4:
Tradeoff between cost
and reliability
1.0
(100%) Efficiency or Reliability
Chinese University, CSE Dept.

Software Engineering / 1 - 14

Topic 1 Conclusion
We defined what software engineering is
We explained why software engineering is
needed
We described a fundamental software life
cycle
We depicted a well engineered software

Chinese University, CSE Dept.

Software Engineering / 1 - 15

Das könnte Ihnen auch gefallen