Software Engineering 1 The Life Cicle of Software Lesson 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 plan Software Development Process Example: Tool: Microsoft Project Technique: 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 (t f -t 0 ) 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 t 0 = Kickoff-Meeting t F = Software Derivable Jan Feb MarApr May JunJul Aug T 1 := V&V T 4 := Requirements Analysis T 3 := Architectural Analysis T 2 := Software Implementation a Dependency = Milestone with deliverable