an improved approach to project estimation based on software artifact reuse by david t. henrickson

Post on 17-Dec-2015

225 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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

top related