1 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, 12.02.2003 Towards an Automatic Approach for Quality.

Slides:



Advertisements
Similar presentations
Conceptualization and Measurement
Advertisements

MGT-491 QUANTITATIVE ANALYSIS AND RESEARCH FOR MANAGEMENT
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.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
CS 355 – Programming Languages
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
OORPT Object-Oriented Reengineering Patterns and Techniques 7. Problem Detection Prof. O. Nierstrasz.
July 11 th, 2005 Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 16, 17 and 18 Fred Durão.
Object-Oriented Metrics. Characteristics of OO ● Localization ● Encapsulation ● Information hiding ● Inheritence ● Object abstraction.
Software Quality Metrics
The Architecture Design Process
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Object-Oriented Metrics
- 1 - Component Based Development R&D SDM Theo Schouten.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
1 Program Comprehension through Dynamic Analysis Visualization, evaluation, and a survey Bas Cornelissen (et al.) Delft University of Technology IPA Herfstdagen,
Chapter 24 - Quality Management 1Chapter 24 Quality management.
Course Instructor: Aisha Azeem
Software Process and Product Metrics
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
UML and Object Oriented Concepts
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Chapter : Software Process
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
UML - Development Process 1 Software Development Process Using UML (2)
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
Slide 1 Wolfram Höpken RMSIG Reference Model Special Interest Group Second RMSIG Workshop Methodology and Process Wolfram Höpken.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Refactoring.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Software Project Management Lecture # 3. Outline Chapter 22- “Metrics for Process & Projects”  Measurement  Measures  Metrics  Software Metrics Process.
Generative Programming. Automated Assembly Lines.
1 Introduction to Software Engineering Lecture 1.
Requirements Engineering Methods for Requirements Engineering Lecture-30.
1 Object-Oriented Design in Practice. Could/Should We Do Better? Dr. Radu Marinescu Timişoara, Object-Oriented Design in Practice. Could/Should.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
An Automatic Software Quality Measurement System.
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
Chapter 2 Doing Sociological Research Key Terms. scientific method Involves several steps in research process, including observation, hypothesis testing,
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
1 Report on results of Discriminant Analysis experiment. 27 June 2002 Norman F. Schneidewind, PhD Naval Postgraduate School 2822 Racoon Trail Pebble Beach,
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
Information, Analysis, and Knowledge Management in the Baldrige Criteria Examines how an organization selects, gathers, analyzes, manages, and improves.
A Metrics Program. Advantages of Collecting Software Quality Metrics Objective assessments as to whether quality requirements are being met can be made.
PRINCIPLES OF GOOD DESIGN 12/7/ Assignment 4 – Deadline 28 Nov.  Read an article placed in generalshare course folder  Point: Design Patterns.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Formal Specification: a Roadmap Axel van Lamsweerde published on ICSE (International Conference on Software Engineering) Jing Ai 10/28/2003.
Software Architecture in the Future 1960s. Assembly languages, subroutines, semicolon as connectors 1970s. Structuring of programs to achieve qualities.
Diagnosing Design Problems in Object Oriented Systems Adrian Trifu, Radu Marinescu Proceedings of the 12th IEEE Working Conference on Reverse Engineering.
1 Presentation Methodology Summary B. Golden. 2 Introduction Why use visualizations?  To facilitate user comprehension  To convey complexity and intricacy.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE
2000 Research Overview Dr. Kim Mens Programming Technology Lab Vrije Universiteit Brussel.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
Coupling-based Criteria for Integration Testing Journal of Software Testing, Verification, and Analysis, 8(3): , September 1998, Jenny Jin and Jeff.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
1 Good Object-Oriented Design Dr. Radu Marinescu Lecture 4 Introduction to Design Patterns.
CS223: Software Engineering Lecture 21: Unit Testing Metric.
Profiling: What is it? Notes and reflections on profiling and how it could be used in process mining.
A Hierarchical Model for Object-Oriented Design Quality Assessment
Object-Oriented Metrics
Design Tips.
Automated Analysis and Code Generation for Domain-Specific Models
INTRODUCTION TO QUALITY
Presentation transcript:

1 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, Towards an Automatic Approach for Quality Improvement in Object-Oriented Design Dr. Radu Marinescu

2 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, Problem Statement  Numerous large-scale OO systems with signs of "rotting design"  monolithic, inflexible, fragile, etc.  Discarding these systems is not an option !  high business value and large scale  reuse and maintenance necessary  Design Flaws – an invariant issue in software  time pressure during development  permanent change of requirements How to correlate external signs of poor quality and the occurrence of concrete structural design flaws?

3 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, Research Goal Develop methods, techniques and tools that provide a proper mapping between external quality attributes and the internal, structural characteristics of object-oriented design. Central focus is to support the process of quality assessment and improvement for existing object-oriented systems

4 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, Design Flaws...  Exclusive Focus on Structural Flaws  Design Fragments  i.e. methods, classes, modules (subsystems)  Need criteria for high-quality design  design rules, principles and heuristics etc.  also negative rules (e.g. "bad-smells") … are structural characteristics of design fragments that express deviations from a given set of criteria typifying a high-quality design.

