THE COSMIC METHOD OF SOFTWARE SIZING AND ITS USES IN MANAGING AND ESTIMATING SOFTWARE ACTIVITIES

Similar documents
SOFTWARE PROJECTS ESTIMATION & CONTROL: VERSATILITY & CONTRIBUTIONS OF COSMIC FUNCTION POINTS

HOW GOOD AN ESTIMATION PROCESS?

We prefer Facts to Stories

From requirements to project effort estimates work in progress (still?)

Measurement of Software Size: Contributions of COSMIC to Estimation Improvements

Measuring the functional size of real-time software

Software sizing the weakest link in estimating?

Estimate and Measure Agile Projects with Function Points

The COSMIC Functional Size Measurement Method. Version 3.0

Estimating Effort and Cost in Software Projects. ISBSG A Multi-Organizational Project Data Repository for Project Estimation And Benchmarking

A Proposed Measurement Role in the Rational Unified Process and its Implementation with ISO 19761: COSMIC-FFP

Impact of Base Functional Component Types on Software Functional Size based Effort Estimation

Software Metrics & Software Metrology. Alain Abran. Chapter 9 Use Case Points: Analysis of their Design

Managing Agile at Scale

Towards an Assessment Tool for Controlling Functional Changes in Scrum Process

Software Size and Effort Estimation. Dr. Aleš Živkovič, CISA, PRINCE 2

2011 SCEA Conference Presentation Function Point Analysis: One Size Fits All

Functional Size Measurement Revisited. Cigdem Gencel 1 Onur Demirors 2. Abstract

Why SNAP? What is SNAP (in a nutshell)? Does SNAP work? How to use SNAP when we already use Function Points? How can I learn more? What s next?

SENG380:Software Process and Management. Software Size and Effort Estimation Part2

Changing from FPA to COSMIC A transition framework

From performance measurement to project estimating using COSMIC functional sizing

Estimating maintenance projects using COSMIC-FFP

Presented at the 2013 ICEAA Professional Development & Training Workshop -

A Cost Model for Early Cost Calculation of Agile Deliveries

Agile Software Development Cost Modeling for the US DoD

Functional Sizing of Real-time & Embedded Systems

What must be verified in an estimation process: Overview

INDEX. As-is analysis, tool supporting, 302 Attributes, FPA, Availability, software contract requirement, 258

The COSMIC Functional Size Measurement Method Version 3.0.1

Proposing New Model for Effort Estimation of Mobile Application Development

Chapter 5: Software effort estimation- part 2

ISO/IEC INTERNATIONAL STANDARD. Software engineering COSMIC: a functional size measurement method

Figure 1 Function Point items and project category weightings

Guideline for Sizing Agile Projects with COSMIC

QUANTIFIED THE IMPACT OF AGILE. Double your productivity. Improve Quality by 250% Balance your team performance. Cut Time to Market in half

Test Management is Risk management. Risk Based Testing

Effective Use of Function Points for Analogous Software Estimation

Function Point Analysis and Agile Methodology

Application of Agile Delivery Methodologies. Bryan Copeland Energy Corridor Brown Bag Event August 31, 2016

A Software Metrics Primer

Introduction to Disciplined Agile Delivery

IMPROVING SOFTWARE FUNCTIONAL SIZE MEASUREMENT

AS-TRM AND FUNCTIONAL SIZE WITH COSMIC-FFP. Manar Abu Talib Olga Ormandjieva ISIE 2007 ~ Spain

Getting more Bang for your Buck from Function Point Counters

The Impact of Agile. Quantified.

Trends in Reliability Testing By Stuart Reid

Personal Software Process SM for Engineers: Part I

Becoming Agile: A Grounded Theory of Agile Transitions in Practice

Boundaries, Boundaries Everywhere!

Software Project Management. Software effort

Dyson our Agile journey

Towards Approximating COSMIC Functional Size from User Requirements in Agile Development Processes Using Text Mining

Design of a Performance Measurement Framework for Cloud Computing

A Set of Metrics for the Effort Estimation of Mobile Apps

