CSC 480 Software Engineering Lecture 6 September 11, 2002
CSC Software Engineering2 9/11/2002 Topics Risk Management Cost Estimation
CSC Software Engineering3 9/11/2002 Risk Management 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
CSC Software Engineering4 9/11/2002 Software Risks
CSC Software Engineering5 9/11/2002 Risk Management Process
CSC Software Engineering6 9/11/2002 The Four Risk Activities Identification Mindset: try to continually identify risks Retirement planning Prioritization Retirement or mitigation
CSC Software Engineering7 9/11/2002 Risk Identification Technology risks People risks Organisational risks Requirements risks Estimation risks
CSC Software Engineering8 9/11/2002 Risks and Risk Types
CSC Software Engineering9 9/11/2002 Risk Analysis Assess probability and seriousness of each risk Probability may be very low, low, moderate, high or very high Risk effects might be catastrophic, serious, tolerable or insignificant
CSC Software Engineering10 9/11/2002 Risk Analysis
CSC Software Engineering11 9/11/2002 Risk Planning Consider each risk and develop a strategy to manage that risk Avoidance strategies Reduce the probability that the risk will arise Minimisation strategies Reduce the impact of the risk on the project Contingency plans
CSC Software Engineering12 9/11/2002 Project finish Risk Management Mindset Project start IdentificationRetirement 2. “Java skills not high enough.” 1. “May not be possible to superimpose images adequately.” 1. Retirement by conquest: Demonstrate image super- imposition Risk 1 Risk 2 Risk 1 Project finish Risk 2 2. Retirement by avoidance: Use C++ Project start
CSC Software Engineering13 9/11/2002 Risk Management Strategies
CSC Software Engineering14 9/11/2002 Risk Monitoring Assess each identified risks regularly to decide whether or not it is becoming less or more probable Also assess whether the effects of the risk have changed Each key risk should be discussed at management progress meetings
CSC Software Engineering15 9/11/2002 Risk Factors
CSC Software Engineering16 9/11/2002 Risk Sources Ordered by Importance Lack of top management commitment Failure to gain user commitment Misunderstanding of requirements Inadequate user involvement Failure to manage end-user expectations Changing scope and/or objectives
CSC Software Engineering17 9/11/2002 Likelihood = least likely Impact = least impact Retire- ment cost = lowest retirement cost Priority computation Resulting priority Lowest number handled first The highest priority risk 10 (most likely) 10 (most impact) 1 (lowest retiremen t cost) (11-10) *(11-10) *1 1 The lowest priority risk 1 (least likely) 1 (least impact) 10 (highest retiremen t cost) (11-1) *(11-1) * Compute Risk Priorities
CSC Software Engineering18 9/11/2002 Range of cost estimates after conceptualization phase, based on actual cost of $1 Integration/Test Design Implementation Requirements analysis $1 25c $4 $1 Conceptual- ization phase Range of cost estimates after requirements analysis phase Range of Errors in Estimating Eventual Cost
CSC Software Engineering19 9/11/2002 Cost Estimation Roadmap 1A. Use comparisons with past jobs to estimate cost & duration directly or to estimate lines of code. and / or 1B. Use function point method to estimate lines of code 1B.1 Compute un-adjusted function points. 1B.2 Apply adjustment process. 2. Use lines of code estimates to compute labor and duration using COCOMO formulas.
CSC Software Engineering20 9/11/2002 Function Point Computation Function External Inputs (EI) External Inquiries (EIN) External Outputs (EO) file External Logical Files (ELF) file Internal Logical Files (ILF)* * Internal logical grouping of user data into files Logical group of user data Logical group of user data Logical group of user data For a Single Function (IFPUG)
CSC Software Engineering21 9/11/2002 Function Point Computation Ext. inputs EI … 3 or… 4 or... 6 = ___ Ext. outputs EO … 4 or … 5 or... 7 = ___ PARAMETER simple complex countTotal ■ First compute unadjusted FP ■ Followed by applying adjustment process …
CSC Software Engineering22 9/11/2002 Sample FP Computation
CSC Software Engineering23 9/11/2002 General Characteristics for FP 1. Requires backup/recovery? Data communications required? Distributed processing functions? 0 Adjustment incidental average essential Case study none moderate significant
CSC Software Engineering24 9/11/2002 Computation of Adjusted FP (Adjusted) Function points = [ Unadjusted function points ] [ ( total general characteristics ) ]
CSC Software Engineering25 9/11/2002 Constructive Cost Model (COCOMO) Can we use the estimated KLOC as an effort estimation? KLOC / (KLOC/(man*hr)) = man * hr The answer is NO The communication, documentation, and integration efforts increase faster than the product size grows Effort (in man-month) is exponential in size
CSC Software Engineering26 9/11/2002 COCOMO Once we know the effort estimation in man-month, can we just divide it by the number of developers to get the duration? Duration = Effort / (# developers) The answer is NO, again It takes one chef five hours to cook a turkey. Can we then expect five chefs get one ready in one hour?
CSC Software Engineering27 9/11/2002 COCOMO Formulas (Boehm) Applies to design through integration & test. *“Effort” = total person-months required. (2) Duration for increasing Effort* ( y b 2.5x 0.35 ) (1) Effort* for increasing LOC ( y b 3x 1.12 ) exponent: < 1 > 1
CSC Software Engineering28 9/11/2002 Basic COCOMO Formulae Effort in Person-months = a KLOC b Duration = c Effort d Software Project a b c d Organic Semidetached Embedded Empirical factors due to Boehm [Bo]
CSC Software Engineering29 9/11/2002 Computing COCOMO - Case Study
CSC Software Engineering30 9/11/2002 Selected References [BO] Barry Bohem, Software Engineering Economics, Englewood Cliffs, NJ: Prentice Hall, 1981 [SPR] 12/99http:// Now with a fee ($75)