5 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, Detection of Design Problems Problem Detection  The process of identifying the parts of a software system affected by a particular design flaw  It‘s not easy!  manual and empirical  time-expensive and non-scalable  hard to quantify design rules and principles.... "Measuring" the Design  map source-code entities to numerical values  used as quality indicators Idea: Use metrics to detect design problems!

6 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, Problems with Software Measurement Definitions of Metrics Mapping attributes of a software product to numeric values [Fent97] Imprecise, confusing, or conflicting definitions Interpretation Models Interpretation level is too fine-grained to lead to design decisions metrics values are like symptoms indicate an abnormality, but can’t indicate the cause reduces the relevance of measurement results There is a large gap between what we do measure and what we should measure! Define mechanism for higher-level interpretation of metrics!

7 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, The measurable expression of a rule, by which design fragments that are conformant to the rule can be identified in the source-code Detection Strategy  Generic mean for defining metrics-based design rules  use metrics together!  Based on mechanisms of filtering and composition

8 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara,  Metrics  measure internal characteristics  entity  value pairs  Composition Operators  articulate the composition of a detection rule  i.e. compose metrics in a rule  Three operators used: and, or, butnotin  Filtering Mechanism  statistical functions that return a subset of a data-set  Semantical Filters (e.g. HigherThan or BottomValues )  Statistical Filters (e.g. BoxPlots ) Anatomy of a Detection Strategy

9 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, Quantified Design Flaws  Around 20 design flaws quantified as DS  Different abstraction levels  method to omission of patterns  Different literature sources  Relevant design flaws

10 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, Sources (Java, C++) Meta-Model parsing using Metrics Detection Strategy (*.sod) Definitions of Statistical Outliers 1.. n 1.. m executing with PRODEOOS List of Candidates manual inspection Process of Design Inspection

11 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, The Unified Meta-Model  Design information needed in the DS  i.e used by the metrics  Declarations  classes, variables and methods  Inheritance relations  Cross-referencing information  Variable accesses  Method invocations  Contains information about packages  for C++ the directory structure  neccessary for the strategies at the subsystem level  For Java and C++  TableGen and MeMoJ-Tables

12 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, What did we gain so far …  Detection Strategy proper mechanism for higher-level interpretation of measurements  Methodology for quantifying design-related rules  Quantified violations of design principles, rules and heuristics around 20 strategies for design flaws  from several literature sources different abstraction levels  from method to subsystem level Build bridge between quality attributes and design problems Prove that the approach is scalable and accurate … and what is left?

13 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, Design principles and rules are implicit  Hard to construct A Classical Quality Model  Metrics are too fine-grained  Hard to interpret

14 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, Factor-Strategy Quality Model Lack of Bridge Data Classes God Classes Int.Seg Principle WMC TCC CIW NOAM AUF NOPA COC AOFD NOD LR Principles, rules, heuristics quantified in Detection Strategies Quality decomposed in Factors communicates with

15 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, The Case-Study  A Re-engineered Case-Study  two versions of the an industrial business application  second version re-engineered for maintainability purposes  Relevance of the Case-Study  Size (~100KLOC)  proper to evaluate scalability of approach  Before-After reengineering scenario  evaluate accuracy of DS  Clear reengineering goal  evaluate relevance of FS models  Size Characteristics

16 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, Automatic Evaluation Method Assumption 1  All major design problems in SV1 were eliminated during the reengineering process  not present in SV2 Assumption 2  Maintainability level in SV2 is higher (better) than in SV1

17 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, Automatic Evaluation of Strategies — Results  Accuracy Rate: between 50% and 81%  Average Accuracy Rate: 64.5 %  Average Number of Suspects: ~ 15% of entities reported suspect

18 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, Evaluation of FS Quality Model  Defined a Factor-Strategy quality model for maintainabilitymaintainability  Evaluation mechanisms  Score = nr. of suspects  Qualifier = “grade”  1-10 scale  based on Score  Compared results between the two versions  based on Assumption 2  expected improvement in SV2

19 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, Why is the FS Model Better ?  See the problems not the numbers! problems expressed in terms of design rules that are violated interpretation is much easier  Easier to improve the quality of the design understand the causes of problems easier to correlate with “correction strategies”

20 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, Summary  A mechanism for quantifying design-related rules the “Detection Strategy” concept  Suite of detection strategies for finding design flaws quantification of well-known design flaws and…”smells”  Described a novel concept of quality model based on detection strategies the bridge between qualitative and quantitative statements  Strong tool support for the entire approach high degree of automatization and scalability  Concrete evaluation of the concepts, methods, techniques

21 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara,  Refinement  The issue of threshold values [Diploma Thesis in progress]  define a tuning-machine  Unify means of expression [Master Thesis in progress]  SAIL language  Applicability  Bridge the gap between automated problem detection and problem correction [PhD in progress]  Integrate techniques in the development process  Migration  Adapt the approach to emerging technologies (e.g. EJB)  …and programming paradigms (e.g. AOP)  Refinement  Applicability  Migration Perspectives

22 Towards an Automated Approach for Quality Improvement in OO Design Dr. Radu Marinescu Timişoara, Thank you!