/
Introduction to the COSMIC method of measuring software Introduction to the COSMIC method of measuring software

Introduction to the COSMIC method of measuring software - PowerPoint Presentation

yoshiko-marsland
yoshiko-marsland . @yoshiko-marsland
Follow
378 views
Uploaded On 2017-12-05

Introduction to the COSMIC method of measuring software - PPT Presentation

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

software cosmic functional size cosmic software size functional measurement method version data requirements function iso process system fur project

Share:

Link:

Embed:

Download Presentation from below link

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.


Presentation Transcript

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