SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
Metrics for Object-Oriented
System
Group 8
Hung Ho Rui Tang
Chuyi Feng
Muhammad Yousaf
Sarah Makona
Content
Introduction
Basic Definitions
Metric Properties For Evaluation Criteria
Applied Metrics Suite
Conclusion
OOA, OOD and OOP Object-oriented programming
(OOP) is a programming paradigm
based on the concept of "objects",
which may contain data, often
known as attributes; and
methods.
Definitions
Object: X = (x, p(x))
x: substantial individual
p(x): collection of properties and methods
Cohesion: refers to what object (of class) will do
Low Cohesion: Does many actions but not focus what it should do
High Cohesion: Should focus what it should do
Coupling: refers to how related / dependent are objects on each other
Definitions
Complexity of Object
+ Large number of properties
+ Number of compositions
Scope of Properties
+ Depth of Inheritance
+ Number of Children
Metric Properties for Evaluation Criteria
1. Non-coarseness
Not every class can have same value for a metric
2. Non-uniqueness (Notion of Equivalence)
Two classes can have same metric value
3. Design details are important
Even though two classes perform same functions, the details of the
design matter in determining the metric for the class
Metric Properties for Evaluation Criteria (cont)
4. Monotonicity
The metric for the combination of two classes can never be less than
the metric for either of the component classes: u(P + Q) > u(P)
5. Non-equivalence of interaction
Interaction between P + Q # Q + R
6. Interaction increases complexity
When two classes are combined, the interactions increase complexity
Applied Metrics Suite
1. Weighted Methods Per Class (WMC)
2. Depth Of Inheritance Tree (DIT)
3. Number Of Children (NOC)
4. Coupling Between Object Classes (CBO)
5. Response For A Class (RFC)
6. Lack Of Cohesion In Methods (LCOM)
Examples with project
+ Site A use C++ language
+ Site B use Smalltalk language
Both 6 applied metrics satisfy property 1, 2, 3, 4, 5 except property 6 fails
Applied Metrics Suite
1. Weighted Methods Per Class (WMC)
+ To predict how much time and effort to develop and maintain class
+ Large numbers of methods in class will limit possibility of reuse
2.Depth Of Inheritance Tree (DIT)
+ The deeper of class
=> More number of method to inherit => complex to predict
+ The deeper a class is in hierarchy, the greater the reuse of inherited
methods
Applied Metrics Suite (cont)
3. Number Of Children (NOC)
If a class has large number of children
=> misuse subclassing
=> require more testing
4. Coupling Between Object Classes (CBO)
Excessive coupling
=> prevent reuse and modular design
=> difficult maintenance
Applied Metrics Suite (cont)
5. Response For A Class (RFC)
A large number of method invoked in response
=> Testing and debugging are complicated
=> The greater the complexity of the class
6. Lack Of Cohesion In Methods (LCOM)
Cohesion promotes encapsulation
Low cohesion increase complexity and errors
Conclusion
Failing to meet property 6 implies that a complexity metric could increase if a
class is divided into more classes
Possible new set of software metrics for OO design
The suite provides designers and managers with indication of the integrity of
the design
It may serve as a generalized solution when other researchers to develop
metrics for particular purposes or customized environment.

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (7)

Hemajava
HemajavaHemajava
Hemajava
 
Visualizing Textual Data
Visualizing Textual DataVisualizing Textual Data
Visualizing Textual Data
 
I.T.A.K.E Unconference - Mutation testing to the rescue of your tests
I.T.A.K.E Unconference - Mutation testing to the rescue of your testsI.T.A.K.E Unconference - Mutation testing to the rescue of your tests
I.T.A.K.E Unconference - Mutation testing to the rescue of your tests
 
Myanmar Named Entity Recognition with Hidden Markov Model
Myanmar Named Entity Recognition with Hidden Markov ModelMyanmar Named Entity Recognition with Hidden Markov Model
Myanmar Named Entity Recognition with Hidden Markov Model
 
