310 likes | 520 Views
CSC 480 Software Engineering. Lecture 6 September 11, 2002. Topics . Risk Management Cost Estimation. Risk Management. A risk is a probability that some adverse circumstance will occur. Project risks affect schedule or resources
E N D
CSC 480 Software Engineering Lecture 6 September 11, 2002
Topics • Risk Management • Cost Estimation CSC 480 - Software Engineering
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 480 - Software Engineering
Software Risks CSC 480 - Software Engineering
Risk Management Process CSC 480 - Software Engineering
The Four Risk Activities • Identification Mindset: try to continually identify risks • Retirement planning • Prioritization • Retirement or mitigation CSC 480 - Software Engineering
Risk Identification • Technology risks • People risks • Organisational risks • Requirements risks • Estimation risks CSC 480 - Software Engineering
Risks and Risk Types CSC 480 - Software Engineering
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 480 - Software Engineering
Risk Analysis CSC 480 - Software Engineering
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 480 - Software Engineering
Risk Management Mindset Identification Retirement 2. “Java skills not high enough.” 2. Retirement by avoidance:Use C++ Project finish Project finish Risk 2 Risk 2 Risk 1 Risk 1 1. Retirement by conquest:Demonstrate image super- imposition 1. “May not be possible to superimpose images adequately.” Project start Project start CSC 480 - Software Engineering
Risk Management Strategies CSC 480 - Software Engineering
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 480 - Software Engineering
Risk Factors CSC 480 - Software Engineering
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 480 - Software Engineering
Likelihood 1-10 1 = least likely Impact 1-10 1 = least impact Retire-ment cost 1-10 1 = lowest retirement cost Priority computation Resulting priority Lowest number handled first The highest priority risk 10 (most likely) 10 (most impact) 1 (lowest retirement cost) (11-10) *(11-10) *1 1 The lowest priority risk 1 (least likely) 1 (least impact) 10 (highest retirement cost) (11-1) *(11-1) *10 1000 Compute Risk Priorities CSC 480 - Software Engineering
Range of cost estimates after conceptualization phase,based on actual cost of $1 $4 Conceptual- ization phase $1 25c Range of cost estimates afterrequirements analysis phase Requirements analysis $1 Range of Errors in Estimating Eventual Cost Design $1 Implementation $1 Integration/Test $1 CSC 480 - Software Engineering
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 480 - Software Engineering
Function Point Computation Function Internal Logical Files (ILF)* External Inquiries (EIN) Logical group of user data Logical group of user data Logical group of user data External Outputs (EO) External Inputs (EI) For a Single Function (IFPUG) * Internal logical grouping of user data into files External Logical Files (ELF) file file file CSC 480 - Software Engineering
Function Point Computation • First compute unadjusted FP • Followed by applying adjustment process PARAMETERsimplecomplex Ext. inputsEI … 3 or… 4 or ...6 = ___ Ext. outputs EO … 4 or … 5 or ...7= ___ … countTotal CSC 480 - Software Engineering
Sample FP Computation CSC 480 - Software Engineering
General Characteristics for FP incidental average essential 1. Requires backup/recovery? 0-2 2. Data communications required? 0-1 3. Distributed processing functions? 0 Adjustment 1-7 . . . . . 0 1 2 3 4 5 Case study none moderate significant CSC 480 - Software Engineering
Computation of Adjusted FP (Adjusted) Function points = [ Unadjusted function points ]r [ 0.65 + 0.01r( total general characteristics ) ] CSC 480 - Software Engineering
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 480 - Software Engineering
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 480 - Software Engineering
COCOMO Formulas (Boehm) (2) Duration for increasing Effort* ( y b 2.5x 0.35 ) < 1 exponent: > 1 (1) Effort* for increasing LOC ( y b 3x 1.12 ) Applies to design through integration & test. *“Effort” = total person-months required. CSC 480 - Software Engineering
Basic COCOMO Formulae Effort in Person-months = aKLOC b Duration = c Effort d Software Project a b c dOrganic 2.4 1.05 2.5 0.38 Semidetached 3.0 1.12 2.5 0.35 Embedded 3.6 1.20 2.5 0.32 Empirical factors due to Boehm [Bo] CSC 480 - Software Engineering
Computing COCOMO - Case Study CSC 480 - Software Engineering
Selected References • [BO] Barry Bohem, Software Engineering Economics, Englewood Cliffs, NJ: Prentice Hall, 1981 • [SPR] http://www.spr.com/library/0langtbl.html 12/99 Now http://www.spr.com/products/programming.htm with a fee ($75) CSC 480 - Software Engineering