Bruce Reynolds November 2015 1 Outline Cosmic Definition Functional Size Measurement Functional User Requirements NonFunctional Requirements COSMIC Approach InClass Exercise COSMICa Real World example ID: 612565
Download Presentation The PPT/PDF document "Introduction to the COSMIC method of mea..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Introduction to the COSMIC method of measuring software
Bruce Reynolds, November 2015
1Slide2
Outline
Cosmic DefinitionFunctional Size MeasurementFunctional User RequirementsNon-Functional Requirements
COSMIC Approach
In-Class Exercise
COSMIC—a Real World exampleConclusion
2Slide3
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)
3Slide4
What is Functional Size
Measurement (FSM2)?
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:Control requirements (AKA scope creep)Measure productivity (= size/effort) of completed projectsCompare productivity across projects (e.g., waterfall vs. agile)Measure defect density for operational systemsEstimate effort for new projects
4Slide5
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 (FUR3, 6)?5Slide6
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.Slide7
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 requirementsFunctional size:International standard methods:What about Non-Functional Requirements?UCP, OOP, SPNo reliable standards(So no publicly-available benchmarks)Sizing method options: Other sizing methods: Slide8
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?Slide9
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
R
equirements
(Example NFR)
Albrecht/IFPUG Function Point Analysis
Value Adjustment Factor
(Mainly on-line vs batch processing)
(or
SLOC)
SLOC
(Mainly timing constraints)
WaterfallSlide10
10
Nowadays, the measurement challenge is greater
B
usiness Systems,
Real-time
systems, Infrastructure software
Measure Functional
andNon-FunctionalRequirements(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)
COSMICSlide11
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.)Slide12
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!Slide13
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)
Quality
Requirements
Requirements for a
Software System Project
System and
Software
Non-Functional
Requirements
(NFR)
System Environment
Requirements
Project
Requirements
and
Constraints (PRC)
Technical
RequirementsSlide14
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-
m
ents
Analysis
Definition
& Design
Build, Test
&
Implement
A
r
c
h
i
t
e
c
t
u
r
e
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 measurementSlide15
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 2
Mapping
9
Phase
FUR
Generic Software Model
12
FUR in the form
of the Generic
Software Model
Phase 3
Measurement
Phase
Functional size
of the software
in units of CFPSlide16
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’
User
Interface
Component
Business
Rules
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 RulesSlide17
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).
17Slide18
18
Phase 2—Mapping
9
,
Part 2
The relationship between events, functional users and functional processes
7
causes
Functional
User
to generate a
data group
that is moved
into a FP by
the FP’s
Triggering Entry
Boundary
Functional
Process
Triggering
EventSlide19
19
Phase 2—Mapping, Part 3
The
four types of
data movements
8
Entries
Boundary
Hardware devices
Other software
Humans
Functional Users
Exits
Software
being
measured
Writes
Reads
Persistent
StorageSlide20
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
.Slide21
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.Slide22
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…Slide23
23
A practical example of calculating software size and effort with COSMIC
23
In-Class ExerciseSlide24
24
Calculating the software size
with COSMIC
First, take the Functional User Requirements, then determine the application boundary.
24
C-Registration
System
Student schedule
Mail system
Billing system
Course Catalog
System
Wylie
College Users
(Students,
Professors,
Course
Registrar)
Application Boundary
In-Class Exercise
E – Entry
X – Exit
R – Read
W – Write
Legend:
E
E
X
X
X
XSlide25
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 student
Registrar selects “add student”
Registrar enters student data
Student data
E
1
The system
validates the data and checks if a student of the same name already exists
Student data
R
1
The system creates a new student
Student data
W
1
Display error
message
Messages
X
1
4
In-Class Exercise
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.Slide26
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
In-Class Exercise
Translating the COSMIC function points into effort in hours and dollars follows…
COSMIC
function
pointsSlide27
27
Calculating the effort
in hours and dollars
27
In-Class Exercise
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
PointsSlide28
28
COSMIC—a Real World exampleSlide29
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:Slide30
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)Slide31
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 measurementSlide32
32
… achieving remarkable cost estimation accuracy from the designs
32
Cost vs. size (CFP)
Memory size vs. software size (CFP)Slide33
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.orgSlide34
34
Questions?Slide35
References
35Slide36
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
.Slide37
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
.Slide38
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/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.Slide39
www.cosmic-sizing.org