An Approach to Measure Java Code Quality in Reuse Environment Author: Aline Timóteo Professor: Silvio Meira UFPE – Federal University.

Slides:



Advertisements
Similar presentations
Keys to Maximizing Component Reuse: Lessons and Case Studies OReilly Conference on Enterprise Java March 29, 2001 Presented by Gary Baney CTO, Flashline.com.
Advertisements

Metrics for OO Design Distinct & measurable characteristics of OO design:- Size:-it is defined as – population,volume,length & functionality Population.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Case Studies Instructor Paulo Alencar.
Prediction of fault-proneness at early phase in object-oriented development Toshihiro Kamiya †, Shinji Kusumoto † and Katsuro Inoue †‡ † Osaka University.
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 5 Architecture-Driven Component Development.
Object-Oriented Analysis and Design
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Page 1 Building Reliable Component-based Systems Chapter 7 - Role-Based Component Engineering Chapter 7 Role-Based Component Engineering.
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design Third Edition.
1 Software Testing and Quality Assurance Lecture 10 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
Reverse Engineering: Legacy Systems Alexander Endert.
Empirical Validation of OO Metrics in Two Different Iterative Software Processes Mohammad Alshayeb Information and Computer Science Department King Fahd.
RiSE Project: Towards a Robust Framework for Software Reuse Student: Eduardo Santana de Almeida Advisor: Silvio Romero de Lemos Meira Federal University.
An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira Co-advisor: Eduardo Almeida UFPE.
1 Object-Oriented Metrics Renaat Verbruggen School of Computing, Dublin City University.
Eduardo Santana de Almeida, Alexandre Alvaro, Daniel Lucrédio, Antonio Francisco do Prado, Luis Carlos Trevelin Federal University of Pernambuco, Federal.
ORION - A Component-Based Software Engineering Environment
Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common.
Software Metrics *** state of the art, weak points and possible improvements Gordana Rakić, Zoran Budimac Department of Mathematics and Informatics, Faculty.
The Design Discipline.
Chidamber & Kemerer Suite of Metrics
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
BCS 2143 Introduction to Object Oriented and Software Development.
Software Quality Improvements from Removing Code Smells Wes J. Lloyd July 15, 2008 Computer Science Department Colorado State University Dr. Sudipto Ghosh,
Paradigm Independent Software Complexity Metrics Dr. Zoltán Porkoláb Department of Programming Languages and Compilers Eötvös Loránd University, Faculty.
Project Coordinators: Eduardo Santana de Almeida Silvio Romero de Lemos Meira Federal University of Pernambuco Informatics Center Recife Center for Advanced.
An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco
Software Quality Assurance SE Software Quality Assurance What is “quality”?
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
Introduction To Software Component Reuse
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 15b: Product Metrics for Software Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”
The CK Metrics Suite. Weighted Methods Per Class b To use this metric, the software engineer must repeat this process n times, where n is the number of.
1 OO Metrics-Sept2001 Principal Components of Orthogonal Object-Oriented Metrics Victor Laing SRS Information Services Software Assurance Technology Center.
On the Modularity Assessment of Aspect- Oriented Multi-Agent Systems Product Lines: a Quantitative Study Camila Nunes
Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 1 Evaluation of a Business Application Framework Using Complexity.
Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida
Systems Analysis and Design in a Changing World, 3rd Edition
Software Engineering 2 Software Testing Claire Lohr pp 413 Presented By: Feras Batarseh.
Investigating a Semantic Metrics Suite for Object-Oriented Design Dr. Letha Etzkorn (PI) Ms. Cara Stein Dr. Glenn Cox Dr. Sampson Gholston Dr. Dawn Utley.
1 The Modular Structure of Complex Systems Presented by: SeyedMasoud Sadjadi and Wei Zhu David L. Parnas, Paul C. Clement, and David M. Weiss ICSE 1984.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
1 Metrics and lessons learned for OO projects Kan Ch 12 Steve Chenoweth, RHIT Above – New chapter, same Halstead. He also predicted various other project.
An Automatic Software Quality Measurement System.
RiSE Project: Towards a Robust Framework for Software Reuse Eduardo Santana de Almeida Federal University of Pernambuco, Brazil
An Approach to Measure Java Code Quality in Reuse Environment Master: Aline Timóteo Professor: Silvio Meira UFPE – Federal University.
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
Software Waterfall Life Cycle
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design.
Chapter 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
West Virginia University Sherif Yacoub, Hany H. Ammar, and Ali Mili A UML Model for Analyzing Software Quality Sherif Yacoub, Hany H. Ammar, and Ali Mili.
Ontology Support for Abstraction Layer Modularization Hyun Cho, Jeff Gray Department of Computer Science University of Alabama
Metrics "A science is as mature as its measurement tools."
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 OO Technical Metrics CIS 375 Bruce R. Maxim UM-Dearborn.
Software Engineering Object Oriented Metrics. Objectives 1.To describe the distinguishing characteristics of Object-Oriented Metrics. 2.To introduce metrics.
Architecting Complexity HOW UNDERSTANDING COMPLEXITY PROMOTES SIMPLICITY.
ORION - A Component-Based Software Engineering Environment
A Hierarchical Model for Object-Oriented Design Quality Assessment
Assessment of Geant4 Software Quality
Course Notes Set 12: Object-Oriented Metrics
Object-Oriented Metrics
Predicting Fault-Prone Modules Based on Metrics Transitions
Presented by Trey Brumley and Ryan Carter
ORION - A Component-Based Software Engineering Environment
Quality Assurance for Component-Based Software Development
Presentation transcript:

