software engineering 1 the life cicle of software lesson 5
TRANSCRIPT
Software Engineering 1
Software EngineeringSoftware Engineering
The Life Cicle of SoftwareLesson 5
Software Engineering 2
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. Maintness
The Life Cycle of Software
Software Engineering 3
The Life Cycle of Software
1. Project Planning and Management
Cost, time and effort definitionTo show these informations we use: Gantt
Chart
Software Engineering 4
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
Software Engineering 5
The Life Cycle of Software
The Gantt Chart is made by Project Manager in the first phases
BUT
Gantt Chart is updated by Project Manager during the project
To make a Gantt Chart we use Microsoft Project
Software Engineering 6
The Life Cycle of Software
Project Manager must update the Gantt Chart when:
• a developer changes work
• unexpected problems in the development
• …
Software Engineering 7
The Life Cycle of Software
Some solutions for the updating:
• increase resource allocation (overtime – it does not always work…)
• assign more resources to certain tasks (it does not always work)
• try and break task dependencies (e.g. 80%, …)
• make it a parallel process by splitting the system in independent tasks
• … or end the project 20 days late
Software Engineering 8
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
Software Engineering 9
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
try and break task
dependencies
= Milestone with
deliverable
Software Engineering 10
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
Software Engineering 11
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
T3A:= A part of Architectural Analysis
T2A:= A part Software Implementation
parallel process
= Milestone with
deliverable
T2BT3B
Software Engineering 12
The Life Cycle of Software
Project Planning and Management deliverable (made by user and software provider):
• Gantt Chart
• a table with more information about activities, developers, …
Software Engineering 13
2. Risk Analysis
The Life Cycle of Software
• How can we avoid adverse event (planned or unplanned)?
• What can we do when an adverse event impact?
Software Engineering 14
The Life Cycle of Software
Risk Analisys deliverable:
• a document with a list of adverse event and it’s solutions
Software Engineering 15
The Life Cycle of Software
3. Requirements Analysis:(what the system should
do)
Functionals Requirements
NONFunctionals
Requirements
Software Engineering 16
The Life Cycle of Software
Functionals Requirements
What the customer requires
Software Engineering 17
The Life Cycle of Software
NONFunctionals
Requirements
Constraints of the system
Software Engineering 18
Functionals Requirements:the services that the customer requires
The Life Cycle of Software
Software Engineering 19
NON-Functionals Requirements:• system properties and constraints
(e.g. reliability, response time and
storage requirements)
• a particular programming language
• development method
The Life Cycle of Software
Software Engineering 20
Requirements Analysis deliverable:
1. DSP (Checklist): requirements document
2. Test Planning: to check the requirements
3. User Manual
The Life Cycle of Software
Software Engineering 21
Requirements Analysis component:
1. DSP (Checklist):natural language and Use Case Diagrams
2. Test Planning:natural language anda set of pair <input data, output data>
3. User Manual:natural language and snapshot of the interface
The Life Cycle of Software
Software Engineering 22
Problems with natural language:
• functional and non-functional requirements tend to be mixed-up
• different requirements may be expressed together
• the analysis is difficult to understand
The Life Cycle of Software
Software Engineering 23
4. Design Analysis(how the system should implement the requirements)
• design analysis define the system’s architecture
• requirements and design are inseparable
The Life Cycle of Software
Software Engineering 24
The Life Cycle of Software
LogicalArchitecture
PhysicalArchitecture
StructuralBehaviour
How the modulesare structured
How the modules are implemented
How the modulesinteract
Software Engineering 25
The Life Cycle of Software
Logical Architecture: an example
InterfaceUser Software Storage
Software Engineering 26
The Life Cycle of Software
Physical Architecture : an example
PC Internet Server
Software Engineering 27
Design Analysis deliverable:
many UML Diagrams with different detail
• Class Diagram
• Sequence Diagram
• Interaction Diagram
• Deployment Diagram
• …
The Life Cycle of Software
Software Engineering 28
5. Software ImplementationWrite the code (e.g. Java. C++, …)
The Life Cycle of Software
Notice:only in sub-activity of this activity
the code is written!!!
Software Engineering 29
Software Implementationdeliverables:
o source code of the systemo document with some preliminary tests
The Life Cycle of Software
Software Engineering 30
6. V&V (Verification & Validation)
Make the test defined in the Requirerment Analysis
and some other test
Some of test are make by the developersOther test are make by other programmers
The Life Cycle of Software
Software Engineering 31
The Life Cycle of Software
Several types of test:
• test (during the implementation)• unit test (after the implementation)• integration test• system test• -Test• -Test
Software Engineering 32
The Life Cycle of Software
-Test
A version of the System tested by the users inside the Software Factory
V&V deliverable:
Software Engineering 33
The Life Cycle of Software
-Test
A version of the System tested by some other users
V&V deliverable:
Software Engineering 34
The Life Cycle of Software
7. Maintness
• remove new bugs
• implement the change of requirements
• implement new requirements