SlideShare a Scribd company logo
1 of 19
IWSM Mensura 2014 
Muhammet Ali SAĞ & 
Ayça TARHAN 
Department of Computer Engineering 
Hacettepe University, Ankara / Turkey
Functional Size Measurement (FSM) 
 Measures software size by quantifying its functional 
user requirements 
 Mk II Function Point Analysis (FPA) 
 International Function Point Users Group (IFPUG) FPA 
 Common Software Measurement International 
Consortium (COSMIC) Measurement Method 
 Functional software size in Cosmic Function Points (CFP) 
Measuring COSMIC Software Size from 
Functional Execution Traces of Java Business Applications
Study Aim and Scope 
 Automatic measurement of COSMIC functional size from 
source or binary code 
 via a prototype of a target tool called ‘COSMIC Solver’ 
 Using UML Sequence Diagrams derived from functional 
execution traces of Java Business Applications at runtime 
Measuring COSMIC Software Size from 
Functional Execution Traces of Java Business Applications
Why to Automate FSM? 
 To eliminate the judgment on the part of the measurer 
 To reduce the cost of measurement 
 e.g. for building organizational repository of functional software size 
 To ease instant project management; 
 by tracking the size of developed functionality and accuracy of the estimation, 
especially during the execution of large-scale projects 
Measuring COSMIC Software Size from 
Functional Execution Traces of Java Business Applications
Related Work on FSM Automation 
 Measurement via mapping of UML (Unified Modeling Language) 
diagrams onto COSMIC measurement model 
 Use-case 
 Class diagrams 
 Sequence diagrams 
 Measurement from source code directly 
 By static and dynamic analysis 
 Measurement via mapping of source code to data-flow charts from 
where FSM is carried out 
Measuring COSMIC Software Size from 
Functional Execution Traces of Java Business Applications
COSMIC Solver - Method 
 Catch and tag UML Sequence Diagrams from functional execution traces of use-case 
scenarios run in a Java application, with the help of AspectJ technology 
 Apply COSMIC FSM rules on tagged diagrams to measure the size of the use-case 
scenarios run 
Measuring COSMIC Software Size from 
Functional Execution Traces of Java Business Applications 
Software Code 
(Source or Binary) 
Traces Output 
From Execution 
Execute 
Behavioral 
Specification 
Dynamic Analysis
COSMIC Solver – Measurement Process 
Measuring COSMIC Software Size from 
Functional Execution Traces of Java Business Applications 
Javaagent & 
AspectJ pointcuts; 
Application software 
Mapping Phase Tagged (textual) 
sequence diagram 
Measurement 
Phase 
Functional size of the 
software in units of CFP 
Tracer Component 
Cosmic Calculator 
Component
UML Sequence Diagram 
Measuring COSMIC Software Size from 
Functional Execution Traces of Java Business Applications 
Application boundary
Aspect Oriented Programming & AspectJ 
 Addresses the ‘cross-cutting concerns’ (e.g. security or logging) that 
compromise the modularity of Object-Oriented systems 
Measuring COSMIC Software Size from 
Functional Execution Traces of Java Business Applications 
Service a; 
Service b; 
public void doSomething(){ 
Instrument.beforeNormalCall(); 
a.callService(); 
Instrument.afterNormalCall(); 
Instrument.beforeNormalCall(); 
b.callService(); 
Instrument.afterNormalCall(); 
} 
doSomething(); 
beforeNormalCall(); 
afterNormalCall(); 
callService(); 
AspectJ: The implementation of AOP in Java environment
Tracer Component 
 Captures all join point executions and calls in order to construct the 
structured text representation of a sequence diagram 
Measuring COSMIC Software Size from 
POINTCUT PATTERNS TO CATCH DATA MOVEMENTS 
Functional Execution Traces of Java Business Applications 
TAG POINTCUT 
SWING: execution(* java.awt.event.ActionListener+.actionPerformed (..)) 
DIALOG: call(* javax.swing.JComponent+.show*(..)) 
JDBC: execution(* java.sql.Statement.exec*(..)) 
call(* java.sql.Statement.exec*(..)) 
JPA: execution(* java.sql.Connection.prepareStatement(..)) 
call(* java.sql.Connection.prepareStatement(..)) 
JAX-RPC: call(* javax.xml.rpc.Service+.createCall(..)) 
OTHER: execution(* <PackageName>..*(..)) || 
call(* <PackageName>.<methodName>(..)) 
before() : jdbcCall() || jdbcExecution() { 
[Start:{tag}>] <print signature> 
} 
after() : jdbcCall() || jdbcExecution() { 
[End:{tag}>] <print signature> 
}
Cosmic Calculator Component 
 Calculates the functional size of the application by applying COSMIC 
