Contents Introduction Software Development Processes Project Management Requirements Engineering Software Construction Group processes Quality Assurance Software Management and Evolution Last Time - Software Development Processes 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? Cost Estimation Project Planning and Scheduling Running and Documenting a Project 1
What is Project Management? Think first. Planning improve Activity produce input to Result Check results. Evaluation improve Project Management Activities 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 Project Resources 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 2
Option Analysis Compare different development alternatives Evaluate their risks Select best alternative Tools Polar graph Forms Decision tree... Polar Graphs Reliability Schedule Alternative A Alternative B Alternative C Reuse Cost Portabilty Efficiency Analysis Example Alternative Cost (SEK) Relative efficiency Tools investment Schedule (years) Staff utilization (%) Risk A 7.500.000 0.8 250.000 2 85 0.75 B 8.500.000 1 500.000 1.3 70 0.6 C 7.000.000 0.6 500.000 2 100 0.9 3
Analysis Example (Polar Graph) Cost 5 M Alternative A Alternative B Efficiency 1 Alternative C Risk 0.5 1 0 0 500K 250K Tools investment 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) Simple (0.3) 3.8 MSEK Build Difficult (0.7) Minor changes (0.4) 4.5 MSEK 2.75 MSEK Goal: Develop System X Reuse Buy Simple (0.2) Major changes (0.6) Complex (0.8) Minor changes (0.3) 3.1 MSEK 4.9 MSEK 2.1 MSEK Contract Major changes (0.7) Without changes (0.6) 4 MSEK 3.5 MSEK With changes (0.4) 5 MSEK 4
Project Management What is Project Management? Cost Estimation Project Planning and Scheduling Running and Documenting a Project Cost Estimation General approach Decompose problem Check for experiences/ data on sub problems Make qualified estimations (Make at least two independent estimates) 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 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) 5
COCOMO Project Types 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... 6
COCOMO Intermediate Model 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 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 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 7
COCOMO II 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 FP = Count-total x [ 0.65 + 0.01 x ΣF i ] 14 i=1 Adjustment factors (F i {0,...,5}) Project Management What is Project Management? Cost Estimation Project Planning and Scheduling Running and Documenting a Project 8
Define Work Breakdown Structure Activity Major work unit Start and end dates Consumes resources Results in work products (and milestones) Phase 1 Project function Continue throughout the project Not bound to specific phases Step 1 Step 2 Activity 1 Activity 2 Activity 3 Project Phase 2 Step 1 Step 2 Activity 1 Activity 2 Task 1 Task 2 Task 3 Phase N Step 1 Step 2 Schedule Activities 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 Program Evaluation and Review Technique Graph Nodes = activities/tasks and estimated duration Edges = dependencies Compute Slack time = available time - estimated duration Critical path A path is critical when it contains an activity that, if delayed, will cause a delay of the whole project. 9
PERT Chart Syntax GetAhead There is a nice tutorial at http://www.getahead-direct.com/gwprpert.htm An Example PERT Chart 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 A Gantt Chart (Project Time Line) 10
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 11
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 Example Effort Distribution 250 total time in h 200 150 100 50 actual plan 0 week35 week36 week37 week38 week39 week40 week41 week42 week43 week44 400 350 300 250 200 150 100 50 0 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 12
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 Risk management Risk assessment Risk identification Risk analysis Risk prioritisation 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 Risk control Risk reduction Risk management planning Risk resolution 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 13
Top Ten Project Risks 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 14
Summary What is Project Management? Cost Estimation Project Planning and Scheduling Running and Documenting a Project Next time Introduction Software Development Processes Software Development Processes Project Management Project Management Requirements Engineering Guest lecture Software Construction Group processes Quality Assurance Software Management and Evolution 15