Presentation is loading. Please wait.

Presentation is loading. Please wait.

INTRODUCTION TO THE COSMIC METHOD OF MEASURING SOFTWARE Bruce Reynolds, November 2015 1.

Similar presentations


Presentation on theme: "INTRODUCTION TO THE COSMIC METHOD OF MEASURING SOFTWARE Bruce Reynolds, November 2015 1."— Presentation transcript:

1 INTRODUCTION TO THE COSMIC METHOD OF MEASURING SOFTWARE Bruce Reynolds, November 2015 1

2 Outline  Cosmic Definition  Functional Size Measurement  Functional User Requirements  Non-Functional Requirements  COSMIC Approach  In-Class Exercise  COSMIC—a Real World example  Conclusion 2

3 COSMIC Definition COSMIC stands for the Common Software Measurement International Consortium. COSMIC is a voluntary organization that has defined an open, ISO standard functional size measurement (FSM 1 ) method, based on fundamental software engineering principles. The International Standards Organization (ISO) FSM standards are: COSMIC (ISO, ISO/IEC 19761) IFPUG (ISO, ISO/IEC 20926) Mark-II (ISO, ISO/IEC 20968) NESMA (ISO, ISO/IEC 24570) FiSMA (ISO, ISO/IEC 29881) 3

4 What is Functional Size Measurement (FSM 2 )?  An FSM method defines a process to measure a size of the Functional User Requirements (FUR) of software in units of ‘function points’.  Functional sizes are independent of the technology used to develop the software, and they can be used as a basis to: 1. Control requirements (AKA scope creep ) 2. Measure productivity (= size/effort) of completed projects 3. Compare productivity across projects (e.g., waterfall vs. agile) 4. Measure defect density for operational systems 5. Estimate effort for new projects 4

5  A functional requirement specifies what the software must do in terms of the services it provides to its users.  The users of the software being measured, as defined in the FUR, may be:  Humans (typical for business applications)  Hardware devices (e.g., sensors, actuators typical for real-time software)  Other pieces of software (all software domains) What are Functional User Requirements (FUR 3, 6 )? 5

6 6 The quality of the FUR determines the quality of the functional size measurements (and whether the developers can deliver what the user wants!)  COSMIC has approximate sizing approaches for use early in a project before requirements are known in detail.  COSMIC concepts map with UML concepts; size measurement of UML sequence diagrams has been automated.  Measurement of COSMIC sizes of designs in Simulink has been automated.  COSMIC matches perfectly with Agile for sizing User Stories, Iterations, etc., at all levels of aggregation.

7 7 Software size is the biggest driver of project effort  SLOC 16 :  Can’t estimate until software is designed  Technology-dependent, no standards  Accounts for all requirements  Functional size:  International standard methods:  What about Non-Functional Requirements?  UCP, OOP, SP  No reliable standards  (So no publicly-available benchmarks) Sizing method options: Other sizing methods:

8 8 Serious project effort estimation needs a measure of software size and data on past performance Development Productivity = Software Size Effort Estimated development effort for “New-Project” = Est. Soft. Size for “New-Project” Past Productivity Adjustments for “New-Project” X How big is it?

9 9 Once upon a time (i.e. last century), software size measurement was easy Whole business applications Real-time software systems Measure Functional Requirements Measure Non- Functional Requirements (Example NFR) Albrecht/IFPU G Function Point Analysis Value Adjustment Factor (Mainly on-line vs batch processing) (or SLOC) SLOC (Mainly timing constraints) Waterfall

10 10 Nowadays, the measurement challenge is greater Business Systems, Real-time systems, Infrastructure software Measure Functional and Non- Functional Requirements (Example NFR) Whole, distributed, Multi-layer Big Data SOA Waterfall & Agile Embedded Model-based development Internet of things Systems of systems UML (UC Pts) Usability, Portability, 24/7 Availability, Security, Privacy, Maintainability, Dependability, Safety, Reusability, Architecture, etc. BYO Device (Function Pts. Story Pts) OO (Obj Pts) (SNAP) (SLOC) COSMIC