measurement rules to tagged (textual) UML sequence diagrams 
 Analyze Candidate FURs (Functional User Requirements) 
 Identify Application Boundary 
 Evaluate Functional Processes 
Measuring COSMIC Software Size from 
Functional Execution Traces of Java Business Applications
Example Measurement 
Measuring COSMIC Software Size from 
Functional Execution Traces of Java Business Applications
Example Measurement – “Delete” 
Textual representation 
Start:SWING>void gui.testGUI2.5.actionPerformed(ActionEvent) 
… 
Start:>String Model.Model.removePerson(String) 
Start:>boolean Data.DataController.deletePerson(Person) 
… 
Start:JPA>PreparedStatement 
java.sql.Connection.prepareStatement(String) 
SELECT ID, BORNPLACE, NAME, SURNAME FROM PERSON 
WHERE (ID = ?) 
End:JPA>PreparedStatement 
java.sql.Connection.prepareStatement(String) 
Start:JPA>PreparedStatement 
java.sql.Connection.prepareStatement(String) 
DELETE FROM PERSON WHERE (ID = ?) 
End:JPA>PreparedStatement 
java.sql.Connection.prepareStatement(String) 
… 
End:>boolean Data.DataController.deletePerson(Person) 
End:>String Model.Model.removePerson(String) 
… 
End:SWING>void gui.testGUI2.5.actionPerformed(ActionEvent) 
Measuring COSMIC Software Size from 
Functional Execution Traces of Java Business Applications
Example Measurement - Results 
Functional Process E R W X Total 
Add Person 1 1 1 1 4 
Find Person 1 1 - 1 3 
Update Person 1 2 1 1 5 
Delete Person 1 1 1 1 4 
List Person 1 1 - 1 3 
Make Payment 1 2 1 1 5 
List Payment 1 2 1 1 5 
Get Weather Info 1 - - 1 2 
Total: 8 10 5 8 31 
Functional Process E R W X Total 
Make Payment 2 2 1 1 6 
Total: 9 10 5 8 32 
Measuring COSMIC Software Size from 
Functional Execution Traces of Java Business Applications 
Difference in Manual Calculation
Prototype Demo 
http://youtu.be/pPnlR6hCPnc 
Measuring COSMIC Software Size from 
Functional Execution Traces of Java Business Applications
Prototype - Constraints 
 AspectJ works with Java 1.5+ versions -- previous versions not supported 
 To handle technologies other than implemented ones, developer should 
modify Tracer and Calculator components -- necessity of domain knowledge 
 Defined constraints for functional size measurement 
 3-tier application architecture is required 
 Reporting with multi-level aggregations is not handled 
 Multi-thread operations are not handled 
 Caching mechanism of the persistence API must be disabled 
Measuring COSMIC Software Size from 
Functional Execution Traces of Java Business Applications
Prototype - Benefits 
 Measurement process automation 
 Measurement from source or binary code at runtime 
 Minimizing the measurer’s influence on the results 
 No need for any code additions to the target application 
 Possibility for customization and extensibility 
 Likely elimination of effort and cost (e.g., for training people on size 
measurement, and for manual size measurement) 
Measuring COSMIC Software Size from 
Functional Execution Traces of Java Business Applications
Future Work 
 Development of the prototype into a robust tool 
 Application of a published framework to verify the accuracy 
of the results measured by the tool 
 E.g. Verifying the accuracy of automation tools for the measurement of 
COSMIC – ISO 19761 (Soubra et al, 2014) 
 Conduct of empirical work (e.g. case studies) to evaluate the 
usability and usefulness of the tool 
Measuring COSMIC Software Size from 
Functional Execution Traces of Java Business Applications
Contact: 
ayca.tarhan@gmail.com 
muhammetalisag@gmail.com

More Related Content