Effective Applications Development, Maintenance and Support Benchmarking. John Ogilvie CEO ISBSG 7 March 2017

LEVERAGE EARNED VALUE MANAGEMENT WITH FUNCTION POINT ANALYSIS

Vampir MPI-Performance Analysis

PRINCE Update. Changes to the manual. AXELOS.com. April 2017 PUBLIC

Can Functional Size Measures Improve Effort Estimation in SCRUM?

Software Metrics & Software Metrology. Alain Abran. Chapter 14 Design of Standard Etalons: The Next Frontier in Software Measurement

CMMI and FPA. the link and benefit of using FPA when rolling out CMMI. Christine Green IFPUG - Certified Function Point Specialist EDS

Vampir. (MPI-) Performance Analysis. Dipl. Inf. Christian Iwainsky Fachgebiet Scientific Computing

Polarion ALM. Use Cases & Demo. Pasi Ahola, Tapio Tuomola Taipuva Consulting Oy

Darshan Institute of Engineering & Technology for Diploma Studies

What is Scrum: An Introduction to the Scrum Framework

A public Benchmark Repository The added value of the ISBSG Ton Dekkers April 2008

Scaled agile deliveries; do we still need estimates? ICEAA Workshop 2018

Information Technology Estimation & Measurement

A Software Metrics Primer 1

Agile Software Development

Software Requirement Engineering

73R-13: Basis of Estimate

ISBSG Software Project Repository & ISO 9126: An Opportunity for Quality Benchmarking

Requirement Engineering. L3 The requirement study. Change is constant. Communication problem? People are hard to understand!

Data Governance and Data Quality. Stewardship

RA SCRUM: REUSABILITY ANALYSIS OF SCRUM MODEL

FP&A and Financial Close at the Speed of Light. Christian Lindholm, VP EMEA Financial Management Applications October, 2016

Engineering & Economics Concepts for Understanding Software Process Performance

The Zero Function Point Problem

Software Engineering G Session 12 Sub-Topic 1 Risk Management in Adaptive Software Engineering. Dr. Jean-Claude Franchitti

Functional Size Measurement for Energy Needs early Estimation in Autonomous Drones

Agile for Aerospace. Andrew Buter, Curt Stienstra, Steven H. VanderLeest GLSEC Embedded Systems Engineering

If necessary, adjust the language of the virtual conference room in the toolbar located in top right hand corner

Code generation and domain-specific modeling for user interfaces of embedded devices

Estimating the Test Volume and Effort for Testing and Verification & Validation

A Measurement Approach Integrating ISO 15939, CMMI and the ISBSG

Software Engineering (CSC 4350/6350) Rao Casturi

Lecture 1. Topics covered. Rapid p development and delivery is now often the most important requirement for software systems.

18-642: Software Development Processes

A Lightweight Incremental Effort Estimation Model For Use Case Driven Projects

0 Introduction Test strategy A Test Strategy for single high-level test B Combined testing strategy for high-level tests...

Given the competitive importance of

ISEB ISTQB Sample Paper

Agile Software Development Cost Risk for Information Technology Programs

Contents. Today Project Management. What is Project Management? Project Management Activities. Project Resources

Received on: Accepted on: Abstract

7. Project Management

What%the%user%asked%for% How%the%analyst%saw%it% the% vision %of%those%who%are%pushing%for%it?% e.g.,% Mee/ng%scheduling%is%too%costly%right%now %

Transcription:

THE COSMIC METHOD OF SOFTWARE SIZING AND ITS USES IN MANAGING AND ESTIMATING SOFTWARE ACTIVITIES BCS Advanced Programming Group meeting 12 th April 2018 Charles Symons

Agenda 2 Goals: the importance of measuring software size Overview of the COSMIC method The acid test. Do COSMIC sizes correlate with effort? Conclusions and future

3 The goal: master the whole cycle of managing software processes Measure actual performance and cost-drivers Control performance against targets Data repository Analyse and learn Establish benchmarks Estimate future processes

Few organizations really master the control cycle 4 High proportions of software project failures and cost over-runs Who does best? Commercial software suppliers a matter of survival Agile method practitioners (maybe) but only at the team level Why the problems? Developing software is partly an unpredictable process

