Lecture 3 - Software Process
Lecture 3 - Software Process
Lecture 3 - Software Process
>
Software Process
-2 -
> Code and Fix
ØClassroom experiences?
-3 -
> Code and Fix
ØClassroom experiences?
-4 -
> How Do We Develop Software?
ØClassroom experiences?
-5 -
> The Essence of Practice
1. Understand the problem
2. Plan a solution
6
> Understand the Problem
ØWho has a stake in the solution to the problem?
7
> Plan the Solution
ØHave you seen similar problems before?
8
> Carry Out the Plan
ØDoes the solution conform to the plan?
9
> Examine the Result
ØIs it possible to test each component part of the solution?
ØDoes the solution produce results that conform to the data, functions,
and features that are required?
10
> The software process
ØA structured set of activities required to develop a
software system.
• Specification
• Design and implementation
• Validation
• Evolution
11
> Software Development Life Cycle
- 12 -
> How Do We Build Software?
- 13 -
> How Do We Build Software?
- 14 -
> How Do We Build Software?
- 15 -
> Roles of people in software
• customer / client
• managers
• developers
• testers
• users
> Roles and Their Values
17
> How Do We Build Software?
- 19 -
> Requirement Analysis
ØEstablishing:
• what services are required
• constraints on the system’s operation and development.
20
>
- 21 -
> The requirements engineering process
Requirements
Feasibility
elicitation and
study
analysis
Requirements
specification
Feasibility Requirements
report validation
System
models
User and system
requirements
Requirements
document
22
> The Systems Analyst as a Facilitator
- 23 -
830-1998 - IEEE Recommended Practice for Software
> Requirements Specifications
https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7
20574
- 24 -
>
25
> Software design and implementation
ØConverting system specification into an executable system.
26
A general model of the design process
>
Design inputs
Design activities
Database design
Design outputs
27
> Design activities
ØArchitectural design
ØInterface design
ØComponent design
ØDatabase design
28
> Architectural Design
- 29 -
> Interface Design
- 30 -
> Component Design
- 31 -
> Database Design
- 32 -
> Software validation
ØVerification and validation (V & V)
33
Stages of testing
>
Component Acceptance
System testing
testing testing
34
> Stages of Testing
- 35 -
> Testing stages
ØDevelopment or component testing
ØSystem testing
ØAcceptance testing
36
> Software evolution
ØSoftware must evolve and change
37
> System evolution
Existing New
systems system
38
> Coping with change
ØBusiness changes
ØNew technologies
ØChanging platforms
39
> Change Request
- 40 -
> Reducing the costs of rework
ØChange avoidance
ØChange tolerance
41
>
ØLet’s recall
42
> Making software is hard – Pitfalls to avoid
People Process Product Technology
44