An Approach to Measure Java Code Quality in Reuse Environment Author: Aline Timóteo Professor: Silvio Meira UFPE – Federal University of Pernambuco

Summary Motivation Background  Metrics An Approach to Measure Java Code Quality Main Contributions

Motivation

Motivation Reuse environment [Frakes, 1994]  Process  Components Certification  Metrics  Tools Repository Search engine Domain tools …

Motivation Component Repository promote reuse success [Griss, 1994] Some Repository Requirements  Search  Component publishing  Component manage  IDE Integration  Component Indexing  Security  …

Problem Artifacts quality must be assured by the organization that maintains a repository? [Seacord, 1999]  Many version of a component on the repository  Lack of context In other words… How to minimize reuse to low-quality artifacts ?

Background

Metrics “Software metrics is a method to quantify attributes in software processes, products and projects” [Daskalantonakis, 1992] Metrics Timeline  Age 1: before 1991, where the main focus was on metrics based on the code complexity  Age 2: after 1992, where the main focus was on metrics based on the concepts of Object Oriented (OO) systems

Age 1: Complexity Age 2: Object Oriented

Most Referenced Metrics LOC Cyclomatic Complexity [McCabe, 1976] Chidamber and Kemerer Metrics [Chidamber, 1994] Lorenz and Kidd Metrics [Lorenz, 1994] MOOD Metrics [Brito, 1994]

Problems related to Metrics [Ince, 1988 and Briand, 2002] Metrics Validation  Theoretical Validation Measurement goal Experimental hypothesis Environment or context  Empirical validation Metrics Automation  Different set of metrics implemented  Bad documentation  Quality attributes x Metrics

An Approach to Measure Java Code Quality

An Approach to Measure Java Code Quality Quality Attributes x Metrics Metrics Selection and Specification Quality Attributes measurement

Quality in a Reuse Environment [Etzkorn, 2001] ISO 9126

Quality Attributes x Metrics Quality Attributes Code Attributes LOC Cyclomatic Complexity CK Metrics WMCDITNOCCBORFCLCOM sizex Analysabilitycomplexty xxx XX documentationx complexity xxx XX modularity/ encapsulation X Changeabilitycoupling x X cohesion X inheritance x Stability Testabilitycomplexity xxx XX coupling x X complexidade xxx Xx documentationx Reusability modularity/ encapsulation x coupling X x cohesion x

Quality Attributes x Metrics Quality Attributes Code Attributes Lorenz and Kidd PIMNIMNIVNCMNCVNMONMINMASIXAPPM Analysability sizexxxxx complexty documentation Changeability complexity modularity/ encapsulation coupling cohesion inheritance xxxx Stability Testability complexity coupling Reusability complexidade documentation modularity/ encapsulation coupling cohesion

Quality Attributes x Metrics Quality AttributesCode Attributes MOOD Metrics MHFAHFMIFAIFPF Analysability size complexty documentation Changeability complexity modularity/ encapsulation coupling cohesion inheritance xx Stability Testability complexity coupling Reusability complexity documentation modularity/ encapsulation coupling cohesion