11 11 Why use COSMIC when I can use the IFPUG method?  The IFPUG method  Is recognized as the first FSM method (1979)  Is primarily designed to measure business applications  Is difficult to apply to the following systems:  Real-Time systems  Distributed systems  Mobile applications  Does not fit well with modern development methods (Agile, UML, etc.)  The COSMIC method  Is a second generation method based on fundamental software engineering principles  Is applicable to business, real- time and infrastructure software  Fits perfectly with agile, component-based development methods  Is ‘Open’  All documentation is freely available  Is easy to understand (100 versus IFPUG’s 500 pages of basic rules, examples, etc.)

12 12 The advantage of open source, a real world example, Microsoft Encarta 17 versus Wikipedia 12 The same can be said for COSMIC versus other FSM methods!

13 13 The COSMIC approach to NFR 13 The measurement of NFR is integrated into the COSMIC approach, versus having a separate method [e.g., IFPUG’s General Systems Characteristics (GSC 19 ), and the Software Non-functional Assessment Process (SNAP 20 )]. Software Functional User Requirements (FUR) Software Functional User Requirements (FUR) Quality Requirements Quality Requirements Requirements for a Software System Project Requirements for a Software System Project System and Software Non-Functional Requirements (NFR) System and Software Non-Functional Requirements (NFR) System Environment Requirements System Environment Requirements Project Requirements and Constraints (PRC) Project Requirements and Constraints (PRC) Technical Requirements Technical Requirements

14 14 NFR typically evolve, wholly or partly, as a project progresses into FUR that COSMIC can measure 24 14 Imple- mented software system or software product Project Reqts. & Constraints Require- ments Analysis Definition & Design Build, Test & Implement ArchitectureArchitecture Outline Funct- -ional Requts. Outline NFR Approx Funct- -ional Reqts. FUR “True” NFR may evolve into Size by analogy or expert judgement Approx. COSMIC size measurement Precise COSMIC size measurement

15 15 The three phases of the COSMIC functional size measurement process 4 15 Definition of each piece of software to be measured and of the required measurement Input from measurement sponsor Software Context Model FUR Phase 1 Measurement Strategy 5 Phase 1 Measurement Strategy 5 Phase 2 Mapping 9 Phase Phase 2 Mapping 9 Phase FUR Generic Software Model 12 FUR in the form of the Generic Software Model Phase 3 Measurement Phase Phase 3 Measurement Phase Functional size of the software in units of CFP

16 16  Three possible Software Layer Structures 25 16 A software architecture may exhibit different layers 13 depending on the view of the architecture Application ‘A’ Application ‘A’ User Interface Component User Interface Component Business Rules Component Business Rules Component Data Services Component Data Services Component Application Layer Orchestration Layer Utility Layer Application Layer View of application ‘A’ as a whole Application ‘A’ components in a 3- layer architecture Layers for SOA components of Business Rules

17 17 Phase 2—Mapping 9, Part 1  The four main principles of the COSMIC Generic Software Model 12  Software functionality consists of functional processes  The task of each functional process is to respond to an event that has happened in the world of the software’s functional users.  Functional processes consist of sub-processes  Data movement sub-processes (Entries, Exits, Reads and Writes) move data describing a single object of interest.  Each data movement accounts for the associated data manipulation.  Each data movement is measured as 1 CFP (COSMIC Function Point). 17

18 18 Phase 2—Mapping 9, Part 2 The relationship between events, functional users and functional processes 7 causes Functional User Functional User to generate a data group that is moved into a FP by the FP’s Triggering Entry Boundary Functional Process Triggering Event Triggering Event

19 19 Phase 2—Mapping, Part 3 The four types of data movements 8 Entries Boundary n Hardware devices n Other software n Humans Functional Users Exits Software being measured WritesReads Persistent Storage Persistent Storage

20 20 Phase 3—Measurement Phase 11, Part 1 20 The COSMIC measurement principle 10 The functional size of a piece of software is equal to the number of its data movements. A functional size is measured in units of ‘COSMIC Function Points’, abbreviated as ‘CFP’. 1 CFP is defined by convention as the size of a single data Movement (Entry, Exit, Read or Write). A way of recording the results of an analysis of measuring functional processes using the Generic Software Model matrix 12.

