Download presentation
Presentation is loading. Please wait.
Published byDwain Todd Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.