0% found this document useful (0 votes)
18 views

02 SE Processes

The document discusses software engineering processes. It describes classical software process models like waterfall model and incremental development. It discusses the basic activities in software processes like specification, development, validation and evolution. It explains how change is inevitable in software projects and ways to cope with change like prototyping and incremental delivery.

Uploaded by

Linh Phạm
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

02 SE Processes

The document discusses software engineering processes. It describes classical software process models like waterfall model and incremental development. It discusses the basic activities in software processes like specification, development, validation and evolution. It explains how change is inevitable in software projects and ways to cope with change like prototyping and incremental delivery.

Uploaded by

Linh Phạm
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

Software Engineering

INT2208E
Lecture 02: Software Processes

1
Last class

• Software
• Software Engineering

2
Software

3
Software Engineering

Deployment

4
This class

• Software process models


• Process activities
• Change and Coping with change in SE

6
Questions (20’)

• Describe a classical software process model.


• Describe the basic activities in the software processes.
• Why is change inevitable in software projects? Give an example.

7
Waterfall model

Requirements
definition

System and
software design

Implementation
and unit testing

Integration and
system testing

Operation and
maintenance

8
Incremental development

Concurrent
activities

Initial
Specification version

Outline Intermediate
description Development versions

Final
Validation version

9
Reuse-oriented software engineering

Application system Configure


Software available application
discovery system

Requirements Requirements
specification refinement Adapt
components
Software Integrate
evaluation Components system
available Develop new
components

10
Discussion

• Is there any other model?


• Which one is better?

11
A system to control antilock braking

12
Replacing an existing accounting system by a new one

13
R&D

14
Process activities

• Four basic process activities are organized differently in different


development processes:
• Specification
• Development
• Validation
• Evolution

15
Requirements engineering

Requirements
elicitation and
analysis
Requirements
specification
Requirements
validation

System
descriptions
User and system
requirements

Requirements
document

16
Software design
Design inputs

Platform Requirements Data


information specification description

Design activities

Architectural Interface Component


design design design

Database design

Design outputs

System Database Interface Component


architecture specification specification specification

17
System implementation

18
Software validation

Component Acceptance
System testing
testing testing

19
V-model

Requirements System System Detailed


specification specification design design

System Sub-system Module and


Acceptance
integration integration unit code
test plan and test
test plan test plan

Acceptance System Sub-system


Service
test integration test integration test

20
Evolution

Define system Assess existing Propose system Modify


requirements systems changes systems

Existing New
systems system

21
Change in software projects

• Change is inevitable in all large software projects.


• Business changes lead to new and changed system requirements
• New technologies open up new possibilities for improving implementations
• Changing platforms requires application changes

• Change leads to rework, so the costs of change include both rework (e.g.
re-analyzing requirements) as well as the costs of implementing new
functionality

22
Discussion

• How can we cope with the change in software projects?

23
Prototype development

Establish Define
prototype prototype Develop Evaluate
objectives functionality prototype prototype

Prototyping Outline Executable Evaluation


plan definition prototype report

24
Incremental delivery

Define outline Assign requirements Design system Develop system


requirements to increments architecture increment

System
incomplete?
Validate Integrate Validate Deploy
increment increment system increment

System
complete?
Final
system

25
Discussion

• Which one is better?

26
Key points

• Software processes are the activities involved in producing a software


system. Software process models are abstract representations of these
processes.
• General process models describe the organization of software processes.
• Examples of these general models include the ‘waterfall’ model, incremental development, and
reuse-oriented development.

• Requirements engineering is the process of developing a software


specification.

27
Key points

• Design and implementation processes are concerned with transforming a


requirements specification into an executable software system.
• Software validation is the process of checking that the system conforms to
its specification and that it meets the real needs of the users of the system.
• Software evolution takes place when you change existing software
systems to meet new requirements. The software must evolve to remain
useful.
• Processes should include activities such as prototyping and incremental
delivery to cope with change.

28
Key points

• Processes may be structured for iterative development and delivery so that


changes may be made without disrupting the system as a whole.
• The principal approaches to process improvement are agile approaches,
geared to reducing process overheads, and maturity-based approaches
based on better process management and the use of good software
engineering practice.

29
Homework

• Explain why software testing should always be an incremental, staged


activity with examples. Are programmers the best people to test the
programs that they have developed? Why?
• Using an example, explain why the design activities of architectural design,
database design, interface design, and component design are
interdependent

30
Next class: Agile Software Development

• Agile methods
• Agile development techniques
• Agile project management
• Scaling agile methods
• Reading assignment: Ch. 3 (Software Engineering, 10th Edition,
Sommerville, Ian)

31

You might also like