5 The performance of software processes has various aspects, and they are tradeable Project achievement vs plan Actual vs. estimated: Effort, Duration, Size Project productivity Size / Effort Project speed Size / Duration Product quality Defect density (# Defects/Size) Functional (e.g. business needs) Technical (e.g. maintainability, response time, etc.) and the performance of on-going maintenance and enhancement processes

Mastering the control cycle requires a sound method for measuring software size Sizing method options: Counts of Source Lines of Code: Development method specific, e.g. UCP, OOP, Story Points, etc. X X X Can t estimate until software designed Technology-dependent, no standards No reliable standards; benchmark data possible only locally Functional size: International standard methods Technology-independent First Generation methods have limitations

Simple example: using the control cycle data to estimate effort for a project, iteration, etc. 7 Completed projects: Measure productivity = Software size Project effort (Establish average benchmark productivity for the type of project) New project: Typical estimated effort = Estimated software size Benchmark project productivity Best estimated effort = Estimated software size Benchmark project productivity x Adjustments for project-specific cost-drivers

8 A huge number of possible cost-drivers can affect performance Staff problem-area experience Risk Non-functional requirements SIZE Domain (business, real-time) Number of implementations Changes

Summary: there are inherent challenges to implement the software control cycle: 9 The performance of software processes has multiple, tradeable aspects There are so many variables, it is impossible to build general, statistically-valid estimation models for more than a few of them Conclusions: Collect your own size, effort, etc., data Establish your own size/effort relationships

Agenda 10 Goals: the importance of measuring software size Overview of the COSMIC method The acid test. Do COSMIC sizes correlate with effort? Conclusions and future

Method Goals A measure of functional requirements based on fundamental software engineering principles Applicable to business, real-time and infrastructure software Independent of technology or processes used for the software or project (Hopefully) produces sizes that correlate well with effort Open, free

All software functional requirements can be broken down into functional processes Data Movement Theory: Functional Requirements Functional Processes Sub-processes Data Manipulation In practice: Functional Requirements 1 Functional Processes 1 n 2 - n Data Movements (account for associated data manipulation)

There are four types of Data Movement sub-processes Boundary Functional Users Hardware devices, Other software or Humans Entries Exits Reads Software being measured Writes Persistent storage The Data Movement (-type) is the unit of measure: 1 CFP (COSMIC Function Point)

A Functional Process responds to an Event that a Functional User detects or generates Triggering Event causes a Functional User to generate a Data Group Boundary that is moved into a FP by its Triggering Entry Functional Process New employee starts work Personnel Officer types employee details Entry DM with employee details I want to enquire Personnel Officer types employee ID/name Entry DM with employee ID/name

Some real-time examples Triggering Event causes a Functional User to generate a Data Group Boundary that is moved into a FP by its Triggering Entry Functional Process End of time interval Clock Clock tick Entry DM of tick (= start processing ) Missile approaching Aircraft radar Message Missile approaching Entry DM with radar info

Definition of a Functional Process (abbrev.) a) A set of data movement types of the functional requirements. being measured,. that can be defined independently of any other functional process type in those requirements. b) Each functional process type starts processing on receipt of a data group moved by its Triggering Entry data movement. c) The set of all data movement types of a functional process is the set that is needed to meet its requirements for all the possible responses to its Triggering Entry.

Some more definitions A data movement (E, X, R or W) moves a single data group, where: A data group consists of one or more data attributes that describe a single object of interest An object of interest is any thing (physical or conceptual) in the world of the functional user, about which the software being measured must process or store/retrieve data (Think of an entity-type, a relation in 3NF, or the subject of an object class)

Example business application Functional Processes Maintain employee salary Create Employee Enquire on current salary Update salary E Empl. details X Error/Conf. msg. Empl. ID Empl. details R W E X X X Empl. ID Empl. details Empl. Salary History Error/Conf. msg. Empl. details R Empl. Salary History R E X Empl. new salary Error/Conf. msg. Empl. new salary history W 4 CFP 6 CFP 3 CFP

