Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

38
Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen

Transcript of Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Page 1: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Component Based Software Estimation

Antonius HermawanIrene TalawayDavid VidalNga Nguyen

Page 2: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

1. Definition2. Problems with traditional approach3. Solutions

o Different scale factorso Complexity sizeo Examples

4. Other techniques5. Conclusion

Outline

Page 3: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Component-based software engineering (CBSE) is an approach to software development that relies on software reuse. Components are independent so do not interfere with each other;

Provides int erfaceRequires interface

ComponentDefines the services

from the component’senvironment that it

uses

Defines the servicesthat are providedby the componentto other components

Component-based Software Engineering

Page 4: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

ProblemSize/Function

Points Estimation

Size / Function

Points

Effort Estimation (COCOMO)

Effort

Estimation Process

Page 5: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Source: http://www.visual-paradigm.com/VPGallery/diagrams/Component.html

No of interactionsNo of interfaces

No of interactionsNo of interfacesComplexity of interfacesComplexity of interactions

Class Diagram

Component Diagram

Counting Complexity

Page 6: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Warehouse ApplicationStock

Supply

Sales & Order

Software cost is projected at the large grained system level

Function Point COCOMO

FormWH App.

SpecificReport

CommunicationUser

Managemnt

Log

Traditional Approach CB Approach

Process

Page 7: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Problems

Cost estimating problem

Efforts estimating problem

FormWH App.

SpecificReport

CommunicationUser

Managemnt

Log

Problems

Page 8: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

GUI

1. Intensity2. Concurrency3. Fragmentation4. Team-size

Costs & Efforts Estimating

Page 9: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

GUIPersonal

Report

SecurityUser

Managemnt

Log

GUI GUI

1. Component Project Experience2. Programmer Project Experience

A new project BRe-use

Project A

Costs & Efforts Estimating

Page 10: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

25/12/09

Methods for estimating component size

Page 11: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

25/12/09

LOC

# Methods

# Subclasses

# Events

Component’s

type

Linear Regression

Neural networks

#GUI elements

Lines of Code Method

Page 12: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

25/12/09

Advantages Easy to calculate

It can be automated

Disadvantages Plattform specific

One application used

Source code not always available.

Lines of Code Method – Advantages - disadvantages

Page 13: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

25/12/09

Component complexity

Composition Interaction

Packing density Interaction density Incoming interaction

density

Outgoing interaction

density

Average interaction density

Component Complexity Metrics

Page 14: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

25/12/09

Component C

Incoming

Outgoing

Component D

Component A

Component B

Component Complexity Metrics - Example

Page 15: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

25/12/09

Advantages

Focus on components assembly

Easy to calculate

Disadvantages

No practical case studies

It's not clear its potential uses

Component Complexity Metrics – Advantages - Disadvantages

Page 16: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

25/12/09

Analysis CBSS & Classify components

Determine interface complexity Determine interaction complexity

Evaluate component complexity & Compute TUCP count

Determina VAF & Compute the final Component point count.

Component points - Steps

Page 17: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

25/12/09

Components

User- InterfaceComponents

Service- Components

Domain- Components

Component points - Classification

Page 18: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

25/12/09

Complexity tableWeights

Interface complexity

Component type Number of operations Number of parameters

ILF EIF

Component points - Interface Complexity

Page 19: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

25/12/09

Interaction Frequency

Collaboration diagrams

Complexity measure

Information content.

Primitive data types User data types

Interaction Complexity

Component points - Interaction Complexity

Page 20: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

25/12/09

# Components Weights

IFCI ITCI Complexity tables

Component complexity

Component complexity

Page 21: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Final CP Count

Estimate Influence of 14 GSC (General System Criteria)

Count VAF (Value Adjustment Factor)

VAF = 0.65 + (0.01 x TDI)

Count Final CPCP = TUCP x VAFTUCP CP

TDI

VAF

Estimate Influence of 14 GSC (General System

Criteria)

14 GSC:• Data and Online Communication• Distributed Processing• System/component performance• Development rigidity• User friendliness• System complexity• Installability• Operability• Maintainability• Multi-site use• System/component reliability• System/component portability• Component immaturity• Lack of component vendor support

No Influence Strong Influence

Page 22: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

– E = effort estmation (man-months)– EDSI = Estimate of Delivered Source Instruction– a,b constants– EAF = effort adjustment factor

→ How about cost for individual components?

Intermediate COCOMO

Effort Estimation in CBSD

E = a (EDSI) b x (EAF)

Page 23: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Example:E = 3.2 (8.5)1.05 x 1 = 30 MM Count EDSI/MM

CMMNOM = EDSI/component EDSI/MM

CMMADJ = CMMNOM x EAF

EDSI/MM = 8500/30 = 283

CMMNOM = 2000/283 = 7.06

Effort Estimation in CBSD (2)

Component EDSI CMMNOM EAF

Component #1 2000 7.06 0.89

Component #2 3000 10.6 1.13

Component #3 3500 12.36 1.05

Page 24: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

This improvement over monolithic approach fails to capture relevant parameters in CBSD

Metrics affecting effort in CBSD:– Intensity : actual time spent on a component

time scheduled for the component– Concurrency : many programmers are working on 1

component.– Fragmentation : 1 programmer is working on many

components.– Programmer Project Experience : components have been

completed– Component Project Experience– Team Size

Effort Estimation in CBSD (3)

Page 25: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Augmented COCOMO Model:

– HOURS = number of hours devoted for component– COCOMO = result of intermediate COCOMO– PREV = number of comp. previously worked on (Component-project

experience)– PROG = size of component development team (team size)– α, β1, β2, β3 are determined based on statistic