Metrics Selection and Specification - Theoretical Validation - Empirical Validation - Tools -LOC -Cyclomatic Complexity - CK Metrics

Metrics Selection and Specification Response for a Class Definition Short nameRFC Description The response set of a class is a set of methods that can potentially be executed in response to a message received by an object of that class. Calculated by RFC = M + R M = number of methods in the class R = number of remote methods directly called by methods of the class Allowable valueRFC<=50 PrivateNo Analysis PresentationN/A Range of analysisWhen the development cycle is done Analysis procedureIdentify how classes have a highest responsibility ResponsibleMetrics Analyst

Quality Attributes Measurement (QAM) QAM = (the number of metrics that have a allowable value) QAM >= Number of metrics /2 Example: 2,5 <= QAM <= 5 Quality Attribute Code Attribute CK Metrics WMCDITCBORFCLCOM Testability complexityxx xx coupling x x Max Testability = 5 Min Testability = 2,5

Metrics, Quality, Reuse? Store assets  Generate their quality attributes  Store asset and quality attributes In “search time”…  Asset are recovered according search parameters  Quality attributes can be among these parameters

Main Contributions Introduce quality analysis in a repository  Reduce code problem propagation  Highest Reliability Quality attributes x Code metrics  ISO 9126

Current Stage Sate-of-the-art in Software Metrics Approach definition Prototypal Implementation (partial) Integration with B.A.R.T. (next step) Experiment (next step)

Referências [Frakes, 1994] W. B. Frakes and S. Isoda, "Success Factors of Systematic Software Reuse," IEEE Software, vol. 11, pp , [Griss, 1994] M. L. Griss, "Software Reuse Experience at Hewlett-Packard," presented at 16th International Conference on Software Engineering (ICSE), Sorrento, Italy, [Garcia, 2006] V. C. Garcia, D. Lucrédio, F. A. Durão, E. C. R. Santos, E. S. Almeida, R. P. M. Fortes, and S. R. L. Meira, "From Specification to Experimentation: A Software Component Search Engine Architecture," presented at The 9th International Symposium on Component-Based Software Engineering (CBSE 2006), Mälardalen University, Västerås, Sweden, [Etzkorn, 2001] Letha H. Etzkorn, William E. Hughes Jr., Carl G. Davis: Automated reusability quality analysis of OO legacy software. Information & Software Technology 43(5): (2001) [Daskalantonakis, 1992] M. K. Daskalantonakis, “A Pratical View of Software Measurement and Implementation Experiences Within Motorola”, IEEE Transactions on Software Engineering, vol 18, 1992, pp. 998–1010. [McCabe, 1976] T. J. McCabe, “A Complexity Measure”. IEEE Transactions of Software Engineering, vol SE-2, 1976, pp [Chidamber, 1994] S. R. Chidamber, C. F. Kemerer, “A Metrics Suite for Object Oriented Design”, IEEE Transactions on Software Engineering, vol 20, Piscataway - USA, 1994, pp [Lorenz, 1994] M. Lorenz, J. Kidd, “Object-Oriented Software Metrics: A Practical Guide”, Englewood Cliffs, New Jersey - USA, [Brito, 1994] A. F. Brito, R. Carapuça, "Object-Oriented Software Engineering: Measuring and controlling the development process", 4th Interntional Conference on Software Quality, USA, [Ince, 1988] D. C. Ince, M. J. Sheppard, "System design metrics: a review and perspective", Second IEE/BCS Conference, Liverpool - UK, 1988, pp [Briand, 2002] L. C. Briand, S. Morasca, V. R. Basili, “An Operational Process for Goal-Driven Definition of Measures”, Software Engineering - IEEE Transactions, vol 28, 2002, pp [Morasca, 1989] S. Morasca, L. C. Briand, V. R. Basili, E. J. Weyuker, M. V. Zelkowitz, B. Kitchenham, S. Lawrence Pfleeger, N. Fenton, "Towards a framework for software measurementvalidation", Software Engineering, IEEE Transactions, vol 23, 1995, pp [Seacord, 1999] Robert C. Seacord. Software engineering component repositories. Technical report, Software Engineering Institute (SEI), 1999

Aline Timóteo UFPE – Federal University of Pernambuco