What's hot

Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Lionel Briand
 
Automatic Generation of System Test Cases from Use Case Specifications
Automatic Generation of System Test Cases from Use Case SpecificationsAutomatic Generation of System Test Cases from Use Case Specifications
Automatic Generation of System Test Cases from Use Case Specifications
Lionel Briand
 
Software reliability models error seeding model and failure model-iv
Software reliability models error seeding model and failure model-ivSoftware reliability models error seeding model and failure model-iv
Software reliability models error seeding model and failure model-iv
Gurbakash Phonsa
 
Automated Test Suite Generation for Time-Continuous Simulink Models
Automated Test Suite Generation for Time-Continuous Simulink ModelsAutomated Test Suite Generation for Time-Continuous Simulink Models
Automated Test Suite Generation for Time-Continuous Simulink Models
Lionel Briand
 

What's hot (16)

Rv11
Rv11Rv11
Rv11
 
Testware Hierarchy for Test Automation
Testware Hierarchy for Test AutomationTestware Hierarchy for Test Automation
Testware Hierarchy for Test Automation
 
SE4SG 2013 : A Run-Time Verification Framework for Smart Grid Applications Im...
SE4SG 2013 : A Run-Time Verification Framework for Smart Grid Applications Im...SE4SG 2013 : A Run-Time Verification Framework for Smart Grid Applications Im...
SE4SG 2013 : A Run-Time Verification Framework for Smart Grid Applications Im...
 
Analysis of 3-D Model in ANSYS 9.0 by Java Program and Macros Using Interlink...
Analysis of 3-D Model in ANSYS 9.0 by Java Program and Macros Using Interlink...Analysis of 3-D Model in ANSYS 9.0 by Java Program and Macros Using Interlink...
Analysis of 3-D Model in ANSYS 9.0 by Java Program and Macros Using Interlink...
 
Control Flow Testing
Control Flow TestingControl Flow Testing
Control Flow Testing
 
Unit 3 Control Flow Testing
Unit 3   Control Flow TestingUnit 3   Control Flow Testing
Unit 3 Control Flow Testing
 
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
 
Software Measurement: Lecture 1. Measures and Metrics
Software Measurement: Lecture 1. Measures and MetricsSoftware Measurement: Lecture 1. Measures and Metrics
Software Measurement: Lecture 1. Measures and Metrics
 
Software Estimation Techniques
Software Estimation TechniquesSoftware Estimation Techniques
Software Estimation Techniques
 
Conformiq Tutorial
Conformiq TutorialConformiq Tutorial
Conformiq Tutorial
 
Automatic Generation of System Test Cases from Use Case Specifications
Automatic Generation of System Test Cases from Use Case SpecificationsAutomatic Generation of System Test Cases from Use Case Specifications
Automatic Generation of System Test Cases from Use Case Specifications
 
Path Testing
Path TestingPath Testing
Path Testing
 
Software reliability models error seeding model and failure model-iv
Software reliability models error seeding model and failure model-ivSoftware reliability models error seeding model and failure model-iv
Software reliability models error seeding model and failure model-iv
 
Rayleigh model
Rayleigh modelRayleigh model
Rayleigh model
 
Automated Test Suite Generation for Time-Continuous Simulink Models
Automated Test Suite Generation for Time-Continuous Simulink ModelsAutomated Test Suite Generation for Time-Continuous Simulink Models
Automated Test Suite Generation for Time-Continuous Simulink Models
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and Development
 

Similar to Iwsm2014 measuring cosmic software size from functional execution traces of java business applications (ayça tarhan - sag)

ESEconf2011 - Hanin Makram: "Embedding Performance into Continuous Integratio...
ESEconf2011 - Hanin Makram: "Embedding Performance into Continuous Integratio...ESEconf2011 - Hanin Makram: "Embedding Performance into Continuous Integratio...
ESEconf2011 - Hanin Makram: "Embedding Performance into Continuous Integratio...
Aberla
 
Bindu Chintalapudi - Software Testing -latest (1)
Bindu Chintalapudi - Software Testing -latest (1)Bindu Chintalapudi - Software Testing -latest (1)
Bindu Chintalapudi - Software Testing -latest (1)
bindu chintalapudi
 
Pmo slides jun2010
Pmo slides jun2010Pmo slides jun2010
Pmo slides jun2010
Steve Turner
 
