an improved approach to project estimation based on software artifact reuse by david t. henrickson
TRANSCRIPT
An Improved Approach to Project Estimation
Based on Software Artifact Reuse
by
David T. Henrickson
Overview
• Introduction• What is Reuse• Approaches to Project Estimation• A comparison of Domain Engineering and Artifact
Repository• Levels of Reuse to be Considered• Adapting an Artifact –Tracking Tool for Reuse of
Project Costs• Summary
Introduction
• Project estimation fast and accurate
• Development artifacts
• Traceability
• Artifact repository
Reuse Opportunities
• Potential– the set of reuse opportunities that will result in
actual reuse when exploited
• Targeted– the set of reuse opportunities toward which an
organization directs its effort
• Actual– the set of reuse opportunities exploited
Reuse Capability Model
• Measures reuse efficiency and proficiency
• Reuse Opportunity
• Potential Reuse Opportunity
• Targeted Reuse Opportunity
• Actual Reuse Opportunity
Reuse Capability• Reuse Proficiency
RPROFICIENCY = RA / RP
• Reuse EfficiencyREFFICIENCY = RA / RT
• Reuse Effectiveness
REFFECTIVENESS = N(CNR – CR) / CD
N = Number of systems
CNR = Cost of developing without reuse
CR = Cost of utilizing reuse
CD = Cost of Domain engineering
© Davis [1993]
Potential Opportunities
Target Opportunities
Actual Opportunities
Low Reuse Capability
© Davis [1993]
reuse efficiency = 0.10
reuse proficiency = 0.08
Potential Opportunities
Target Opportunities
Actual Opportunities
High Reuse Capability
© Davis [1993]
reuse efficiency = 0.95
reuse proficiency = 0.65
What is Reuse?
• The use of existing software in the development of new software– Lim[1998]
Artifact Reuse
• Requirement
• Specification
• System Models
• Architecture
• Source Code
• Use-case Scenarios
• Test Scenarios
Basic Concepts of Reuse
• In order to reuse software there must be software to reuse– Tracz[1995]
• Consumer– person who actually reuses the software
• Producer– person who initially produces the software
being reused
Corporation
Consumer
Producer
Some examples of reuse organizations
© Wiles [1999]
RARE IDIOM
• RARE – Reuse Assisted Requirements Elicitation
• IDIOM – Informal Document Interpreter Organizer and Manager
RARE IDIOM
• Highly complex tool to identify reuse opportunities
• Uses Bayesian weights based on keywords also called facets
Premise
• Similar requirements produce similar artifacts
• If an artifact has already been produced, we know what its value is
Approaches to Project Estimation
• Top-Down (FPA)– Underestimates costs
• Bottom-up (COCOMO II)– Overestimates costs
• Artifact Repository– Reuse must become a way of life– Repository must be built
Artifact Repository Approach
• File records key on requirement• Decide which artifacts to reuse• Decide how many are unique
– Develop for reuse
• Estimate Tailoring costs• Total: # of assets
[value associated with each asset] + tailoring costs
a=1
Domain Engineering
• Identify and document commonalities across products in a particular domain
• Creating reusable and modifiable domain models
Artifact Repository
• Identify and document common requirements and their artifacts
• Attach a value to each artifact for project estimation
• Reuse artifacts as products of requirements regardless of domain
Project AWord Processor
Project BSpread Sheet
Project CData Base System
Project DFinancial Planner
Project EInternet Search Engine
New Project Being Consideredwill need to:
Create invoicesStore dataCreate forms (paper)Create Reports
Transfer data on a network
Requirement
Code
Graphic User Interface
Hardware
Control Number
Each entity in the set includes a dollar value.
In this way if we only use some of the artifacts we only charge for what we use.
Levels of Reuse
• Requirement
• Specification
• System Models
• Architecture
• Source Code
• Use-case Scenarios
• Test Scenarios
User RequirementsUserNatural LanguageImpreciseNon-TechnicalApplication Terminology
SpecificationSoftware EngineerFormal LanguagePreciseTechnicalSoftware Terminology
versus
Requirements vs. Specification Dichotomy
© Cybulski [1995]
Summary• Introduction• What is Reuse• Approaches to Project Estimation• A comparison of Domain Engineering and Artifact
Repository• Levels of Reuse to be Considered• Adapting an Artifact –Tracking Tool for Reuse of
Project Costs• Summary