Effort Estimation in CBSD (4)

HOURS = α + β1(COCOMO) + β2(PREV) + β3(PROG)

Page 26: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Another Estimation Technique

Page 27: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Schedule determine by number of developer, individual skill level, productive work days/month, contingency

Select Estimators Algorithm

Approach Technical

Cognitive

Process Oriented View

Page 28: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Schedule determine by number of developer, individual skill level, productive work days/month, contingency

Select Estimators Algorithm

Object Metrics Algorithm

(Boehm survey)

Metrics for Object Oriented

MCm= w * MICm +w*m

MICm = Method Interface Complexity/sizem = Complexity/size metric for method evaluationw = Weights, which obviously depend on metric m adopted.

MICm to adjust the traditional functional metrics for: (i) to take also into account complexities due to(ii) to obtain measures even when the methodis only partially implemented or simply identified.

Page 29: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Counting and classify software elements

Business application

Supporting

Business application Infrastructure of

reusable components

Base metric of effort in person days

Planning

Analysis

Testing

Integration

Review

Programming

Design

Select Estimators

Page 30: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Project Architect

Estimator

Scope

Qualifier

Technology

Activity Profile

Effort

Schedule

Cost

Productive Workdays, Contingency

Team Size, Skill Levels

Labor Costs

SELECT Estimator – Software Development cost estimation approaches – a survey

Select Estimators

Page 31: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Base effort adjusted using qualifier to add and subtract

INPUT

OUTPUT Effort in person days, by activity – person in average skillSchedule determine by number of developer, individual skill level, productive work days/month, contingency

Project architect

Applications – subsystems supporting business areaClasses – business conceptUser cases – requirement from userPackages – supporting frameworkComponents – abstraction of lower levelServices – common system features

EstimatorSCOPE

Qualifier

Complexity Reuse Genericity Technology

Select Estimators

Page 32: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Select Estimators vs Cocomo II

Group Factor Select Estimator Cocomo II

Size Attributes Source InstructionsFunction PointsOO-related metrics

NONOYES

YESYESYES

Program Attributes Type/domainComplexityLanguageReuseRequired Reliability

YESYESYESYESNO

NOYESYESYESYES

Computer attributes Resource constraintsPlatform volatility

NONO

YESYES

Software development cost estimation approaches –A survey - Barry Boehm a, Chris Abts a and Sunita Chulani b

Page 33: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Select Estimators vs Cocomo IIGroup Factor Select Estimator Cocomo II

Personel Attributes Personnel CapabilityPersonnel continuityPersonnel exp

YESNONO

YESYESYES

Project Attributes Tools and techBreakageSchedule consProcess maturityTeam cohesionSecurity issuesMultisite dev

YESYESYESNOYESNONO

YESYESYESYESYESNOYES

Activities covered InceptionElaborationConstructionTransition and maintenance

YESYESYESNO

YESYESYESYES

Software development cost estimation approaches –

A survey - Barry Boehm a, Chris Abts a and Sunita Chulani b

Page 34: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Conclusion

Traditional estimation approach failed to capture all aspects of component-based estimation approach

Component based software can be estimated by 2 approaches:enhanced size estimation techniquemore component based related aspects as adjustment

factors

Component points is the most complete technique for size estimation from three different studies– lines of code, component complexity, component points.

Page 35: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

Conclusion (2)

In order to capture component based related aspects, COCOMO could be adjusted in two ways: Considering effort of each component. Considering adjustment factors specific for component

based software

Select Estimators is a good estimating tool for component based that has starting point from object oriented metrics based

Cocomo II still favorite tool for doing component based estimation process with necessary adjustment.

Page 36: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

25/12/09

[1] A. J. Albrecht and J.E. Gaffney, Software Function, Source Lines of Code and Development Effort Prediction: A Software Science Validation, IEEE Transactions on Software Engineering, vol. 9 , 1983

[2] Parag C. Pendharkar. An exploratory study of object-oriented software component size determinants and the application of regression tree forecasting models in Information & Management, Elsevier 2004.

[3] Randy K. Smith, Effort Estimation in Component Based Software Development: Identifying Parameters

[4] Randy K. Smith, Allen Parrish, Cost estimation for component based software development, ACM Southeast Regional Conference, 1998.

Literature Reviewed

Page 37: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

25/12/09

[5] Sajjad Mahmood and Richard Lai, A complexity measure for UML component-based system specification in Software-practice and experience, Willey interscience 2006.

[6]Thareendhra Wijayasiriwardhane and Richard Lai. A method for measuring the size of a Component-based system specification in the Eighth international conference on Quality software, IEEE 2008.

[7] V. Lakshmi Narasimhan and B. Hendradjaya. Some theorical considerations for a suite of metrics for the integration of software components in Information Sciences, Elsevier 2007.

[8] Kozaczynski, W., & Booch, G. Component-based software engineering. IEEE software, 15(5), 34-36, 1998.

Literature Reviewed (2)

Page 38: Component Based Software Estimation Antonius Hermawan Irene Talaway David Vidal Nga Nguyen.

[9] Shimmi, A. Component Based Software Engineering. 2008

[10] Barry Boehm a, Chris Abts a and Sunita Chulan.Softwaredevelopment cost estimation approaches –A survey. Annals ofSoftware Engineering 10 (2000) 177–205,2000

[11] P. NesiT.,Querci .Effort estimation and prediction of object-orientedsystems. Journal of Systems and Software pages 89-102 Volume 42, Issue 1, 1998

Literature Reviewed (3)