Functional point analysis
Functional point analysisFunctional point analysis
Functional point analysis
DestinationQA
 
Software Project Management - NESDEV
Software Project Management - NESDEVSoftware Project Management - NESDEV
Software Project Management - NESDEV
Krit Kamtuo
 
Surekha_haoop_exp
Surekha_haoop_expSurekha_haoop_exp
Surekha_haoop_exp
surekhakadi
 
PranathiSadhulaAutomationTester
PranathiSadhulaAutomationTesterPranathiSadhulaAutomationTester
PranathiSadhulaAutomationTester
Pranathi Sadhula
 

Similar to Iwsm2014 measuring cosmic software size from functional execution traces of java business applications (ayça tarhan - sag) (20)

Iwsm2014 measuring cosmic software size from functional execution traces of...
Iwsm2014   measuring cosmic software size from functional execution traces of...Iwsm2014   measuring cosmic software size from functional execution traces of...
Iwsm2014 measuring cosmic software size from functional execution traces of...
 
ESEconf2011 - Hanin Makram: "Embedding Performance into Continuous Integratio...
ESEconf2011 - Hanin Makram: "Embedding Performance into Continuous Integratio...ESEconf2011 - Hanin Makram: "Embedding Performance into Continuous Integratio...
ESEconf2011 - Hanin Makram: "Embedding Performance into Continuous Integratio...
 
Bindu Chintalapudi - Software Testing -latest (1)
Bindu Chintalapudi - Software Testing -latest (1)Bindu Chintalapudi - Software Testing -latest (1)
Bindu Chintalapudi - Software Testing -latest (1)
 
Shuvam dutta
Shuvam duttaShuvam dutta
Shuvam dutta
 
Shuvam dutta | Performance tester
Shuvam dutta | Performance testerShuvam dutta | Performance tester
Shuvam dutta | Performance tester
 
Spring batch for large enterprises operations
Spring batch for large enterprises operations Spring batch for large enterprises operations
Spring batch for large enterprises operations
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
 
Cost xpert
Cost xpertCost xpert
Cost xpert
 
Developing Tools for “What if…” Testing of Large-scale Software Systems
Developing Tools for “What if…” Testing of Large-scale Software SystemsDeveloping Tools for “What if…” Testing of Large-scale Software Systems
Developing Tools for “What if…” Testing of Large-scale Software Systems
 
Pmo slides jun2010
Pmo slides jun2010Pmo slides jun2010
Pmo slides jun2010
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
 
Functional point analysis
Functional point analysisFunctional point analysis
Functional point analysis
 
Tecnomatix 11 para simulação e validação
Tecnomatix 11 para simulação e validaçãoTecnomatix 11 para simulação e validação
Tecnomatix 11 para simulação e validação
 
Automated functional size measurement for three tier object relational mappin...
Automated functional size measurement for three tier object relational mappin...Automated functional size measurement for three tier object relational mappin...
Automated functional size measurement for three tier object relational mappin...
 
IBM Rational AppScan Technical Overview
IBM Rational AppScan Technical OverviewIBM Rational AppScan Technical Overview
IBM Rational AppScan Technical Overview
 
Work Portfolio
Work PortfolioWork Portfolio
Work Portfolio
 
Just-in-Time Bug Prediction in Mobile Applications: The Domain Matters!
Just-in-Time Bug Prediction in Mobile Applications: The Domain Matters!Just-in-Time Bug Prediction in Mobile Applications: The Domain Matters!
Just-in-Time Bug Prediction in Mobile Applications: The Domain Matters!
 
Software Project Management - NESDEV
Software Project Management - NESDEVSoftware Project Management - NESDEV
Software Project Management - NESDEV
 
Surekha_haoop_exp
Surekha_haoop_expSurekha_haoop_exp
Surekha_haoop_exp
 
PranathiSadhulaAutomationTester
PranathiSadhulaAutomationTesterPranathiSadhulaAutomationTester
PranathiSadhulaAutomationTester
 

More from Nesma

More from Nesma (20)

2024-04 - Nesma webinar - Benchmarking.pdf
2024-04 - Nesma webinar - Benchmarking.pdf2024-04 - Nesma webinar - Benchmarking.pdf
2024-04 - Nesma webinar - Benchmarking.pdf
 
