Contents Last Time - Software Development Processes Introduction Software Development Processes Project Management Requirements Engineering Software Construction Group processes Quality Assurance Software Management and Evolution What is Software Engineering? Software Development Processes What is that? The Waterfall Model The Spiral Model The V-Model Iterative and Incremental Development Agile Development CMM Systematic Process Improvement Today Project Management What is Project Management? What is Project Management? Cost Estimation Project Planning and Scheduling Running and Documenting a Project Think first. improve Planning Activity produce input to Result Check results. Evaluation improve Project Management Activities Project Resources Project acquisition Feasibility study (initial project planning) Resource assessment Option (and risk) analysis Cost estimation Project planning and scheduling Work breakdown structure Effort estimation and distribution Resource assignment Project tracking and control Risk management Reporting People Required skills Availability Duration of tasks Start date Time Budget Office/lab space Hardware and software tools Description Availability Duration of use Delivery date 1
Option Analysis Polar Graphs Compare different development alternatives Evaluate their risks Select best alternative Reliability Alternative A Alternative B Alternative C Schedule Tools Polar graph Forms Decision tree... Reuse Portabilty Efficiency Cost Analysis Example Analysis Example (Polar Graph) Cost Efficiency Alternative A Cost (SEK) 7.500.000 Relative efficiency 0.8 Tools investment 250.000 Schedule (years) 2 Staff utilization (%) 85 Risk 0.75 5 M Alternative A Alternative B Alternative C 1 B 8.500.000 1 500.000 1.3 70 0.6 Risk 0.5 1 0 0 500K 250K Tools investment C 7.000.000 0.6 500.000 2 100 0.9 2 y 1 y 100% Staff Schedule utilisation Objectives Constraints Alternatives Risks Risk resolution strategy Results Plans Commitment Analysis Example (Forms) Develop a software components catalogue Within one year Must support all existing component types Must cost less than 1 MSEK Buy existing information retrieval (IR) software Buy a database and develop the catalogue using the query language Develop a special-purpose catalogue May be impossible within the given constraints Catalogue functionality may be inappropriate Develop a prototype to clarify requirements Commission a consultants report on existing IR systems Relax the time constraints IR systems are too inflexible Identified requirements cannot be met The prototype using a DBMS may be enhanced to a complete system Special-purpose catalogue development is not cost effective Develop the catalogue using the existing DBMS by enhancing the prototype and building a GUI Fund further 12 months of development Analysis Example (Decision Tree) Goal: Develop System X Build Reuse Buy Contract Simple (0.3) 3.8 MSEK Difficult (0.7) 4.5 MSEK 2.75 MSEK Minor changes (0.4) Simple (0.2) 3.1 MSEK Major changes (0.6) 4.9 MSEK Complex (0.8) Minor changes (0.3) 2.1 MSEK Major changes (0.7) Without changes (0.6) With changes (0.4) 4 MSEK 3.5 MSEK 5 MSEK 2
Project Management What is Project Management? Cost Estimation Project Planning and Scheduling Running and Documenting a Project General approach Decompose problem Check for experiences/ data on sub problems Make qualified estimations (Make at least two independent estimates) Cost Estimation General problems What are good measures? Do the estimates effect the result? Does the type of software effect the result? Does the project environment effect the result?... Use empirical and historical data Algorithmic cost modelling COCOMO (based on LOC) FP (based on function points) COCOMO COCOMO Project Types Constructive Cost Modelling [Boehm 81, Boehm 00] Based on publicly available historical data of 63 TRW projects Basic assumptions: Requirements change only slightly during the project There is good project management The historical data is representative Assigning more resources to the project does NOT result in linear decreasing development time Basic model: Effort = a KDSI b KDSI = Kilo Delivered Source Instructions ( LOC - comments) The a and b factors vary depending on the type of project Effort is measured in PM (Person Months = 152h of work) OM: Organic Mode projects Small teams which are familiar with the type of application Development in a familiar environment EM: Embedded Mode projects Large and inexperienced teams Many constraints SDM: Semi Detached Mode projects Between OM- and EM projects COCOMO Basic Model PM: Person Months 2.4 KDSI 1.05 for OM projects 3 KDSI 1.12 for SDM projects 3.6 KDSI 1.20 for EM projects TDEV: Time for DEVelopment 2.5 PM 0.38 for OM projects 2.5 PM 0.35 for SDM projects 2.5 PM 0.32 for EM projects N: Number of personnel PM / TDEV This is Too Simplistic!? There are many cost drivers that effect effort Programming language Development methods Tools and environments Experience and capabilities of the development team Available time Requirements volatility... 3
COCOMO Intermediate Model Cost Drivers Takes into account 15 cost drivers, which are ranked on a scale from very low to extra high Product attributes (e.g., required reliability) Platform attributes (e.g., time/space constraints) Personnel attributes (e.g., programming language experience) Project attributes (e.g., tool usage) PM: Person Months 3.2 KDSI 1.05 ΠCifor OM projects 3 KDSI 1.12 ΠCi for SDM projects 2.8 KDSI 1.20 ΠCi for EM projects ΠCi [0.09..9.42] TDEV and N as before Cost Drivers Product attributes Required software reliability Size of application database Complexity of the product Platform attributes Run-time performance constraints Memory constraints Volatility of the virtual machine environment Required turnabout time Personnel attributes Analyst capability Applications experience Software engineer capability Virtual machine experience Programming language experience Project attributes Use of software tools Application of software engineering methods Required development schedule Very Low 0.75 0.70 1.46 1.29 1.42 1.21 1.14 1.24 1.24 1.23 Low 0.88 0.94 0.85 0.87 0.87 1.19 1.13 1.17 1.10 1.07 1.10 1.10 1.08 Ratings Nomin al High 1.15 1.08 1.15 1.11 1.06 1.15 1.07 0.86 0.91 0.86 0.90 0.95 0.91 0.91 1.04 Very High 1.40 1.16 1.30 1.30 1.21 1.30 1.15 0.71 0.82 0.70 0.82 0.83 1.10 Extra High 1.65 1.66 1.56 Intermediate COCOMO Summary COCOMO II Works quite well in practice TRW data is publicly available Needs KLOC as input Problems: Estimating KLOC in early project stages Comparison of projects using different LOC counts Outdated project data base for basic constants (70s) Solutions: Cross-check using an other estimation technique Standardised LOC counts Continuous model calibration Use COCOMOII Stage 1: Application Composition (resolving high-risk issues) Estimation base: Object points Single standard project type Stage 2: Early Design (exploration of architectures and concepts) Estimation base: Function points or KLOC Six project type factors Stage 3: Post-architecture (development has started) Estimation base: Function points or KLOC Six project type factors Formulas more complicated; takes care of more variation See simple online tool (http://www.cms4site.ru/utility.php?utility=cocomoii) Function (Feature) Points Estimate functionality captured in requirements Very detailed and complex counting rules (IFPUG) # User inputs x (3,4,6) = # User outputs x (4,5,7) = # User inquiries x (3,4,6) = # Files x (7,10,15) = # External interfaces x (5,7,10) = (# Algorithms x (3,4,6) = ) ----------- Count-total Feature points only Project Management What is Project Management? Cost Estimation Project Planning and Scheduling Running and Documenting a Project FP = Count-total x [ 0.65 + 0.01 x ΣF i ] 14 i=1 Adjustment factors (F i {0,...,5}) 4
Define Work Breakdown Structure Schedule Activities Activity Major work unit Start and end dates Consumes resources Results in work products (and milestones) Project Phase 1 Phase 2 Phase N Project function Continue throughout the project Not bound to specific phases Step 1 Step 2 Step 1 Step 2 Step 1 Step 2 Activity 1 Activity 2 Activity 3 Activity 1 Activity 2 Task 1 Task 2 Task 3 Almost all activities depend on the completion of some other activities Many activities can be performed in parallel Track usage of resources Organisation necessary to balance work-load, costs, and duration PERT chart (activity network/task graph) Critical path Project time-line (Gantt chart) Resource table PERT Charts PERT Chart Syntax Program Evaluation and Review Technique Graph Nodes = activities/tasks and estimated duration Edges = dependencies Compute Slack time = available time - estimated duration Critical path GetAhead A path is critical when it contains an activity that, if delayed, will cause a delay of the whole project. There is a nice tutorial at http://www.getahead-direct.com/gwprpert.htm An Example PERT Chart A Gantt Chart (Project Time Line) Time-motion study of existing hardware 3 2d 5/4/00 5/5/00 Get final report from PSU Designelectrical and Schedule down-time with Schedule contractor for Renovate electrical and Install new hardware pneumatic renovations production supervisor electrical and pneumatic pneumatic 1 5d 4 4d 5 2d 8 1d 13 2d 14 3d 4/27/00 5/3/00 5/4/00 5/9/00 5/10/00 5/11/00 5/12/00 5/12/00 5/17/00 5/18/00 5/19/00 5/23/00 Shut down productionline Remove old hardware 10 1d 11 2d 5/12/00 5/12/00 5/15/00 5/16/00 Get blueprints for old Schedule truck to pickup Inform PSU about pickup Transport hardware from Store old hardware (just hardware hardware at PSU PSU in case) 2 1d 6 1d 7 2d 9 2d 12 10d 4/27/00 4/27/00 5/4/00 5/4/00 5/5/00 5/8/00 5/9/00 5/10/00 5/17/00 5/30/00 5
Another Gantt Chart A Resource Table Can be (partly) generated from Gantt and or PERT charts Resource assignment Useful for project tracking Start End Elapsed Utilisation Task name earliest latest earliest latest time Resource 1 time 1 Resource n Utilisation time n... Project Management What is Project Management? Cost Estimation Project Planning and Scheduling Running and Documenting a Project Running a Project To know where you are you need A (detailed) plan/goal Measurements of project status 100% plan actual progress time in, e.g., weeks total time in h 250 200 150 100 50 0 400 350 300 250 200 150 100 50 0 Example Effort Distribution actual plan week35 week36 week37 week38 week39 week40 week41 week42 week43 week44 Lectures Meetings Planning Requirements GUI design Analysis Design Testing Coding Presentations Subcontract Code subc. Evaluation of prototype Manual Final report weekly reports and meeting minutes Other Risk Management Risk management is concerned with identifying risks and drawing up plans to minimise their effect on a project A risk is a probability that some adverse circumstance will occur Project risks affect schedule or resources Product risks affect the quality or performance of the software being developed Business risks affect the organisation developing or procuring the software 6
Risk Management Activities Investigate potential risk factors Risk Likelihood of occurrence Impact Define mitigation strategies (i.e. be prepared) What can be done to avoid the problem(s) in the first place What can be done to solve the problem(s) in case they occur Monitor risks Determine if predicted risk occurs Properly apply risk aversion steps Collect info for future risk analysis Example Assume Risk = High staff turnover Likelihood of occurrence = 70% Impact = Increase project time by 15%, project cost by 12% Mitigation strategy Identify high turnover causes Reduce causes before project starts Develop techniques to assure work continuity in light of turnover For example... or... Risk Management Top Ten Project Risks Risk identification Risk assessment Risk analysis Risk prioritisation Risk management Risk reduction Risk control Risk management planning Risk resolution Checklist Decomposition Assumption analysis Decision driver analysis System dynamics Performance models Cost models Network analysis Decision analysis Quality risk factor analysis Risk exposure Compound risk reduction Buying information Risk avoidance Risk transfer Risk reduction leverage Development process Risk element planning Risk plan integration Risk mitigation Risk monitoring and reporting Risk reassessment Staff deficiencies Unrealistic schedules and budgets Developing the wrong functions Developing the wrong interface Over-engineering Requirements volatility Externally developed items Externally performed tasks Performance problems Assumptions on technology See Jalote: An Integrated Approach to Software Engineering, Springer 1997. 1Introduction 1.1 Project overview 1.2 Project deliverables 1.3 Evolution of the SPMP 1.4 Reference Materials 1.5 Definitions and acronyms The Project Plan 2Project Organisation 2.1 Process model 2.2 Organisational structure 2.3 Organisational boundaries and interfaces 2.4 Project responsibilities 3 Managerial Process 3.1 Management objectives and priorities 3.2 Assumptions, dependencies and constraints 3.3 Risk management 3.4 Monitoring and controlling mechanisms 3.5 Staffing plan 4 Technical Process 4.1 Methods, tools and techniques 4.2 Software documentation 4.3 Project support functions 5 Work Packages, Schedule, and Budget 5.1 Work packages 5.2 Dependencies 5.3 Resource requirements 5.4 Budget and resource allocation 5.5 Schedule According to ESA Std PSS-05-0 The Message Without a detailed plan you never know where you are 7
Summary What is Project Management? Cost Estimation Project Planning and Scheduling Running and Documenting a Project Introduction Next time Software Development Processes Software Development Processes Project Management Project Management Requirements Engineering Guest lecture Software Construction Group processes Quality Assurance Software Management and Evolution 8