03. HAMS - Project Scheduling
03. HAMS - Project Scheduling03. HAMS - Project Scheduling
03. HAMS - Project Scheduling
 
Prelim Project OOP
Prelim Project OOPPrelim Project OOP
Prelim Project OOP
 
From CasMaCat to SEECAT: Patterns of Interaction in Advanced Computer-Assiste...
From CasMaCat to SEECAT: Patterns of Interaction in Advanced Computer-Assiste...From CasMaCat to SEECAT: Patterns of Interaction in Advanced Computer-Assiste...
From CasMaCat to SEECAT: Patterns of Interaction in Advanced Computer-Assiste...
 

Andere mochten auch

Andere mochten auch (8)

Software Testing Trends & Transformation, Vaidyanathan Ramalingam Director En...
Software Testing Trends & Transformation, Vaidyanathan Ramalingam Director En...Software Testing Trends & Transformation, Vaidyanathan Ramalingam Director En...
Software Testing Trends & Transformation, Vaidyanathan Ramalingam Director En...
 
Software Engineering - Trends & Industry Practices
Software Engineering - Trends & Industry PracticesSoftware Engineering - Trends & Industry Practices
Software Engineering - Trends & Industry Practices
 
Object-Oriented Metrics in Practice
Object-Oriented Metrics in PracticeObject-Oriented Metrics in Practice
Object-Oriented Metrics in Practice
 