Agile Team Performance Measurement webinar
Agile Team Performance Measurement webinarAgile Team Performance Measurement webinar
Agile Team Performance Measurement webinar
 
Software Cost Estimation webinar January 2024.pdf
Software Cost Estimation webinar January 2024.pdfSoftware Cost Estimation webinar January 2024.pdf
Software Cost Estimation webinar January 2024.pdf
 
Nesma event June '23 - How to use objective metrics as a basis for agile cost...
Nesma event June '23 - How to use objective metrics as a basis for agile cost...Nesma event June '23 - How to use objective metrics as a basis for agile cost...
Nesma event June '23 - How to use objective metrics as a basis for agile cost...
 
Nesma event June '23 - NEN Practice Guideline - NPR.pdf
Nesma event June '23 - NEN Practice Guideline - NPR.pdfNesma event June '23 - NEN Practice Guideline - NPR.pdf
Nesma event June '23 - NEN Practice Guideline - NPR.pdf
 
Nesma event June '23 - Easy Function Sizing - Introduction.pdf
Nesma event June '23 - Easy Function Sizing - Introduction.pdfNesma event June '23 - Easy Function Sizing - Introduction.pdf
Nesma event June '23 - Easy Function Sizing - Introduction.pdf
 
Automotive Software Cost Estimation - The UCE Approach - Emmanuel Mary
Automotive Software Cost Estimation - The UCE Approach - Emmanuel MaryAutomotive Software Cost Estimation - The UCE Approach - Emmanuel Mary
Automotive Software Cost Estimation - The UCE Approach - Emmanuel Mary
 
The COSMIC battle between David and Goliath - Paul Hussein
The COSMIC battle between David and Goliath - Paul HusseinThe COSMIC battle between David and Goliath - Paul Hussein
The COSMIC battle between David and Goliath - Paul Hussein
 
Succesful Estimating - It's how you tell the story - Amritpal Singh Agar
Succesful Estimating - It's how you tell the story - Amritpal Singh AgarSuccesful Estimating - It's how you tell the story - Amritpal Singh Agar
Succesful Estimating - It's how you tell the story - Amritpal Singh Agar
 
(Increasing) Predictability of large Government ICT Projects - Koos Veefkind
(Increasing) Predictability of large Government ICT Projects - Koos Veefkind(Increasing) Predictability of large Government ICT Projects - Koos Veefkind
(Increasing) Predictability of large Government ICT Projects - Koos Veefkind
 
CEBoK for Software Past Present Future - Megan Jones
CEBoK for Software Past Present Future - Megan JonesCEBoK for Software Past Present Future - Megan Jones
CEBoK for Software Past Present Future - Megan Jones
 
Agile Development and Agile Cost Estimation - A return to basic principles - ...
Agile Development and Agile Cost Estimation - A return to basic principles - ...Agile Development and Agile Cost Estimation - A return to basic principles - ...
Agile Development and Agile Cost Estimation - A return to basic principles - ...
 
Resolving Cost Management and Key Pitfalls of Agile Software Development - Da...
Resolving Cost Management and Key Pitfalls of Agile Software Development - Da...Resolving Cost Management and Key Pitfalls of Agile Software Development - Da...
Resolving Cost Management and Key Pitfalls of Agile Software Development - Da...
 
Project Succes is a Choice - Joop Schefferlie
Project Succes is a Choice - Joop SchefferlieProject Succes is a Choice - Joop Schefferlie
Project Succes is a Choice - Joop Schefferlie
 
Afrekenen met functiepunten
Afrekenen met functiepuntenAfrekenen met functiepunten
Afrekenen met functiepunten
 
Agile teams get a grip - martijn groenewegen
Agile teams   get a grip - martijn groenewegenAgile teams   get a grip - martijn groenewegen
Agile teams get a grip - martijn groenewegen
 
The fact that your poject is agile is not (necessarily) a cost driver arlen...
The fact that your poject is agile is not (necessarily) a cost driver   arlen...The fact that your poject is agile is not (necessarily) a cost driver   arlen...
The fact that your poject is agile is not (necessarily) a cost driver arlen...
 