Example real-time Functional Processes Simple thermostat E E E Clock Tick Actual Temp. Target Temp. 4 CFP On/Off command X to heater E Missile detected Complex avionics (Guess) Multiple X s? Sound alarm Pilot info Release chaff Evasive action Etc.? Many CFP

There is no upper limit to the size of a functional process A functional process must have at least 2 CFP A triggering Entry An outcome i.e. a Write or an Exit Largest reported functional processes? In banking ~ 65 CFP In avionics >100 CFP The smallest change to an existing functional process is 1 CFP

Measurement involves a three-phase process Measurement sponsor input Functional Requirements COSMIC Principles Measurement Strategy Definitions: Software to be measured Required measurement Functional requirements COSMIC Principles Mapping Requirements in the form of the COSMIC Model of the software Measurement Functional size of the software in units of CFP

Measurement Strategy phase 1: define the measurement parameters Measurement Sponsor Measurement Purpose Functional Requirements Software parameters Scope Functional users Layer(s) Level of Decomposition Level of Granularity of the requts. Record Strategy parameters Recommendation: define patterns for standard M ment Strategy parameter sets

Mapping phase 2: map the requirements to the COSMIC model Functional Requirements Events (via Functional Users) Functional Processes Objects of interest Data Groups Data Movements

Measurement phase 3: count the data movements Within a defined Measurement Scope: Software size = Sum of sizes of Functional = Processes Count of all their Data Movements Size of a change to software Count of DM s added = plus Count of DM s modified plus Count of DM s deleted

An example result from a measurement Data Group Names Nos. of Data Movements Acme Car Hire Functional Procesess Customer name Customer Master Record Customer name and address Customer ID Customer Summary Details Search Customer by name E R X X 1 2 1 4 View Customer Summary details R E X X 1 2 1 4 View Customer Details R E X 1 1 1 3 Update Customer details W E X 1 1 1 3 Add new Customer W E X 1 1 1 3 Print current Invoice R E R, X X 1 2 2 5 View Booking details E R, X X 1 2 1 4 Totals for Acme System: 7 11 6 2 26 Customer Details Customer latest Invoice Exisitng Bookings Booking Details Error/Confirmation Message Entries Exits Reads Writes Total

26 What about? Common objections to COSMIC size measurement Needs too much detail for early estimating Non-functional requirements Complexity Re-used software There are variants for approximate sizing Quality NFR evolve wholly or partly into functional requirements that COSMIC can measure. Other NFR affect cost, effort but not software size A COSMIC size closely measures the software crude complexity of the functional requirements at the level of granularity of the data movements Distinguish sizes of new and re-used software

In Agile processes, COSMIC sizes can be measured at any level of aggregation Release System User Story (new &/or re-work) Iteration Hence usable for: early total System sizing and effort estimation, User Story sizing and estimation, progress control, etc.

Agenda 28 Goals: the importance of measuring software size Overview of the COSMIC method The acid test. Do COSMIC sizes correlate with effort? Conclusions and future

Case 1: Renault Automotive use in embedded software 29 Renault 1) uses CFP sizing to control the development and enhancement of Electronic Control Units (ECU s) tracks progress of ECU specification teams who create designs in Matlab Simulink which are automatically measured in CFP Motivation for automation: speed, accuracy of measurement

30 Renault achieves remarkable cost estimation accuracy from its ECU designs Cost vs size (CFP) Memory size vs software size (CFP)

31 Case 2: Web effort estimation is more accurate with COSMIC than using 1G FPA Work-hour Residuals 1000 500 0-500 -1000 CFP FP Median 25 industrial Web applications 2) Conclusions: The results of the study revealed that COSMIC outperformed Function Points as indicator of development effort by providing significantly better estimations

32 Case 3: A Canadian supplier of security and surveillance software systems A customer request for new or changed function is called a task Scrum method used with iterations of 3 6 weeks Teams estimate tasks within each iteration in User Story Points, and convert directly to effort in work-hours CFP sizes were measured on 24 tasks from nine iterations, for which USP sizes, estimated and actual effort data were available 3)

