Automatic measurements of use cases with cosmic thomas fehlmann
-
Upload
iwsm-mensura -
Category
Software
-
view
116 -
download
0
Transcript of Automatic measurements of use cases with cosmic thomas fehlmann
1
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Automatic Measurements of Use Cases with COSMIC
Thomas M. Fehlmann, Zürich Eberhard Kranich, Duisburg
Euro Project Office AG E: [email protected] H: www.e-p-o.com
2
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Dr. Thomas Fehlmann
● 1981: Dr. Math. ETHZ ● 1991: Six Sigma for Software Black Belt ● 1999: Euro Project Office AG, Zürich ● 2001: Akao Price 2001 for original contributions to QFD ● 2003: SwissICT Expert for Software Metrics, ICTscope.ch ● 2004: Member of the Board QFD Institute Deutschland – QFD Architect ● 2007: CMMI for Software – Level 4 & 5 ● 2011: Net Promoter® Certified Associate ● 2012: Member of the DASMA Board ● 2013: Vice-President ISBSG
● 1981: Dr. Math. ETHZ ● 1991: Six Sigma for Software Black Belt ● 1999: Euro Project Office AG, Zürich ● 2001: Akao Price 2001 for original contributions to QFD ● 2003: SwissICT Expert for Software Metrics, ICTscope.ch ● 2004: Member of the Board QFD Institute Deutschland – QFD Architect ● 2007: CMMI for Software – Level 4 & 5 ● 2011: Net Promoter® Certified Associate ● 2012: Member of the DASMA Board ● 2013: Vice-President ISBSG
Dr. Thomas Fehlmann
3
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
● Mathematics and Computer Science ● Emphasis on Mathematical Statistics ● Mathematical Optimization ● Theory of Polynomial Complexity of Algorithms ● Working at T-Systems International GmbH in Bonn, Germany ● Six Sigma Black Belt for Software Development ● Software Quality Assurance Manager ● Member of the DASMA Board
Eberhard Kranich Eberhard Kranich
● Mathematics and Computer Science ● Emphasis on Mathematical Statistics ● Mathematical Optimization ● Theory of Polynomial Complexity of Algorithms ● Worked at T-Systems International GmbH in Bonn, Germany ● Six Sigma Black Belt for Software Development ● Software Quality Assurance Manager ● Member of the DASMA Board
4
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Aim of this Talk
● This talk is about a free Excel-based tool that allows drawing, or importing, UML structure diagrams and counts COSMIC function points automatically
● Enabling listeners to use the tool ● It’s colorful and fun!
User Functional Process Data
1.// Enter Search Criteria
Trigger
2.// Write SQL Statement
3.// Get Result
4.// Display Result
5
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Use Cases
● Automatically detect ➨ Actors ➨ Business Classes
(persistent data)
● Guess ➨ Data Groups
• From business classes
➨ Data Movements • From Activities
Total: 4Step Activity Actor Type Business Class eCFP
1) Enter Search Criteria User E Data Collection 12) Write SQL Statement System W Data Collection 13) Get Result System R Data Collection 14) Display Result User X Data Collection 1
UC001:
Software Boundary
Actor
Use Case
𝑬𝑛𝑡𝑟𝑦
Business Class
𝑾𝑟𝑖𝑡𝑒 𝑹𝑒𝑎𝑑 𝑒𝑿𝑖𝑡
User Functional Process Data
1.// Enter Search Criteria
Trigger
2.// Write SQL Statement
3.// Get Result
4.// Display Result
6
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Introduction
● CosmicCount.xltm is an Excel tool ● It runs on Office 2013 and uses VBA Macros ● Its source is open and accessible to all users; no password protection; no
warranty ● Sheets are protected by a password
➨ Password is stored in the Utilities module ➨ If you unprotect sheets, and change structure or defined names with Names
Manager, functionality will be affected ➨ Excel sheets serve as a database; they are known to the database interface only and
can be replaced by any other DB ➨ Structure diagrams are rendered on a blank Excel worksheet
● License terms are GNU Free Documentation License, Version 1.3
7
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
How a Finished Count looks like
8
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Definitions
● Layer Identification ➨ Excel worksheet, for document control only ➨ You can add and delete rows in the three text areas
Layer Identification
Connected to:
Purpose of Measurement:Testing the COSMIC Counting Tool
Author Team:Thomas Fehlmann, Euro Project Office AG, Zürich [email protected]
Date:Donnerstag, 14. Februar 2013
Counting the COSMIC Counting Tool
Add Row Del Row
9
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Definitions
● Application Boundary ➨ Excel worksheet, click to edit, for graphical overview only ➨ Functional users using and consuming data
Application Boundary
Designer
COSMICSequence Diagram
Counting Tool
Counting Report
Graphical View
Counter
The Application Box includes Functional Processes and
Persistent Storages belonging to them
Other Applications here to the Right
Devices to the Left
10
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Definitions
● Functional User Requirements ➨ Excel worksheet, for documenting FURs in Grant Rule format ➨ You can add and delete rows – select cell for row position ➨ It is possible to link FUR to Entry Data Movements ➨ No programming logic is implemented for FURs
Name Label As a … [Functional User] I want to … [get something done] Such that …[quality characteristic] So that … [value or benefit]. To1) Q001 Build Structure DiagramsProgrammer create structure diagrams, consisting of objects, data
movements, and triggerssuch that data movements can be graphically visualized
I can explain my design to peers and to programmers E001 Set Parameters F001
2) Q002 Database Design Database Designer record data groups I can link data movements to database design all requirements are modeled E005 Edit data groups F002
3) Q003 COSMIC Count Scope Manager count designs and structure diagrams data movements that qualify add to a COSMIC count counting does not require any additional effort than design
E002 Create object of interest F002
4) Q004 Record FURs SW Development Manager record Functional Requirements FURs are documented with the Counting Tool eveybody can read them and validate the count and the structure diagran against them
E006 Add Row F001
5) Q005 Count Collector Other counting application access the count I can consolidate COSMIC counts for various applciations
A get an overall count for a sequence of applications E010 Get CFP count F003
6) Q006 Customizable GraphicsQuality Manager be able to adapt graphical representations of sequence diagrams
I can adapt visual appearance to corporate standards or to those of the customer
They understand us E007 Request screen refresh F003
7) Q007 Table Input Tool User be able to enter data directly in an Excel table I can mass input data that had already been prepared by some other application
keeping the database consistent E006 Add Row F001
8) Q008 Graphical Refresh Tool User see always an updated screen with my latest additions and changes I'm sure my changes have been acknowledged E007 Request screen refresh F003
Entry Movement usedUser Stories
Add Row Del Row
11
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Definitions
● Objects of Interest ➨ Functional Processes and Persistent Data within the application boundary ➨ User Devices and other Applications using functionality from outside the Application
Boundary ➨ Correspond to objects in Structure Diagrams ➨ More than one functional process is possible within structure diagrams – at least one
Functional Process is required ➨ The common abbreviation is ‘Obj’ in VBA variable names ➨ The unique identity keys are
• Position number in database tables • Name, identifying graphical objects
Name Label Description Type Link to Application1) D001 Graphical User Interface Create and modify structure diagrams using forms D Device User 2) D002 Excel Table Edits Add and delete rows in database tables D Device User 3) F001 Excel Table Database Store data in Excel tables F Functional Process 4) P001 Count Control Data Record who performed the count and for what purpose P Persistent Data 5) P002 Functional User Requirements Table of FURs linked to Functional Users and their entry data movements P Persistent Data 6) F002 Build Structure Diagram The functional process that transforms user input into a database for a structure diagram F Functional Process 7) P003 Objects of Interest Table contains Functional Processes, Persistent Data, and all external devices such as Device Users and Application Users P Persistent Data 8) P004 Data Movements Everything pertaining to data movements, including origin and destination, link to triggers and groups P Persistent Data 9) P005 Triggers Trigger table P Persistent Data
10) P006 Data Groups Data Group table P Persistent Data 11) F003 Graphical Display Render all objects of interest, data movements and triggers as a sequence diagram F Functional Process 12) D003 Counting Sheet Worksheet used to display graphics only D Device User 13) F004 Count Functional Size Applies the COSMIC rules to count the structure diagram F Functional Process 14) A001 Functional Size Count Calculation on sheet 'Data Movements' A Application User 15) P007 Settings Sheet Contains color settings for shapes, and parameter settings for COSMIC rule checks P Persistent Data
Objects of Interest
Add Row Del Row Validate
12
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Definitions
● Data Movements and Triggers ➨ Data Movements have an Origin and a Destination, rendered
graphically as diamonds ➨ Either Origin or Destination must be a Functional Process ➨ Entry Movements can have a Trigger ➨ At least one entry movement per functional process must
have a trigger, to be eligible as one COSMIC function point ➨ If data movements count for COSMIC size,
their origin is colored in the color of thearrow connector
➨ The common abbreviation is ‘Mov’ in VBAvariable names for Data Movements, and‘Trg’ for Triggers
➨ The unique identity keys (‘Pos’) are • Position number in the database tables • Name, identifying graphical objects (groups)
Name Label Data Movement Sub-Process Description Dire
ction
Uniqu
e?
Chec
k 1
Chec
k 2
Chec
k 3
Chec
k 4
Entry
(E)
eXit (
X)
Read
(R)
Write
(W)
1) E001 Set Parameters Set colors and flags for strict COSMIC rule enforcement T04 Set Flags F001 Excel Table Database < D002 Excel Table Edits G005 Graphic Colors TR UE TR UE TR UE TR UE TR UE 12) W001 Record Parameters Record color and flag parameters F001 Excel Table Database > P007 Settings Sheet G005 Graphic Colors TR UE TR UE TR UE TR UE TR UE 13) R001 Color Settings Apply settings from Setting Sheet F003 Graphical Display < P007 Settings Sheet G005 Graphic Colors TR UE TR UE TR UE TR UE TR UE 14) R002 Rule Check Settings Define whether COSMIC rules are strictly being enforced for existence of triggers, and definition of groupsF004 Count Functional Size < P007 Settings Sheet G010 Rule Enforcement Flags TR UE TR UE TR UE TR UE TR UE 15) E002 Create object of interest Enter everything that's needed to create either a functional process, persistent data, or a device to the structure diagram.T01 Use GUI F002 Build Structure Diagram < D001 Graphical User Interface G001 Objects of Interest Records TR UE TR UE TR UE TR UE TR UE 16) W002 Record objects of interest Create new record in database F002 Build Structure Diagram > P003 Objects of Interest G001 Objects of Interest Records TR UE TR UE TR UE TR UE TR UE 17) R003 Render objects of interest Persistent data, application and device users F003 Graphical Display < P003 Objects of Interest G001 Objects of Interest Records TR UE TR UE TR UE TR UE TR UE 18) R004 Check objects of interest Collect all data needed to perform the count F004 Count Functional Size < P003 Objects of Interest G001 Objects of Interest Records TR UE TR UE TR UE TR UE TR UE 19) E003 Create data movement linked to functional process and devices F002 Build Structure Diagram < D001 Graphical User Interface G002 Data Movement Record TR UE TR UE TR UE TR UE TR UE 1
10) W003 Record data movements and link with triggers and data groups F002 Build Structure Diagram > P004 Data Movements G002 Data Movement Record TR UE TR UE TR UE TR UE TR UE 111) R005 Render data movements and check for COSMIC rules, available triggers and for groups F003 Graphical Display < P004 Data Movements G002 Data Movement Record TR UE TR UE TR UE TR UE TR UE 112) R006 Count data movements applying COSMIC rules F004 Count Functional Size < P004 Data Movements G002 Data Movement Record TR UE TR UE TR UE TR UE TR UE 113) E004 Create triggers Typically from an e data entry movement F002 Build Structure Diagram < D001 Graphical User Interface G003 Trigger Record TR UE TR UE TR UE TR UE TR UE 114) W004 Record triggers hooked to respective data movement F002 Build Structure Diagram > P005 Triggers G003 Trigger Record TR UE TR UE TR UE TR UE TR UE 115) R007 Render triggers Show them in the leftmost column F003 Graphical Display < P005 Triggers G003 Trigger Record TR UE TR UE TR UE TR UE TR UE 116) R008 Check triggers See whether triggers exist per Functional Process F004 Count Functional Size < P005 Triggers G003 Trigger Record TR UE TR UE TR UE TR UE TR UE 117) E005 Edit data groups Request update of functional size count when new grouls are added to the databaseF002 Build Structure Diagram < D001 Graphical User Interface G004 Data Group Record TR UE TR UE TR UE TR UE TR UE 118) W005 Record data groups and link to respective data movements F002 Build Structure Diagram > P006 Data Groups G004 Data Group Record TR UE TR UE TR UE TR UE TR UE 119) R009 Check data groups Check whether data groups are present F004 Count Functional Size < P006 Data Groups G004 Data Group Record TR UE TR UE TR UE TR UE TR UE 120) E006 Add Row Add another row to a database table T03 Excel edits F001 Excel Table Database < D002 Excel Table Edits G008 Excel Table Row TR UE TR UE TR UE TR UE TR UE 121) W006 Enter Layer Data Enter layer information and purpose of measurement F001 Excel Table Database > P001 Count Control Data G012 Document Control Data TR UE TR UE TR UE TR UE TR UE 122) R010 Delete Layer Data Remove data row from table F001 Excel Table Database < P001 Count Control Data G012 Document Control Data TR UE TR UE TR UE TR UE TR UE 123) W007 Add FUR Add or edit a FUR F001 Excel Table Database > P002 Functional User Requirements G009 Functional User Requirement TR UE TR UE TR UE TR UE TR UE 124) R011 Delete FUR Delete a FUR F001 Excel Table Database < P002 Functional User Requirements G009 Functional User Requirement TR UE TR UE TR UE TR UE TR UE 125) W008 Add Object Insert a row for an additional object of interest F001 Excel Table Database > P003 Objects of Interest G001 Objects of Interest Records TR UE TR UE TR UE TR UE TR UE 126) R012 Delete Object Delete an object of interest and all related data movements F001 Excel Table Database < P003 Objects of Interest G001 Objects of Interest Records TR UE TR UE TR UE TR UE TR UE 127) W009 Add Data Movement Insert a row for an additional data movement F001 Excel Table Database > P004 Data Movements G002 Data Movement Record TR UE TR UE TR UE TR UE TR UE 128) R013 Delete Data Movement Delete a data movement F001 Excel Table Database < P004 Data Movements G002 Data Movement Record TR UE TR UE TR UE TR UE TR UE 129) W010 Add data group Insert row for an additional data group F001 Excel Table Database > P006 Data Groups G004 Data Group Record TR UE TR UE TR UE TR UE TR UE 130) R014 Remove unused data groupsCheck which data groups aren't in use anymore, and delete them F001 Excel Table Database < P006 Data Groups G004 Data Group Record TR UE TR UE TR UE TR UE TR UE 131) X001 Delete row Delete a row from a database table F001 Excel Table Database > D002 Excel Table Edits G008 Excel Table Row TR UE TR UE TR UE TR UE TR UE 132) E007 Request screen refresh Depending which entry forms were used, request refresh of appropriate graphical objectsT02 Refresh F003 Graphical Display < D002 Excel Table Edits G011 Database objects changed TR UE TR UE TR UE TR UE TR UE 133) R015 Assess Objects' Consistency Checks consistency of table edits and alerts user and Graphical Display if something's missingF003 Graphical Display < P003 Objects of Interest G013 Consistency Data TR UE TR UE TR UE TR UE TR UE 134) R016 Assess Data Moves' ConsistencyChecks consistency of table edits and alerts user and Graphical Display if something's missingF003 Graphical Display < P004 Data Movements G013 Consistency Data TR UE TR UE TR UE TR UE TR UE 135) R017 Assess Triggers' ConsistencyChecks consistency of table edits and alerts user and Graphical Display if something's missingF003 Graphical Display < P005 Triggers G013 Consistency Data TR UE TR UE TR UE TR UE TR UE 136) E008 Request screen refresh Depending which rows were added or deleted, request refresh of appropriate graphical objectsF003 Graphical Display < D001 Graphical User Interface G011 Database objects changed TR UE TR UE TR UE TR UE TR UE 137) X002 Refresh Objects of Interest Create or refresh functional processes, devices, applciations, and persistent data storesF003 Graphical Display > D003 Counting Sheet G001 Objects of Interest Records TR UE TR UE TR UE TR UE TR UE 138) X003 Refresh Data Movements Create or refresh data movements F003 Graphical Display > D003 Counting Sheet G002 Data Movement Record TR UE TR UE TR UE TR UE TR UE 139) X004 Position Triggers Add triggers where defined F003 Graphical Display > D003 Counting Sheet G003 Trigger Record TR UE TR UE TR UE TR UE TR UE 140) E009 Request count refresh Request update of functional size count when re-calculation becomes necessary in the database.T05 Display CFP F004 Count Functional Size < D003 Counting Sheet G006 Count Display Object TR UE TR UE TR UE TR UE TR UE 141) X005 Count CFP Apply COSMIC rules to count the functional size F004 Count Functional Size > A001 Functional Size Count G007 COSMIC Count TR UE TR UE TR UE TR UE TR UE 142) E010 Get CFP count Show count for Entries, eXits, Reads and Writes, plus the total F003 Graphical Display < A001 Functional Size Count G007 COSMIC Count TR UE TR UE TR UE TR UE TR UE 143) X006 Refresh CFP Count On top of sheet F003 Graphical Display > D003 Counting Sheet G007 COSMIC Count TR UE TR UE TR UE TR UE TR UE 1
CFP per Data Movement Type 10 6 17 10Total CFP 43
Data Movements Moving Data between Rule Check Move Type
43
Functional Process Trigger Object of Interest Data Group
Add Row Del Row Validate
Name Label Triggering Event Triggering Top Position1) T01 Use GUI User starts COSMIC Counting Tool starting with Counting Sheet E002 Create object of interest F002 Build Structure Diagram 52) T02 Refresh When selecting the Counting Sheet, graphics are updated and shown E007 Request screen refresh F003 Graphical Display 323) T03 Excel edits Decide to edit data in Excel rather then the GUI E006 Add Row F001 Excel Table Database 204) T04 Set Flags Want to set parameters for colors and COSMIC rule enforcement E001 Set Parameters F001 Excel Table Database 15) T05 Display CFP Triggered when entering Counting Sheet form some other sheet, or after processing a click on the user interface E009 Request count refresh F004 Count Functional Size 40
Triggering EntryData Movement
Add Row Del Row Validate
13
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Definitions
● Data Groups ➨ Data Groups are attributes to data movements ➨ One data group can serve for several data movements ➨ Every data movement must refer to some data group, to be counted as a COSMIC
function point ➨ The common abbreviation is ‘Grp’ in VBA variable names ➨ The unique identity keys are
• Position number in the database tables • Name, otherwise not used
Name Label Attributes Data Owner Data Movements1) G001 Objects of Interest Records All information, including link to applications, as needed for creating or modifying an object of interest Database Designer E002, W002, R003, R004, W008, R012, X002
2) G002 Data Movement Record Everything that's needed to identify a data movement, including reference to origin and destination, data group, and triggers, for entry movements only. Programmer E003, W003, R005, R006, W009, R013, X003
3) G003 Trigger Record Contains all information needed to render a trigger and to determine which functional process it triggers Programmer E004, W004, R007, R008, X004
4) G004 Data Group Record Contains all Information needed for a Data Group and for determining which data movement is using it. Programmer E005, W005, R009, W010, R014
5) G005 Graphic Colors Colors used for graphical rendering Designer E001, W001, R001
6) G006 Count Display Object Shape location for displaying the final count Programmer E009
7) G007 COSMIC Count Excel Tags for Entries, eXits, Reads and Writes Counter X005, E010, X006
8) G008 Excel Table Row Describes a row in an Excel table Counter E006, X001
9) G009 Functional User Requirement Requirements in Grant Rule User Story format Sponsor W007, R011
10) G010 Rule Enforcement Flags Define whether COSMIC rules are strictly being enforced for existence of triggers, and definition of groups Counter R002
11) G011 Database objects changed Flag indicating that some data in the database has changed, affecting the graphical display and thus needing a refresh Programmer E007, E008
12) G012 Document Control Data Layer information, purpose of measurement, and authors Sponsor W006, R010
13) G013 Consistency Data Identifies items in the database tables that aren't consistent Programmer R015, R016, R017
Data GroupsDelete all Unused Data Groups
Add Row Del Row Validate
14
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Parameter Settings Sheet
● Select colors ➨ You can select colors for all graphical objects by changing Counting Check Options
on the sheet ‘How to Use’
● You can waive against strict enforcement of ➨ Triggers, when counting Functional Processes ➨ Definition of data groups in Data Movements
Counting Check Options Export and Import
TRUE Enforce existence of triggers for functional processes
TRUE Enforce definition of data group in data movements
Export Count
Import Count
Functional Process
Persistent Data
Application UserDevice User
Trigger Entry
Entry
eXit
eXitWrite Read
About Using this Tool
You can adapt colors, line characteristics, but not preset shape types ("the smiley remains a smiley...")on this sheet. All newly created objects will be affected. You can specify labels, add a description (shownon the data sheets only), add and delete user devices, application devices, functional processes, and Persistent Data storages on the top row. Then you create Data Movements , either by clicking position lines, first origin, then destination, or using the "New.." button in the respective dialog form.
Selected objects are highlighted, also selected origins and (applicable) destination position lines.
Counting checks four COSMIC rules pertaining to Data Movements; below there is an option to enforcethe existence of triggers for functional processes, and data group definitions for data movements.If youset these options to True, you must specify all triggers, and all data groups, that pertain to functionalprocesses and data movements in order to include them into your COSMIC count.. If you do not wantsuch rigor in your count, you can set the options below to False. Data Moverments that add to the countare color-marked; if they loose their colored origin diamond, they do not qualify for a data movementaccording COSMIC rules. The colors are indicative for the data movement type and set on this sheet
When selecting a group for a data movement, you cannot select a group that already had been used thesame way before, between same origin and destination. Such groups will not be offered for selection.
15
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Start Counting
● Functional Process ➨ Click on object
• Enter Object Label and Description • Pressing ‘New..’ adds more objects • Link to Application is used for application devices only • The number to the right indicates column position
16
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Arrange Objects
● Persistent Data & Devices ➨ Add as many as needed ➨ Arrange relative position
• Using the Scroll Position • Click left to move the object left
17
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Link to Application
● Application User Devices ➨ Refers to other COSMIC counts ➨ You can set a link to it ➨ The link can be used for navigation between, but not for consolidating different
application counts • If an object is not used for now, objects can be deleted
18
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Add Data Movement
● Click position line of Origin ➨ Eligible Destination will highlight ➨ Click position line of Destination
• Enter Movement Label • Enter Movement Description
19
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Check Rules for Data Movement
● Check COSMIC Rules ➨ Click on Check…
• Unique Object of Interest? • Is there a FUR? • Unique Data Movement? • Independent from Values?
➨ Button becomes red if check fails
● You can change Global Settings
20
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Add Data Group
● Select a Data Group ➨ Create a new one… ➨ … or select from existing groups ➨ Data Group movements must be unique to add to the count!
● You can edit a Data Group ➨ Enter Data Group Label, Description, and Owner
21
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Add Trigger
● Click on Add Trigger ➨ Trigger will be added to
data movement, making it countable
● Click on Trigger ➨ Enter label and description ➨ Adjust position by scrolling or changing entry movements
22
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
See what Adds to the Count
● Countable Data Movements ➨ If countable, origin of data movement
becomes colored ➨ Indicates if rule check fails or no unique
data group is assigned
● You can change Global Settings
23
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Add more Data Movements
● Add more Data Movements ➨ By clicking position lines of origin, then of destination, or ➨ Clicking New… button, adding a data movement below by
logically selecting origins and destinations
● Scroll data movement positions using the Scroll Position buttons
24
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Counting the COSMIC Counting Tool 10 Entry (E) + 6 eXit (X) + 17 Read (R) + 10 Write (W) = 43 CFP
Graphical UserInterface
Excel TableEdits
Excel TableDatabase
Count ControlData
FunctionalUser Requirements
Build StructureDiagram
Objects ofInterest Data Movements Triggers Data Groups Graphical Display Counting Sheet Count Functional
SizeFunctionalSize Count Settings Sheet
1.// Set Parameters
Set Flags
2.// Record Parameters
3.// Color Settings
4.// Rule Check Settings
5.// Create object of interest
Use GUI
6.// Record objects of interest
7.// Render objects of interest
8.// Check objects of interest
9.// Create data movement
10.// Record data movements
11.// Render data movements
12.// Count data movements
13.// Create triggers
14.// Record triggers
15.// Render triggers
16.// Check triggers
17.// Edit data groups
18.// Record data groups
19.// Check data groups
20.// Add Row
Excel edits
21.// Enter Layer Data
22.// Delete Layer Data
23.// Add FUR
24.// Delete FUR
25.// Add Object
26.// Delete Object
27.// Add Data Movement
28.// Delete Data Movement
29.// Add data group
30.// Remove unused data groups
31.// Delete row
32.// Request screen refresh
Refresh
33.// Assess Objects' Consistency
34.// Assess Data Moves' Consistency
35.// Assess Triggers' Consistency
36.// Request screen refresh
37.// Refresh Objects of Interest
38.// Refresh Data Movements
39.// Position Triggers
40.// Request count refresh
Display CFP
41.// Count CFP
42.// Get CFP count
43.// Refresh CFP Count
25
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Objects in the COSMIC Counting Tool
● To add or delete table rows ➨ Select row by clicking cell in the white are of the table ➨ Enter data in white cells ➨ You must indicate type of object, and direction of data movement ➨ Click ‘Validate’ to generate unique names for objects
● Validation is automatic if you leave the sheet
Name Label Description Type Link to Application1) D001 Graphical User Interface Create and modify structure diagrams using forms D Device User 2) D002 Excel Table Edits Add and delete rows in database tables D Device User 3) F001 Excel Table Database Store data in Excel tables F Functional Process 4) P001 Count Control Data Record who performed the count and for what purpose P Persistent Data 5) P002 Functional User Requirements Table of FURs linked to Functional Users and their entry data movements P Persistent Data 6) F002 Build Structure Diagram The functional process that transforms user input into a database for a structure diagram F Functional Process 7) P003 Objects of Interest Table contains Functional Processes, Persistent Data, and all external devices such as Device Users and Application Users P Persistent Data 8) P004 Data Movements Everything pertaining to data movements, including origin and destination, link to triggers and groups P Persistent Data 9) P005 Triggers Trigger table P Persistent Data # P006 Data Groups Data Group table P Persistent Data # F003 Graphical Display Render all objects of interest, data movements and triggers as a sequence diagram F Functional Process # D003 Counting Sheet Worksheet used to display graphics only D Device User # F004 Count Functional Size Applies the COSMIC rules to count the structure diagram F Functional Process # A001 Functional Size Count Calculation on sheet 'Data Movements' A Application User # P007 Settings Sheet Contains color settings for shapes, and parameter settings for COSMIC rule checks P Persistent Data
Objects of Interest
Add Row Del Row Validate
26
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Data Movements in the COSMIC Counting Tool
Name Label Data Movement Sub-Process Description Direct
ion
Uniqu
e?
Check
1
Check
2
Check
3
Check
4
Entry
(E)
eXit (
X)
Read
(R)
Write
(W)
1) E001 Set Parameters Set colors and flags for strict COSMIC rule enforcement T04 Set Flags F001 Excel Table Database < D002 Excel Table Edits G005 Graphic Colors TRUE TRUE TRUE TRUE TRUE 12) W001 Record Parameters Record color and flag parameters F001 Excel Table Database > P007 Settings Sheet G005 Graphic Colors TRUE TRUE TRUE TRUE TRUE 13) R001 Color Settings Apply settings from Setting Sheet F003 Graphical Display < P007 Settings Sheet G005 Graphic Colors TRUE TRUE TRUE TRUE TRUE 14) R002 Rule Check Settings Define whether COSMIC rules are strictly being enforced for existence of triggers, and definition of groupsF004 Count Functional Size < P007 Settings Sheet G010 Rule Enforcement Flags TRUE TRUE TRUE TRUE TRUE 15) E002 Create object of interest Enter everything that's needed to create either a functional process, persistent data, or a device to the structure diagram.T01 Use GUI F002 Build Structure Diagram < D001 Graphical User Interface G001 Objects of Interest Records TRUE TRUE TRUE TRUE TRUE 16) W002 Record objects of interest Create new record in database F002 Build Structure Diagram > P003 Objects of Interest G001 Objects of Interest Records TRUE TRUE TRUE TRUE TRUE 17) R003 Render objects of interest Persistent data, application and device users F003 Graphical Display < P003 Objects of Interest G001 Objects of Interest Records TRUE TRUE TRUE TRUE TRUE 18) R004 Check objects of interest Collect all data needed to perform the count F004 Count Functional Size < P003 Objects of Interest G001 Objects of Interest Records TRUE TRUE TRUE TRUE TRUE 19) E003 Create data movement linked to functional process and devices F002 Build Structure Diagram < D001 Graphical User Interface G002 Data Movement Record TRUE TRUE TRUE TRUE TRUE 1
10) W003 Record data movements and link with triggers and data groups F002 Build Structure Diagram > P004 Data Movements G002 Data Movement Record TRUE TRUE TRUE TRUE TRUE 111) R005 Render data movements and check for COSMIC rules, available triggers and for groups F003 Graphical Display < P004 Data Movements G002 Data Movement Record TRUE TRUE TRUE TRUE TRUE 112) R006 Count data movements applying COSMIC rules F004 Count Functional Size < P004 Data Movements G002 Data Movement Record TRUE TRUE TRUE TRUE TRUE 113) E004 Create triggers Typically from an e data entry movement F002 Build Structure Diagram < D001 Graphical User Interface G003 Trigger Record TRUE TRUE TRUE TRUE TRUE 114) W004 Record triggers hooked to respective data movement F002 Build Structure Diagram > P005 Triggers G003 Trigger Record TRUE TRUE TRUE TRUE TRUE 115) R007 Render triggers Show them in the leftmost column F003 Graphical Display < P005 Triggers G003 Trigger Record TRUE TRUE TRUE TRUE TRUE 116) R008 Check triggers See whether triggers exist per Functional Process F004 Count Functional Size < P005 Triggers G003 Trigger Record TRUE TRUE TRUE TRUE TRUE 117) E005 Edit data groups Request update of functional size count when new grouls are added to the databaseF002 Build Structure Diagram < D001 Graphical User Interface G004 Data Group Record TRUE TRUE TRUE TRUE TRUE 118) W005 Record data groups and link to respective data movements F002 Build Structure Diagram > P006 Data Groups G004 Data Group Record TRUE TRUE TRUE TRUE TRUE 119) R009 Check data groups Check whether data groups are present F004 Count Functional Size < P006 Data Groups G004 Data Group Record TRUE TRUE TRUE TRUE TRUE 120) E006 Add Row Add another row to a database table T03 Excel edits F001 Excel Table Database < D002 Excel Table Edits G008 Excel Table Row TRUE TRUE TRUE TRUE TRUE 121) W006 Enter Layer Data Enter layer information and purpose of measurement F001 Excel Table Database > P001 Count Control Data G012 Document Control Data TRUE TRUE TRUE TRUE TRUE 122) R010 Delete Layer Data Remove data row from table F001 Excel Table Database < P001 Count Control Data G012 Document Control Data TRUE TRUE TRUE TRUE TRUE 123) W007 Add FUR Add or edit a FUR F001 Excel Table Database > P002 Functional User Requirements G009 Functional User Requirement TRUE TRUE TRUE TRUE TRUE 124) R011 Delete FUR Delete a FUR F001 Excel Table Database < P002 Functional User Requirements G009 Functional User Requirement TRUE TRUE TRUE TRUE TRUE 125) W008 Add Object Insert a row for an additional object of interest F001 Excel Table Database > P003 Objects of Interest G001 Objects of Interest Records TRUE TRUE TRUE TRUE TRUE 126) R012 Delete Object Delete an object of interest and all related data movements F001 Excel Table Database < P003 Objects of Interest G001 Objects of Interest Records TRUE TRUE TRUE TRUE TRUE 127) W009 Add Data Movement Insert a row for an additional data movement F001 Excel Table Database > P004 Data Movements G002 Data Movement Record TRUE TRUE TRUE TRUE TRUE 128) R013 Delete Data Movement Delete a data movement F001 Excel Table Database < P004 Data Movements G002 Data Movement Record TRUE TRUE TRUE TRUE TRUE 129) W010 Add data group Insert row for an additional data group F001 Excel Table Database > P006 Data Groups G004 Data Group Record TRUE TRUE TRUE TRUE TRUE 130) R014 Remove unused data groupsCheck which data groups aren't in use anymore, and delete them F001 Excel Table Database < P006 Data Groups G004 Data Group Record TRUE TRUE TRUE TRUE TRUE 131) X001 Delete row Delete a row from a database table F001 Excel Table Database > D002 Excel Table Edits G008 Excel Table Row TRUE TRUE TRUE TRUE TRUE 132) E007 Request screen refresh Depending which entry forms were used, request refresh of appropriate graphical objectsT02 Refresh F003 Graphical Display < D002 Excel Table Edits G011 Database objects changed TRUE TRUE TRUE TRUE TRUE 133) R015 Assess Objects' Consistency Checks consistency of table edits and alerts user and Graphical Display if something's missingF003 Graphical Display < P003 Objects of Interest G013 Consistency Data TRUE TRUE TRUE TRUE TRUE 134) R016 Assess Data Moves' ConsistencyChecks consistency of table edits and alerts user and Graphical Display if something's missingF003 Graphical Display < P004 Data Movements G013 Consistency Data TRUE TRUE TRUE TRUE TRUE 135) R017 Assess Triggers' ConsistencyChecks consistency of table edits and alerts user and Graphical Display if something's missingF003 Graphical Display < P005 Triggers G013 Consistency Data TRUE TRUE TRUE TRUE TRUE 136) E008 Request screen refresh Depending which rows were added or deleted, request refresh of appropriate graphical objectsF003 Graphical Display < D001 Graphical User Interface G011 Database objects changed TRUE TRUE TRUE TRUE TRUE 137) X002 Refresh Objects of Interest Create or refresh functional processes, devices, applciations, and persistent data storesF003 Graphical Display > D003 Counting Sheet G001 Objects of Interest Records TRUE TRUE TRUE TRUE TRUE 138) X003 Refresh Data Movements Create or refresh data movements F003 Graphical Display > D003 Counting Sheet G002 Data Movement Record TRUE TRUE TRUE TRUE TRUE 139) X004 Position Triggers Add triggers where defined F003 Graphical Display > D003 Counting Sheet G003 Trigger Record TRUE TRUE TRUE TRUE TRUE 140) E009 Request count refresh Request update of functional size count when re-calculation becomes necessary in the database.T05 Display CFP F004 Count Functional Size < D003 Counting Sheet G006 Count Display Object TRUE TRUE TRUE TRUE TRUE 141) X005 Count CFP Apply COSMIC rules to count the functional size F004 Count Functional Size > A001 Functional Size Count G007 COSMIC Count TRUE TRUE TRUE TRUE TRUE 142) E010 Get CFP count Show count for Entries, eXits, Reads and Writes, plus the total F003 Graphical Display < A001 Functional Size Count G007 COSMIC Count TRUE TRUE TRUE TRUE TRUE 143) X006 Refresh CFP Count On top of sheet F003 Graphical Display > D003 Counting Sheet G007 COSMIC Count TRUE TRUE TRUE TRUE TRUE 1
CFP per Data Movement Type 10 6 17 10Total CFP 43
Data Movements Moving Data between Rule Check Move Type
43
Functional Process Trigger Object of Interest Data Group
Add Row Del Row Validate
27
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Data Groups in the COSMIC Counting Tool
● The Total Count:
➨ Standard Excel functionality is not included in the tool count
Name Label Attributes Data Owner Data Movements1) G001 Objects of Interest Records All information, including link to applications, as needed for creating or modifying an object of interest Database Designer E002, W002, R003, R004, W008, R012, X002
2) G002 Data Movement Record Everything that's needed to identify a data movement, including reference to origin and destination, data group, and triggers, for entry movements only. Programmer E003, W003, R005, R006, W009, R013, X003
3) G003 Trigger Record Contains all information needed to render a trigger and to determine which functional process it triggers Programmer E004, W004, R007, R008, X004
4) G004 Data Group Record Contains all Information needed for a Data Group and for determining which data movement is using it. Programmer E005, W005, R009, W010, R014
5) G005 Graphic Colors Colors used for graphical rendering Designer E001, W001, R001
6) G006 Count Display Object Shape location for displaying the final count Programmer E009
7) G007 COSMIC Count Excel Tags for Entries, eXits, Reads and Writes Counter X005, E010, X006
8) G008 Excel Table Row Describes a row in an Excel table Counter E006, X001
9) G009 Functional User Requirement Requirements in Grant Rule User Story format Sponsor W007, R011
10) G010 Rule Enforcement Flags Define whether COSMIC rules are strictly being enforced for existence of triggers, and definition of groups Counter R002
11) G011 Database objects changed Flag indicating that some data in the database has changed, affecting the graphical display and thus needing a refresh Programmer E007, E008
12) G012 Document Control Data Layer information, purpose of measurement, and authors Sponsor W006, R010
13) G013 Consistency Data Identifies items in the database tables that aren't consistent Programmer R015, R016, R017
Data GroupsDelete all Unused Data Groups
Add Row Del Row Validate
10 Entry (E) + 6 eXit (X) + 17 Read (R) + 10 Write (W) = 43 CFP
28
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Table Input in Excel
● All tables can be edited without using forms ➨ Tables have Add Row, Del Row and Validate buttons
• Default for adding rows is bottom of table • Missing data results in no validation and no graphical display
➨ You need to refer to the unique names for linking data ➨ There are consistency checks similar to graphical input:
• Deleting objects of interest also deletes data movements • Deleting data movements also deletes triggers
➨ A full refresh event occurs when activating Counting Sheet ➨ Select cells to indicate where to insert or delete table rows ➨ Keep sheets always protected
● You cannot add or delete rows outside the table interior ➨ Note that there are hidden first and last rows in the table
29
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Import and Export
● Import and Export copy the following data tables ➨ Data Groups ➨ Objects of Interest ➨ Data Movements ➨ Triggers ➨ Functional User Requirements
● References (e.g., origin, destination for data movements) refer to line numbers instead of ‘Name’ used in data tables
● Two buttons on the ‘How to Use’ sheet allow exporting to, and importing from, a file in the XLSX format ➨ Export/import functionality be extended to XML as soon as a schema file is available
Export and Import
Export Count
Import Count
30
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Limitations
● Structure Diagrams contain ➨ Looped Data Movements, same origins and destinations
• Not yet supported ➨ Conditional areas with execution under condition only
• Not yet supported ● Counting several applications with COSMIC
➨ You can link to other application counts but a count consolidation sheet is not available
➨ You need to customize a consolidation sheet • Use the following Excel range names to access count results:
CFP, CFP_E , CFP_X, CFP_R , CFP_W • On sheet ‘Data Movements’ for each counting workbook
31
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Installation
● Copy the template to your Microsoft template directory ➨ Usually C:\Users\<username>\AppData\Roaming\Microsoft\Templates
• Or where appropriate
➨ Trust macros – in expert mode: • File – Options – Trust Center Settings – Macro Settings:
Enable all macros (not recommended by Microsoft) ➨ Trust macros – in enterprise mode:
• Install corporate digital certificate in VBA • Then enable digitally signed macros only
● No other resources are used ➨ Except standard Office 2013 libraries including PowerPoint
32
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Tool – Architecture
NPS Priority
Kano Priority
AHP Priority
Kano Analysis
COSMIC Count
Goal Interface Size Interface
FUR Deployment
QFD Transfer Function
Cascaded Quality FuncGon Deployments
Combine
VoC Priority
New Lanchester
Story Card Deployment
Planning Matrix Test
Coverage
Test Interface
33
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Questions?
34
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Troubleshoot with Office 2010 or earlier
● Depending what your machine has, it might seem impossible to run the VBA macros, because Office 2013 now references another security package then before
● You have to manually re-link VBA libraries – something very difficult because Excel won’t you let in but maintains some strange VBA compiler error messages
● Recommended procedure: ➨ Delete all the VBA code displayed with error ➨ Usually you have to do that twice, until VBA allows you to access VBA – Tools – References ➨ Set the references in VBA – Tools – References correctly, as explained next slide ➨ Now undo the code deletions – the VBA code should now compile
35
Customer Orientation
Lean Six Sigma
Agile Processes
Project Estimations
Transfer Functions
IWSM MENSURA WHERE ACADEMIC IDEAS MEET INDUSTRY PRACTICE ON SOFTWARE MEASUREMENT TOPICS
Office 2013 à 2010
● There is a major change regarding security policy ➨ In Office 2013, authorization is via a new library:
• Microsoft Office.NET Private Object Library
➨ It used to be: • Microsoft Office 14 Authorization Control Type Library
● You have to manually switch References in VBA!