Professional Documents
Culture Documents
CCC2143
Software Engineering
Topics covered
2
The software process
3
defining what the system should do
5
Plan-driven and agile processes
6
Software process models
Integration
and
configuration
7
Software process models
Requirements
definition
System and
software design
Validate if it meets requirements
Implementation
and unit testing
Integrating database, codes into one big system
Coding/Programming
Integration and
system testing
Operation and
maintenance
9
Waterfall model phases
10
Waterfall model problems
11
Incremental development
Concurrent
activities
Initial
Specification version
Outline Intermediate
description Development versions
Final
Validation version
13
Incremental development problems
14
Integration and configuration
15
Types of reusable software
16
Reuse-oriented software engineering
Requirements Requirements
specification refinement Adapt
components
Software Integrate
evaluation Components system
available Develop new
components
17
Key process stages
1. Requirements specification
2. Software discovery and evaluation
3. Requirements refinement
4. Application system configuration
5. Component adaptation and integration
18
Advantages and disadvantages
19
Software Process Activities
Software Design
Software Software Software
and
Specification Validation Evolution
Implementation
20
Process activities
21
Software specification
22
The requirements engineering process
Requirements
1 elicitation and
analysis 2
Requirements
specification 3
Requirements
validation
System
descriptions
User and system
requirements
Requirements
document
23
Software design and implementation
24
A general model of the design process
Design inputs
Design activities
Database design
Design outputs
25
Software Design Activities
27
Software Validation
28
Testing stages
² Component testing
§ Individual components are tested independently;
§ Components may be functions or objects or coherent
groupings of these entities.
² System testing
§ Testing of the system as a whole. Testing of emergent
properties is particularly important.
² Customer testing
§ Testing with customer data to check that the system meets the
customer’s needs.
Component Acceptance
System testing
testing testing
29
Software evolution
Existing New
30
systems system
Coping with change
31
Coping with change
34
Software prototyping
35
Improved system
Benefits of prototyping usability
A closer match to
users’ real needs
Improved design
quality
Reduced
development
effort
Improved
maintainability
36
The process of prototype development
Establish Define
prototype prototype Develop Evaluate
objectives functionality prototype prototype
38
Incremental delivery
39
Incremental development and delivery
² Incremental development
§ Develop the system in increments and evaluate each increment
before proceeding to the development of the next increment;
§ Normal approach used in agile methods;
§ Evaluation done by user/customer proxy.
² Incremental delivery
§ Deploy an increment for use by end-users;
§ More realistic evaluation about practical use of software;
§ Difficult to implement for replacement systems as increments
have less functionality than the system being replaced.
40
Incremental delivery
System
incomplete?
Validate Integrate Validate Deploy
increment increment system increment
System
complete?
Final
system
41
Process improvement
42
Process improvement
43
Approaches to improvement
44
The process improvement cycle
measure one or
Measure more attributes of
the software
process or product
Change Analyze
Process changes
current process is
are proposed to
assessed, and process
address some of the
weaknesses and
identified process
bottlenecks are
weaknesses
identified
45
Key points
46
Key points
48
Reference
49