21 21 Calculating the software size with COSMIC 14  The size of a functional process is the count of its Entries, Exits, Reads and Writes.  The size of the FUR of a piece of software is the sum of the sizes of its functional processes.  The size of a change to a piece of software is the sum of the changed (added, modified and deleted) data movements.  The minimum size of a functional process is 2 CFP (1 Entry + 1 Write or 1 Exit).  There is no upper limit to the size of a functional process.

22 22 Once I have calculated the data movements, how can I estimate the software development effort?  The following estimating tools accept COSMIC sizes as input  KnowledgePlan (Software Productivity Research)  PRICE TruePlanning (Price Systems)  ProjectIT (Telmaco, UK)  SEER (Galorath)  SLIM (QSM)  In addition, the above tools will provide the estimator with all aspects of estimating the cost of the software project, not just the software development.  You can develop a COSMIC benchmarking database consisting of successfully completed projects which has:  Output in CFP (A)  Number of work hours (B) 22 A ÷ B = Benchmark Productivity A practical example follows…

23 23 A practical example of calculating software size and effort with COSMIC 23 I N -C LASS E XERCISE

24 24 Calculating the software size with COSMIC  First, take the Functional User Requirements, then determine the application boundary. 24 C-Registration System Student schedule C-Registration System Student schedule Mail system Billing system Course Catalog System Course Catalog System Wylie College Users (Students, Professors, Course Registrar) Wylie College Users (Students, Professors, Course Registrar) Application Boundary I N -C LASS E XERCISE E – Entry X – Exit R – Read W – Write Legend: E E X X X X

25 25 Calculating the software size with COSMIC  Second, build a sub-functional process matrix (below), then identify the data movements. 25 Process descriptions Triggering event Sub-process Description Data Group Data movement Type CFP Ʃ CFP Add a studentRegistrar selects “add student” Registrar enters student data Student dataE1 The system validates the data and checks if a student of the same name already exists Student dataR1 The system creates a new student Student dataW1 Display error messageMessagesX1 4 I N -C LASS E XERCISE E – Entry X – Exit R – Read W – Write Legend: In our in-class exercise example, we have 1 Entry, 1 Read, 1 Write, and 1 Exit, for a total of 4 data movements, or COSMIC Function Points.

26 26 Calculating the software size with COSMIC  Third, document all of the data movements by creating a consolidation table, such as the Generic Software Model Matrix below. 26 I N -C LASS E XERCISE Translating the COSMIC function points into effort in hours and dollars follows… COSMIC function points

27 27 Calculating the effort in hours and dollars 27 I N -C LASS E XERCISE Fourth, use an estimating tool, such as SEER (Galorath), or Price True Planning, then input the COSMIC function points into this tool in order to calculate the hours and dollars. PRICE TruePlanning estimating tool, Version 14.2: Size Units: COSMIC Language: Java Development Process: Agile All other variables: set to the default values The PRICE True Planning model then calculates the effort in hours and dollars. Input 4 COSMIC Function Points

28 28 COSMIC—a Real World example

29 29 Problem or challenge: Renault was unable to predict its software costs early for the Electronic Control Unit (ECU) software in cars  Renault selected the COSMIC FSM standard for measuring the size of real-time embedded software and for estimating project costs.  Apply the COSMIC method to develop an automated measurement tool using the Simulink 21 model and the MATLAB 22 programming language. 29 Solution:

30 30 Outcome:  ECU software costs are now automatically calculated with dramatically reduced measurement times.  By using the AUTOSAR* 23 architecture, ECU software reuse is now possible for different hardware targets. This enables software enhancements to be used instead of new software development.  Based on the results from the automated tool, productivity models are prepared and then leveraged to negotiate with suppliers to obtain the best value in supplier costs.  COSMIC is also used to predict the memory size needed for embedded software. Once the memory size is predicted, this enables Renault to anticipate the needed margin associated with the start of production milestone. 30 *(AUTomotive Open System ARchitecture)

31 31 In conclusion, Renault 18 uses CFP sizing to control the development and enhancement of Electronic Control Units (ECU)  Tracks progress of ECU specification teams…  who create designs in Matlab Simulink…  which are automatically measured in CFP 31 Motivation for automation: speed and accuracy of measurement

32 32 … achieving remarkable cost estimation accuracy from the designs 32 Cost vs. size (CFP) Memory size vs. software size (CFP)