33 User Story Point sizes are a poor predictor of effort 200 180 Effort = 0.47 x Story Points + 17.6 hours and R 2 = 0.33) Actual Effort (hours) 160 140 120 100 80 60 40 20 0 0 20 40 60 80 100 120 140 160 180 200 Estimated Effort (Hours) Notice the wide spread and the 17.6 hours overhead

34 The CFP vs Effort graph showed a good fit, but revealed two outliers 200 Effort = 1.84 x CFP + 6.11 hours and R 2 = 0.782 Actual Effort (Hours) 180 160 140 120 100 80 60 40 20 0 0 10 20 30 40 50 60 70 80 Functional Size in CFP Two tasks with low effort/cfp had significant software re-use. Removing these outliers improves the R 2 to 0.977

Case 4: A global automotive manufacturer improved estimating for maintenance changes 35 Context: real-time embedded software Starting point: text/diagrams for required changes A COSMIC-based measurement program 4) resulted in Estimating precision of 10 20% within one year of starting More disciplined, repeatable processes, internal benchmarks Greater customer/supplier trust SW change requests Effort estimation Benchmarking

Conclusions from case studies of size/effort relationships 36 COSMIC-measured sizes correlate very well with effort Investing in COSMIC measurement and recording cost drivers should help improve: estimating accuracy organizational learning for process improvement quality control of requirements Most accurate cost estimate least cost project 5)

Agenda 37 Goals: the importance of measuring software size Overview of the COSMIC method The acid test. Do COSMIC sizes correlate with effort? Conclusions and future

The COSMIC method has many advantages over other methods of measuring software size 38 Based on fundamental software engineering principles, hence: future-proof (and stable) relatively easy to automate Applicable to business, real-time and infrastructure software, at any level of decomposition ISO/IEC standard; endorsed by GAO 6), NIST 7), etc Open, freely available via www.cosmic-sizing.org 8)

39 Estimating software processes can never be an exact science so iterate! Software development is partly mechanical, but partly creative and unpredictable Repeat the control cycle frequently Control performance against targets Measure actual performance and cost-drivers Data repository Estimate and budget future activities Analyse and learn; establish benchmarks AGILE! using a proper size scale Story Points COSMIC Function Points

40 If you would like to learn more. The 8 th UK COSMIC Special Interest Group meeting will be held at UCL, Gower Street, London on June 8 th. Agenda items: Measurements and estimates in a cyber-security environment Estimating at QinetiQ Automated sizing from text requirements COSMIC-related research at UCL Conversion from IFPUG & MkII sizes to COSMIC sizes at SITA If you would like to attend (for free), please register with me.

41 Thank you for your attention Charles Symons (www.cosmic-sizing.org) cr.symons@btinternet.com

42 References 1. Manage the automotive embedded software development cost & productivity with the automation of a Functional Size Measurement Method (COSMIC) Alexandre Oriou et al, IWSM 2014, Rotterdam, www.ieeexplore.org 2. Web Effort Estimation: Function Point Analysis vs. COSMIC, Sergio Di Martino, Filomena Ferrucci, Carmine Gravino, Federica Sarro, Information and Software Technology 72 (2016) 90 109 3. Effort Estimation with Story Points and COSMIC Function Points - An Industry Case Study, Christophe Commeyne, Alain Abran, Rachida Djouab. Software Measurement News. Vol 21, No. 1, 2016. Obtainable from www.cosmic-sizing.org 4. Private communication, Vector Consulting (Germany), 2016 5. The elusive silver lining: how we fail to learn from software development failures, Abdel-Hamid, Madnick, Sloan Management Review, 39, Fall 1990 6. Cost Estimating and Assessment Guide: Best Practices for Developing and Managing Capital Program Costs, Government Accountability Office (USA), 2011, http://www.gao.gov/new.items/d093sp.pdf 7. A rational foundation for software metrology, National Institute for Standards and Technology (USA), NIST IR 8101, https://doi.org/10.6028/nist.ir.8101, 2016 8. Introduction to the COSMIC method of measuring software, v1.1, https://cosmicsizing.org/publications/introduction-to-the-cosmic-method-of-measuring-software-2/