COCOMO II 資管研一 張永昌 Agenda Overall Model Definition COCOMO II Models for the Software Marketplace Sectors COCOMO II Model Rationale and Elaboration Development Effort Estimates Software Economies and Diseconomies of Scale Previous Approaches Scaling Drivers Adjusting Nominal Effort Development Schedule Estimation Using COCOMO II Precedentedness (PREC) and Development Flexibility (FLEX) Architecture / Risk Resolution (RESL) Team Cohesion (TEAM) Process Maturity (PMAT) Lines of Code Function Points Converting Function Points to Lines of Code Breakage Overall Model Definition COCOMO II strategy: Preserve the openness of the original COCOMO; Key the structure of COCOMO II to the future software marketplace sectors described earlier; Key the inputs and outputs of the COCOMO II submodels to the level of information available; Enable the COCOMO II submodels to be tailored to a project's particular process strategy. COCOMO II Models for the Software Marketplace Sectors COCOMO II capability for estimation: Application Generator System Integration Infrastructure Two life cycle: Early Design Post-Architecture COCOMO II Model Rationale and Elaboration Three-stage The earliest phases or spiral cycles will generally involve prototyping, using the Application Composition model capabilities. The next phases or spiral cycles will generally involve exploration of architectural alternatives or incremental development strategies. Once the project is ready to develop and sustain a fielded system, it should have a lifecycle architecture, which provides more accurate information on cost driver inputs, and enables more accurate cost estimates. Development Effort Estimates PM nominal A (Size) B PM:Person Months(人月) A:constant Size:Size of software development units=KSLOC(units of thousands of source lines of code) B:scale factor Software Economies and Diseconomies of Scale B<1.0:the project exhibits economies of scale. B=1.0:the economies and diseconomies of scale are in balance. B>1.0:the project exhibits diseconomies of scale. Previous Approaches Original COCOMO: Ada COCOMO: Embedded(COCOMO) B:1.04~1.24 COCOMO II: Organic B=1.05 Semidetached B=1.12 Embedded B=1.20 combin:COCOMO and Ada COCOMO Arcgitecture、Risk( Ada COCOMO ) =>RESL add: Precedentedness (PREC) 、Development Flexibility (FLEX) 、 Team Cohesion (TEAM) Scaling Drivers B 0.91 0.01 w i Precedentedness (PREC) and Development Flexibility (FLEX) Feature Very Low Nominal / High Extra High Precedentedness Organizational understanding of product objectives General Considerable Thorough Experience in working with related software Systems Moderate Considerable Extensive Concurrent development of associated new hardware and operational procedures Extensive Moderate Some Need for innovative data processing architectures, algorithms Considerable Some Minimal Development Flexibility Need for software conformance with preestablished requirements Full Considerable Basic Need for software conformance with external interface specifications Full Considerable Basic Premium on early completion High Medium Low Architecture / Risk Resolution (RESL) Team Cohesion (TEAM) Process Maturity (PMAT) organized around:Software Engineering Institute’s Capability Maturity Model (CMM) two ways of rating Process Maturity: CMM Maturity level Overall Maturity Level p p p p p p CMM CMM CMM CMM CMM CMM Level Level Level Level Level Level 1 (lower half) 1 (upper half) 2 3 4 5 Key Process Areas(KPAs) KPAs: KPA%i 5 5 18 i 1 100 18 Adjusting Nominal Effort Early Design Model 7 PM adjusted PM nominal EM i i 1 Post-Architecture Model 17 PM adjusted PM nominal EM i i 1 Development Schedule Estimation TDEV 3.67 ( PM ) ( 0.28 0.2 B 1.01) SCED% 100 Using COCOMO II Determining Size Lines of Code Function Points Counting Procedure for Unadjusted Function Points 1.Determine function counts by type. 2. Determine complexity-level function counts. Apply complexity weights. Compute Unadjusted Function Points. Converting Function Points to Lines of Code Breakage 額外 BRAK 百分比 原本 20000 ex : 20% 100000