Académique Documents
Professionnel Documents
Culture Documents
Software Engineering
Lecture 3
Software Processes 2
CS 5150 1
Administration
Project teams
• Any announcement to class?
• People who would like to form teams?
Project Suggestions on the web site
Entrepreneurship experiment
CS 5150 2
Administration
Project teams
When you have formed your team and reached
agreement with your client, please send a message
to:
wya@cs.cornell.edu and stevepurpura@gmail.com
with the names of the team, the client's name, and the
topic of the project.
CS 5150 3
Basic Process Steps in all Software Development
• Requirements
In a lightweight
• System and program design
process, these steps
• Implementation are repeated with
each increment
• Acceptance and release
CS 5150 4
Process Step: Feasibility
CS 5150 5
Process Step: Requirements
CS 5150 6
Process Step: System and Program Design
CS 5150 7
Process Step: Implementation
Implementation (coding)
The software design is realized as a set of programs or
program units.
The software components may be written specifically,
acquired from elsewhere, or modified.
CS 5150 8
Process Step: Acceptance and Release
Acceptance
The system is tested against the requirements by the
client, often with selected customers and users.
Delivery and release
The system is delivered to the client and released into
production or marketed to customers.
CS 5150 9
Testing
User testing
A preliminary version of the user interface is tested by users.
Their experience may lead to changes in the requirements or the
design.
Program testing
The development team tests components individually (unit
testing) or in combination (system testing) to find bugs, etc.
Acceptance testing
The client tests the final version of the system or parts of the
system against the requirements.
CS 5150 10
Process Step: Operation and Maintenance
CS 5150 11
Sequence of Processes
CS 5150 12
Sequence of Processes
Major alternatives
• Sequential: As far as possible, complete each process step
before beginning the next. Waterfall model.
• Iterative: Go quickly through all process steps to create a
rough system, then repeat them to improve the system.
Iterative refinement.
• Incremental: An extension of iterative refinement in which
small increments of software are placed in production. Agile
development.
CS 5150 13
Sequential Development:
The Waterfall Model
Requirements
Design
System design
Implementation
Program design
Implementation (coding)
Testing
Acceptance & release
CS 5150 14
Iterative Refinement
Evaluation Requirements
Implementation Design
CS 5150 15
Incremental Development
CS 5150 16
Discussion of the Waterfall Model
Advantages:
• Process visibility
• Separation of tasks
• Quality control at each step
• Cost monitoring at each step
Disadvantages:
Each stage in the process reveals new
understanding of the previous stages, which
often requires the earlier stages to be revised.
The Waterfall Model is not enough!
CS 5150 17
Sequence of Processes
CS 5150 18
Modified Waterfall Model
Program design
Implementation (coding)
Testing
CS 5150 19
Discussion of Iterative Refinement
CS 5150 20
Iterative Processes: Requirements and Risk
CS 5150 21
Incremental Development: Discussion
CS 5150 23
Mixed Processes
CS 5150 24
Examples of Mixed Processes:
Iterative Refinement + Waterfall Model:
CS 5150 25
Corporate Processes
CS 5150 26
Modern Developments in Software Processes
CS 5150 27
Observations about Software Processes
CS 5150 28
CS 5150 Project Presentations: Iterative Option
Evaluation Requirements
first presentation
second presentation
third presentation
Implementation
Design
CS 5150 29
CS 5150 Project Presentations: Sequential Option
Requirements 2. Design
System design
Program design
3. Implementation
Implementation (coding)
CS 5150 30
CS 5150 Project Presentations: Incremental
Development
CS 5150 31