190 likes | 207 Views
Reuse Revisited. A reminder of basic software reuse gauging techniques and additional topics. Ernest Cachia (As part of CSA404). Let’s Remember …. Banker’s “coarse” estimate of reuse percentage and reuse leverage Poulin-Caruso’s estimate of: reuse cost avoidance reuse value added
E N D
Reuse Revisited A reminder of basic software reuse gauging techniques and additional topics. Ernest Cachia (As part of CSA404)
Let’s Remember … • Banker’s “coarse” estimate of reuse percentage and reuse leverage • Poulin-Caruso’s estimate of: • reuse cost avoidance • reuse value added • additional development cost • a project’s return on investment value • Balda-Gustafson’s effort cost estimate based on the COnstruction COst MOdel (COCOMO) (Selected slides from CSM203 could be reviewed at this point)
The Benefits of Reuse(in theory) • Lower development costs • Higher product quality • Higher production rate • Reduced development process time • Lower failure/defect risk • Lower personnel training costs • Easier (clearer and cleaner) maintenance • Enhanced interoperability
The Benefits of Reuse(in practice - example 1) • Nippon Electric Company (NEC) Basic reuse of 17% translated to … • Productivity: +6.7 times (over 1 year) +10.4 times (over 7 years) • Software quality: +2.8 times (over 1 year) +8.5 times (over 7 years) Domain(s): Basic and communication switching systems (1996 data)
The Benefits of Reuse(in practice - example 2) • Toshiba Corporation Basic reuse of 60% translated to … • Defect reduction: 28% (over 1 year) • Software quality: +4.3 times (over 1 year) Domain(s): Control and communication systems (1992 data)
The Benefits of Reuse(in practice - example 3) • DEC Basic reuse of 50-80% translated to … • Productivity: +3-5 times (over 1 year) • Software quality: +2.3 times (over 1 year) Domain(s): Computer control systems (1994 data)
The Benefits of Reuse(in practice - example 4) • Hewlett-Packard (HP) Basic reuse of 70% translated to … • Defect reduction: 50% (avg. over 2 projects) • Productivity: +45% (avg. over 2 projects) • Timeliness: +43% (avg. over 2 projects) Domain(s): Basic and computer peripheral control systems (1995 data)
The Benefits of Reuse(in practice - example 5) • Raytheon Corporation Basic reuse of 60% translated to … • Productivity: +50% (over 2 COBOL projects) • Defect reduction: 44% (over 2 COBOL projects) Domain(s): Large-scale information systems (1980 data) - One of the very first “sightings” of commercial reuse… then hailed as a major trend for the future but not quite ripe for its time!
The Benefits of Reuse(in practice - example 6) • Software Architecture & Engineering, Inc. (SAE) Basic reuse of 80-90% translated to … • Productivity: +54% (over 3 “C” projects) • Defect reduction: +39% (over 3 “C” projects) Domain(s): Distributed software applications (1992 data)
The Benefits of Reuse(in practice - in general) • Study of 75 Ada projects in 15 firms (30+ MLOC in all): • Software quality (all aspects) increased by an average of 10 times in relation to just 10-18% reuse levels. (1991-92 data) • Study of 9 major software producing companies practising reuse: • Defect reduction: 58% • Project cost: 84% • Timeliness: +70% (all over 1 year 1994-95)
Main Reuse Model Types • Reuse level models (a post-mortem static analysis - “How much has been reused?”) • Reuse leverage models (a post-mortem comparative analysis - “How has reuse improved a given activity?”) • Reuse economic models (a predicative estimate composed of a combination of 3 basic approaches) … see slide 14
Reuse Level • Very popular (widespread use) • Easy to relate to • Easy and quick to calculate • Widely adopted industry standard metric Reused software Reuse % = x 100% Total software Note that the above is meaningless without a “count object” definition
Reuse Leverage • Not as popular as the reuse level metric • It is a comparative metric • Easy and quick to calculate • Based on productivity Productivity with reuse Leverage = Productivity without reuse E. g. If RL for ORGa is 1.35 this means that ORGa has increased its productivity by 35%
Reuse Economic Models • Cost Avoidance (CA - estimate - “How much money will be saved?”) • Return On Investment (ROI - estimate - “Will money be saved in the long-run?”) • Cost-Benefit (C-B - estimate - “Should reuse be considered at all?”) … see cost and benefit breakdown tables on separate handouts.
Frakes-Terry Reuse Level Metric • More detailed then the Banker metric • Specifically targeted at C (but can be re-applied with basic assumptions) • The basic “reusable object”, referred to as an item, is generally considered to be a function (as in C) • Differentiates between internal and external reuse
Frakes-Terry Definitions • The main definitions: • ETL (External Threshold Level) - The number of times an external item must be invoked before considering an invocation as reuse. • ITL (Internal Threshold Level) - Same as ETL but for an internal item. • EU (External Usage) - Usage of items over and above ETL. • IU (Internal Usage) - Usage of items over and above ITL. • T (Total) - Total number of items in system both internal and external.
Assumptions for the Frakes-Terry approach • No internal reuse (this is usually the case as items generated by a team are taken to be items included in application development and not reused). Therefore: ITL and it follows that IU 0 • Any invocation of external items is taken to be reuse. Therefore: ETL 0
Frakes-Terry Reuse Level Relationships • Internal reuse level = IU / T • External reuse level = EU / T • Total reuse level = (IU + EU) / T Values range from 0 (i.e. no reuse) to 1 (i.e. system made up solely of reused items) Please note that the actual size of an “item” in the Frakes-Terry approach should always be taken into account. A complexity weighting should be used within the metric if straightforward LOC is not used.
Frakes-Terry Example • The actual example will be discussed during lecture sessions. However, the initial conditions/assumptions of the example are shown on this slide. Internal items External items Main item 15 LOC Item C 20 LOC Item D 10 LOC Item A 25 LOC Item B 30 LOC Item E 25 LOC