Software sizing as an essential measure past present and future - Dan Galorat...
Software sizing as an essential measure past present and future - Dan Galorat...Software sizing as an essential measure past present and future - Dan Galorat...
Software sizing as an essential measure past present and future - Dan Galorat...
 
A benchmark based approach to determine language verbosity - Hans Kuijpers - ...
A benchmark based approach to determine language verbosity - Hans Kuijpers - ...A benchmark based approach to determine language verbosity - Hans Kuijpers - ...
A benchmark based approach to determine language verbosity - Hans Kuijpers - ...
 
Software sizing the cornerstone for iceaa's scebok - Carol Dekkers
Software sizing the cornerstone for iceaa's scebok - Carol DekkersSoftware sizing the cornerstone for iceaa's scebok - Carol Dekkers
Software sizing the cornerstone for iceaa's scebok - Carol Dekkers
 

Iwsm2014 measuring cosmic software size from functional execution traces of java business applications (ayça tarhan - sag)

  • 1. IWSM Mensura 2014 Muhammet Ali SAĞ & Ayça TARHAN Department of Computer Engineering Hacettepe University, Ankara / Turkey
  • 2. Functional Size Measurement (FSM)  Measures software size by quantifying its functional user requirements  Mk II Function Point Analysis (FPA)  International Function Point Users Group (IFPUG) FPA  Common Software Measurement International Consortium (COSMIC) Measurement Method  Functional software size in Cosmic Function Points (CFP) Measuring COSMIC Software Size from Functional Execution Traces of Java Business Applications
  • 3. Study Aim and Scope  Automatic measurement of COSMIC functional size from source or binary code  via a prototype of a target tool called ‘COSMIC Solver’  Using UML Sequence Diagrams derived from functional execution traces of Java Business Applications at runtime Measuring COSMIC Software Size from Functional Execution Traces of Java Business Applications
  • 4. Why to Automate FSM?  To eliminate the judgment on the part of the measurer  To reduce the cost of measurement  e.g. for building organizational repository of functional software size  To ease instant project management;  by tracking the size of developed functionality and accuracy of the estimation, especially during the execution of large-scale projects Measuring COSMIC Software Size from Functional Execution Traces of Java Business Applications
  • 5. Related Work on FSM Automation  Measurement via mapping of UML (Unified Modeling Language) diagrams onto COSMIC measurement model  Use-case  Class diagrams  Sequence diagrams  Measurement from source code directly  By static and dynamic analysis  Measurement via mapping of source code to data-flow charts from where FSM is carried out Measuring COSMIC Software Size from Functional Execution Traces of Java Business Applications
  • 6. COSMIC Solver - Method  Catch and tag UML Sequence Diagrams from functional execution traces of use-case scenarios run in a Java application, with the help of AspectJ technology  Apply COSMIC FSM rules on tagged diagrams to measure the size of the use-case scenarios run Measuring COSMIC Software Size from Functional Execution Traces of Java Business Applications Software Code (Source or Binary) Traces Output From Execution Execute Behavioral Specification Dynamic Analysis
  • 7. COSMIC Solver – Measurement Process Measuring COSMIC Software Size from Functional Execution Traces of Java Business Applications Javaagent & AspectJ pointcuts; Application software Mapping Phase Tagged (textual) sequence diagram Measurement Phase Functional size of the software in units of CFP Tracer Component Cosmic Calculator Component
  • 8. UML Sequence Diagram Measuring COSMIC Software Size from Functional Execution Traces of Java Business Applications Application boundary
  • 9. Aspect Oriented Programming & AspectJ  Addresses the ‘cross-cutting concerns’ (e.g. security or logging) that compromise the modularity of Object-Oriented systems Measuring COSMIC Software Size from Functional Execution Traces of Java Business Applications Service a; Service b; public void doSomething(){ Instrument.beforeNormalCall(); a.callService(); Instrument.afterNormalCall(); Instrument.beforeNormalCall(); b.callService(); Instrument.afterNormalCall(); } doSomething(); beforeNormalCall(); afterNormalCall(); callService(); AspectJ: The implementation of AOP in Java environment
  • 10. Tracer Component  Captures all join point executions and calls in order to construct the structured text representation of a sequence diagram Measuring COSMIC Software Size from POINTCUT PATTERNS TO CATCH DATA MOVEMENTS Functional Execution Traces of Java Business Applications TAG POINTCUT SWING: execution(* java.awt.event.ActionListener+.actionPerformed (..)) DIALOG: call(* javax.swing.JComponent+.show*(..)) JDBC: execution(* java.sql.Statement.exec*(..)) call(* java.sql.Statement.exec*(..)) JPA: execution(* java.sql.Connection.prepareStatement(..)) call(* java.sql.Connection.prepareStatement(..)) JAX-RPC: call(* javax.xml.rpc.Service+.createCall(..)) OTHER: execution(* <PackageName>..*(..)) || call(* <PackageName>.<methodName>(..)) before() : jdbcCall() || jdbcExecution() { [Start:{tag}>] <print signature> } after() : jdbcCall() || jdbcExecution() { [End:{tag}>] <print signature> }
  • 11. Cosmic Calculator Component  Calculates the functional size of the application by applying COSMIC measurement rules to tagged (textual) UML sequence diagrams  Analyze Candidate FURs (Functional User Requirements)  Identify Application Boundary  Evaluate Functional Processes Measuring COSMIC Software Size from Functional Execution Traces of Java Business Applications
  • 12. Example Measurement Measuring COSMIC Software Size from Functional Execution Traces of Java Business Applications
  • 13. Example Measurement – “Delete” Textual representation Start:SWING>void gui.testGUI2.5.actionPerformed(ActionEvent) … Start:>String Model.Model.removePerson(String) Start:>boolean Data.DataController.deletePerson(Person) … Start:JPA>PreparedStatement java.sql.Connection.prepareStatement(String) SELECT ID, BORNPLACE, NAME, SURNAME FROM PERSON WHERE (ID = ?) End:JPA>PreparedStatement java.sql.Connection.prepareStatement(String) Start:JPA>PreparedStatement java.sql.Connection.prepareStatement(String) DELETE FROM PERSON WHERE (ID = ?) End:JPA>PreparedStatement java.sql.Connection.prepareStatement(String) … End:>boolean Data.DataController.deletePerson(Person) End:>String Model.Model.removePerson(String) … End:SWING>void gui.testGUI2.5.actionPerformed(ActionEvent) Measuring COSMIC Software Size from Functional Execution Traces of Java Business Applications
  • 14. Example Measurement - Results Functional Process E R W X Total Add Person 1 1 1 1 4 Find Person 1 1 - 1 3 Update Person 1 2 1 1 5 Delete Person 1 1 1 1 4 List Person 1 1 - 1 3 Make Payment 1 2 1 1 5 List Payment 1 2 1 1 5 Get Weather Info 1 - - 1 2 Total: 8 10 5 8 31 Functional Process E R W X Total Make Payment 2 2 1 1 6 Total: 9 10 5 8 32 Measuring COSMIC Software Size from Functional Execution Traces of Java Business Applications Difference in Manual Calculation
  • 15. Prototype Demo http://youtu.be/pPnlR6hCPnc Measuring COSMIC Software Size from Functional Execution Traces of Java Business Applications
  • 16. Prototype - Constraints  AspectJ works with Java 1.5+ versions -- previous versions not supported  To handle technologies other than implemented ones, developer should modify Tracer and Calculator components -- necessity of domain knowledge  Defined constraints for functional size measurement  3-tier application architecture is required  Reporting with multi-level aggregations is not handled  Multi-thread operations are not handled  Caching mechanism of the persistence API must be disabled Measuring COSMIC Software Size from Functional Execution Traces of Java Business Applications
  • 17. Prototype - Benefits  Measurement process automation  Measurement from source or binary code at runtime  Minimizing the measurer’s influence on the results  No need for any code additions to the target application  Possibility for customization and extensibility  Likely elimination of effort and cost (e.g., for training people on size measurement, and for manual size measurement) Measuring COSMIC Software Size from Functional Execution Traces of Java Business Applications
  • 18. Future Work  Development of the prototype into a robust tool  Application of a published framework to verify the accuracy of the results measured by the tool  E.g. Verifying the accuracy of automation tools for the measurement of COSMIC – ISO 19761 (Soubra et al, 2014)  Conduct of empirical work (e.g. case studies) to evaluate the usability and usefulness of the tool Measuring COSMIC Software Size from Functional Execution Traces of Java Business Applications