33 33  COSMIC is easier to understand and use versus other FSM methods.  COSMIC is an open source method.  COSMIC can be used to estimate:  Business applications  Real-Time applications  Distributed systems  COTS tools or systems  Mobile applications  Many tools are available that accept COSMIC sizes as input.  Cosmic is  Based on fundamental software engineering principles, which makes the method future-proof.  Used around the world, and the Measurement Manual has been translated into 12 languages besides English.  Most importantly:  All of the COSMIC documentation is available for free on the internet at: Conclusion 33 www.cosmic-sizing.org

34 34 Questions?

35 References 35

36 36 References 36 [1]http://en.wikipedia.org/wiki/Function_point [2]http://en.wikipedia.org/wiki/Software_sizing [3]S. Robertson, J. Robertson, Mastering the Requirements Process, Getting Requirements Right, Addison-Wesley, Boston, MA, 2013, p. 223. [4]The COSMIC Functional Size Measurement Method Version 4.0, Introduction to the COSMIC method of measuring software, Version 1.0, May 2014, p. 15, Figure 4.1. [5]The COSMIC Functional Size Measurement Method Version 4.0.1, Measurement Manual, April 2015, p. 20, Figure 2.0. [6]The COSMIC Functional Size Measurement Method Version 4.0, Introduction to the COSMIC method of measuring software, Version 1.0, May 2014, p. 16. [7]The COSMIC Functional Size Measurement Method Version 4.0, Introduction to the COSMIC method of measuring software, Version 1.0, May 2014, p. 22, Figure 6.1. [8]The COSMIC Functional Size Measurement Method Version 4.0, Introduction to the COSMIC method of measuring software, Version 1.0, May 2014, p. 16.

37 37 References 37 [9]The COSMIC Functional Size Measurement Method Version 4.0.1, Measurement Manual, April 2015, p. 37, Figure 3.0. [10]The COSMIC Functional Size Measurement Method Version 4.0, Introduction to the COSMIC method of measuring software, Version 1.0, May 2014, p. 31. [11]The COSMIC Functional Size Measurement Method Version 4.0.1, Measurement Manual, April 2015, p. 64, Figure 4.0. [12]The COSMIC Functional Size Measurement Method Version 4.0.1, Measurement Manual, April 2015, Appendix A, p. 74. [13]The COSMIC Functional Size Measurement Method Version 4.0.1, Measurement Manual, April 2015, p. 25, Figure 2.2. [14]Software Functional Size with ISO 19761:2003 COSMIC-FFP Measurement Method, C-Registration System, Updated: February 23, 2008. [15]ICEAA Cost Estimating Body of Knowledge (CEBoK), Unit IV – Module 12, page 17. [16]ICEAA Cost Estimating Body of Knowledge (CEBoK), Unit IV – Module 12, page 19.

38 38 References 38 [17]N. Cohen, Microsoft Encarta Dies After Long Battle with Wikipedia, The New York Times, March 30, 2009. [18]Alexandre Oriou et al, Manage the automotive embedded software development cost & productivity with the automation of a Functional Size Measurement Method (COSMIC), IWSM 2014, Rotterdam, www.ieeexplore.org. [19]International Function Point Users Group (IFPUG), Function Point Counting Practices Manual, Part 5, Appendix C. [20]International Function Point Users Group (IFPUG), Software Non-functional Assessment Process (SNAP), Assessment Practices Manual, Release 2.1. [21] https://en.wikipedia.org/wiki/Simulink [22] https://en.wikipedia.org/wiki/MATLAB [23] https://en.wikipedia.org/wiki/AUTOSARhttps://en.wikipedia.org/wiki/AUTOSAR [24] The COSMIC Functional Size Measurement Method Version 4.0.1, Guideline on Non- Functional & Project Requirements, VERSION 1.0, November 2015. [25] The COSMIC Functional Size Measurement Method Version 4.0.1 Measurement Manual, page 26, Figure 2.4.

39 www.cosmic-sizing.org


Download ppt "INTRODUCTION TO THE COSMIC METHOD OF MEASURING SOFTWARE Bruce Reynolds, November 2015 1."

Similar presentations


Ads by Google