Corso di Ingegneria del Software. Software Project Management

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Corso di Ingegneria del Software. Software Project Management"


1 Software Project Management Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling, tracking, and monitoring a complex technical project. Why? So the end result gets done on time, with quality!

2 Project Planning Task Set-I Establish project scope Determine feasibility Analyze risks Define required resources Determine required human resources Define reusable software resources Identify environmental resources Project Planning Task Set-II Estimate cost and effort Decompose the problem Develop two or more estimates using size, function points, process tasks or use-cases Reconcile the estimates Develop a project schedule Establish a meaningful task set Define a task network Use scheduling tools to develop a timeline chart Define schedule tracking mechanisms

3 Estimation Estimation of resources, cost, and schedule for a software engineering effort requires experience access to good historical information (metrics the courage to commit to quantitative predictions when qualitative information is all that exists Estimation carries inherent risk and this risk leads to uncertainty To Understand Scope... Understand the customers needs understand the business context understand the project boundaries understand the customer s motivation understand the likely paths for change understand that... Even when you understand, nothing is guaranteed!

4 What is Scope? Software scope describes the functions and features that are to be delivered to end-users the data that are input and output the content that is presented to users as a consequence of using the software the performance, constraints, interfaces, and reliability that bound the system. Scope is defined using one of two techniques: A narrative description of software scope is developed after communication with all stakeholders. A set of use-cases is developed by end-users. Resources number software tools skills hardware location people environment network resources project OTS reusable software new full-experience part.-experience

5 Effort and Delivery Time Effort Cost E d Impossible region E a = m (t 4 d / ta 4 ) E a = effort in person-months t d = nominal delivery time for schedule t o = optimal development time (in terms of cost) t a = actual delivery time desired E o t d t o development time T min = 0.75T d Effort Allocation 40-50% 15-20% 30-40% front end activities customer communication analysis design review and modification construction activities coding or code generation testing and installation unit, integration white-box, black box regression

6 Defining Task Sets determine type of project assess the degree of rigor required identify adaptation criteria select appropriate software engineering tasks Task Set Refinement 1.1 scoping determines the overall scope of the project. is refined to Task definition: Task 1.1 Scoping Identify need, benefits and potential customers; Define desired output/control and input events that drive the application; Begin Task FTR: Review written description of need FTR indicates that a formal technical review (Chapter 26) is to be conducted Derive a list of customer visible outputs/inputs FTR: Review outputs/inputs with customer and revise as required; endtask Task Define the functionality/behavior for each major function; Begin Task FTR: Review output and input data objects derived in task 1.1.2; Derive a model of functions/behaviors; FTR: Review functions/behaviors with customer and revise as required; endtask Task Isolate those elements of the technology to be implemented in software; Research availability of existing software; Define technical feasibility; Make quick estimate of size; Create a Scope Definition; endtask definition: Task 1.1

7 Define a Task Network I.3a Tech. Risk Assessment I.5a Implement. I.1 scoping I.2 planning I.3b Tech. Risk Assessment I.4 Proof of I.5b Implement. Integrate a, b, c I.6 Customer Reaction I.3c Tech. Risk Assessment I.5c Implement. Three I.3 tasks are applied in parallel to 3 different concept functions Three I.3 tasks are applied in parallel to 3 different concept functions Timeline Chart week 1 week 2 week 3 week 4 Work tasks week 5 I.1.1 I.1.2 I.1.3 I.1.4 I.1.5 I.1.6 I.1.7 I.1.8 Identify need and benefits Meet with customers Identify needs and project constraints Establish product statement Milestone: product statement defined Define desired output/control/input (OCI) Scope keyboard functions Scope voice input functions Scope modes of interaction Scope document diagnostics Scope other WP functions Document OCI FTR: Review OCI with customer Revise OCI as required; Milestone; OCI defined Define the functionality/behavior Define keyboard functions Define voice input functions Decribe modes of interaction Decribe spell/grammar check Decribe other WP functions FTR: Review OCI definition with customer Revise as required Milestone: OCI defintition complete Isolate software elements Milestone: Software elements defined Research availability of existing software Reseach text editiong Research voice input Research file management Research Spell/Grammar check Milestone: Reusable identified Define technical feasibility Evaluate voice input Evaluate grammar checking Milestone: Technical feasibility assessed Make quick estimate of size Create a Scope Definition Review scope document with customer Revise document as required Milestone: Scope document complete