software engineering 1 the life cicle of software lesson 4
TRANSCRIPT
Software Engineering 1
Software EngineeringSoftware Engineering
The Life Cicle of SoftwareLesson 4
Software Engineering 2
The Life Cycle of Software
The Life Cycle of Software:
coherent sets of activities whose goal is the development, design and evolution
of software
Software Engineering 3
0. Feasibility Study
1. Project Planning and Management
2. Risk Analysis
3. Requirements Analysis
4. Design Analysis
5. Software Implementation
6. V&V (Verification & Validation)
7. Maintenance
The Life Cycle of Software
Software Engineering 4
The Life Cycle of Software
Every phase:
- has 1 o more derivables
- has a milestone
- could have sub-phases
Software Engineering 5
Definition of Deliverable:the result of each phase
The Life Cycle of Software
Example:Deliverable of Software Implementation is code
Software Engineering 6
Definition of Milestone:the expiry date of a phase
The Life Cycle of Software
Software Engineering 7
Every Software Development Process is composed of several of these phases in a particular sequence.
The Life Cycle of Software
Software Engineering 8
The Life Cycle of Software
Now we describe these phases…
… after we will describe through real case studies some Software Development Process: Waterfall, RAD, Spiral, …
Software Engineering 9
0. Feasibility Study
• understand the problem (main functionality)
• make or buy the software?
• cost, time and effort estimation
The Life Cycle of Software
Software Engineering 10
Feasibility Study deliverable (made by user)
30/50 pages with:
1) Introduction
2) Context
3) State of the art (products with similar functionalities)
4) Goals (software main functionalities)
5) Future scenarios (with cost, time and effort estimation)
6) Critical aspects
The Life Cycle of Software
Software Engineering 11
The Life Cycle of Software
1. Project Planning and Management
Cost, time and effort definition
Examples:• a Project Manager for the project at 20% of his
time• oracle from Apr, 1st to May, 25th• a key user for the first three months• …
Software Engineering 12
The Life Cycle of Software
1. Project Planning and Management
Resources definition
Example:• a Project Manager• a System Architect• programmers• analyst• key users• hardware• software• …
Software Engineering 13
The Life Cycle of Software
1. Project Planning and Management
• What can go wrong?• How can we avoid it?• What can we do about it?
Example:• timeline• key user vacation• project manager illness
Software Engineering 14
The Life Cycle of Software
There are a lot of techniques and tools to planSoftware Development Process
Example:Tool: Microsoft ProjectTechnique: Gantt Chart
Software Engineering 15
The Life Cycle of Software
• Planned Duration: elapsed time
• Planned Effort
• Resources (programmers, key users, hw, sw, …)
• Tasks / Activities / Sub-Activities
• Deliverable/Milestone
• Dependencies
• Actual Duration
• Actual Effort
Basic Concepts:
Planned in advance
Planned during the process
Software Engineering 16
The Life Cycle of Software
• Elapsed Time (tf -t0)
• Man Power (Effort)
time
developer
Basic Concepts 2:
Example: if Man Power of a project is 2 months/man Elapsed Time is 2 months for a man and a month for 2 men
Software Engineering 17
The Life Cycle of Software
When planning, for each phases we may try and fix:
Time, Effort fix Cost
Time, Cost fix Effort
Effort, Cost fix Time
To show these informations we use: Gantt Chart
Software Engineering 18
The Life Cycle of Software
t0= Kickoff-Meeting tF= Software Derivable
Jan Feb Mar Apr May Jun Jul Aug
T1:= V&V
T4:= Requirements Analysis
T3:= Architectural Analysis
T2:= Software Implementation
a Dependency
= Milestone with
deliverable