In English: Latest Trends in Software Engineering ( Yazılım Mühendisliğinde S...
In English: Latest Trends in Software Engineering (Yazılım Mühendisliğinde S...In English: Latest Trends in Software Engineering (Yazılım Mühendisliğinde S...
In English: Latest Trends in Software Engineering ( Yazılım Mühendisliğinde S...
 
Software Engineering Trends: Vision from Paul Nielsen, SEI
Software Engineering Trends: Vision from Paul Nielsen, SEISoftware Engineering Trends: Vision from Paul Nielsen, SEI
Software Engineering Trends: Vision from Paul Nielsen, SEI
 
Current trends in software engineering
Current trends in software engineeringCurrent trends in software engineering
Current trends in software engineering
 
Software Engineering Trends: Vision from Prof. Raul Vidal (FEUP)
Software Engineering Trends: Vision from Prof. Raul Vidal (FEUP)Software Engineering Trends: Vision from Prof. Raul Vidal (FEUP)
Software Engineering Trends: Vision from Prof. Raul Vidal (FEUP)
 
Testing Metrics
Testing MetricsTesting Metrics
Testing Metrics
 

Ähnlich wie Group 8 presentation_metrics_for_object_oriented_system

Object oriented basics
Object oriented basicsObject oriented basics
Object oriented basics
vamshimahi
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
Aravinth NSP
 

Ähnlich wie Group 8 presentation_metrics_for_object_oriented_system (20)

12th ip CBSE chapter 4 oop in java notes complete
12th ip CBSE  chapter 4 oop in java notes complete12th ip CBSE  chapter 4 oop in java notes complete
12th ip CBSE chapter 4 oop in java notes complete
 
Programming with Objective-C
Programming with Objective-CProgramming with Objective-C
Programming with Objective-C
 
Java sessionnotes
Java sessionnotesJava sessionnotes
Java sessionnotes
 
E3
E3E3
E3
 
OOP
OOPOOP
OOP
 
C#
C#C#
C#
 
Oops concepts
Oops conceptsOops concepts
Oops concepts
 
oo testing.pptx
oo testing.pptxoo testing.pptx
oo testing.pptx
 
Lecture01
Lecture01Lecture01
Lecture01
 
Software Systems as Cities: a Controlled Experiment
Software Systems as Cities: a Controlled ExperimentSoftware Systems as Cities: a Controlled Experiment
Software Systems as Cities: a Controlled Experiment
 
COURSE OUTLINE.pdf
COURSE OUTLINE.pdfCOURSE OUTLINE.pdf
COURSE OUTLINE.pdf
 
Object oriented basics
Object oriented basicsObject oriented basics
Object oriented basics
 
Data Structure Syllabus.pdf
Data Structure Syllabus.pdfData Structure Syllabus.pdf
Data Structure Syllabus.pdf
 
Unit 1 OOSE
Unit 1 OOSE Unit 1 OOSE
Unit 1 OOSE
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
Oops ppt
Oops pptOops ppt
Oops ppt
 
Oop
OopOop
Oop
 
06 InheritanceAndPolymorphism.ppt
06 InheritanceAndPolymorphism.ppt06 InheritanceAndPolymorphism.ppt
06 InheritanceAndPolymorphism.ppt
 
OOSD1-unit1_1_16_09.pptx
OOSD1-unit1_1_16_09.pptxOOSD1-unit1_1_16_09.pptx
OOSD1-unit1_1_16_09.pptx
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Group 8 presentation_metrics_for_object_oriented_system

  • 1. Metrics for Object-Oriented System Group 8 Hung Ho Rui Tang Chuyi Feng Muhammad Yousaf Sarah Makona
  • 2. Content Introduction Basic Definitions Metric Properties For Evaluation Criteria Applied Metrics Suite Conclusion
  • 3. OOA, OOD and OOP Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which may contain data, often known as attributes; and methods.
  • 4. Definitions Object: X = (x, p(x)) x: substantial individual p(x): collection of properties and methods Cohesion: refers to what object (of class) will do Low Cohesion: Does many actions but not focus what it should do High Cohesion: Should focus what it should do Coupling: refers to how related / dependent are objects on each other
  • 5. Definitions Complexity of Object + Large number of properties + Number of compositions Scope of Properties + Depth of Inheritance + Number of Children
  • 6. Metric Properties for Evaluation Criteria 1. Non-coarseness Not every class can have same value for a metric 2. Non-uniqueness (Notion of Equivalence) Two classes can have same metric value 3. Design details are important Even though two classes perform same functions, the details of the design matter in determining the metric for the class
  • 7. Metric Properties for Evaluation Criteria (cont) 4. Monotonicity The metric for the combination of two classes can never be less than the metric for either of the component classes: u(P + Q) > u(P) 5. Non-equivalence of interaction Interaction between P + Q # Q + R 6. Interaction increases complexity When two classes are combined, the interactions increase complexity
  • 8. Applied Metrics Suite 1. Weighted Methods Per Class (WMC) 2. Depth Of Inheritance Tree (DIT) 3. Number Of Children (NOC) 4. Coupling Between Object Classes (CBO) 5. Response For A Class (RFC) 6. Lack Of Cohesion In Methods (LCOM) Examples with project + Site A use C++ language + Site B use Smalltalk language Both 6 applied metrics satisfy property 1, 2, 3, 4, 5 except property 6 fails
  • 9. Applied Metrics Suite 1. Weighted Methods Per Class (WMC) + To predict how much time and effort to develop and maintain class + Large numbers of methods in class will limit possibility of reuse 2.Depth Of Inheritance Tree (DIT) + The deeper of class => More number of method to inherit => complex to predict + The deeper a class is in hierarchy, the greater the reuse of inherited methods
  • 10. Applied Metrics Suite (cont) 3. Number Of Children (NOC) If a class has large number of children => misuse subclassing => require more testing 4. Coupling Between Object Classes (CBO) Excessive coupling => prevent reuse and modular design => difficult maintenance
  • 11. Applied Metrics Suite (cont) 5. Response For A Class (RFC) A large number of method invoked in response => Testing and debugging are complicated => The greater the complexity of the class 6. Lack Of Cohesion In Methods (LCOM) Cohesion promotes encapsulation Low cohesion increase complexity and errors
  • 12. Conclusion Failing to meet property 6 implies that a complexity metric could increase if a class is divided into more classes Possible new set of software metrics for OO design The suite provides designers and managers with indication of the integrity of the design It may serve as a generalized solution when other researchers to develop metrics for particular purposes or customized environment.