International Workshop on Principles of Software Evolution1Vienna, 11 September 2001 Evolution Metrics Tom Mens Programming Technology Lab Vrije Universiteit.

Slides:



Advertisements
Similar presentations
Predictor of Customer Perceived Software Quality By Haroon Malik.
Advertisements

Metrics for Process and Projects
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.
1 Predicting Bugs From History Software Evolution Chapter 4: Predicting Bugs from History T. Zimmermann, N. Nagappan, A Zeller.
OORPT Object-Oriented Reengineering Patterns and Techniques 7. Problem Detection Prof. O. Nierstrasz.
1 Software Maintenance and Evolution CSSE 575: Session 8, Part 3 Predicting Bugs Steve Chenoweth Office Phone: (812) Cell: (937)
Swami NatarajanJune 10, 2015 RIT Software Engineering Activity Metrics (book ch 4.3, 10, 11, 12)
Software Quality Metrics
© S. Demeyer, S. Ducasse, O. Nierstrasz Duplication.1 7. Problem Detection Metrics  Software quality  Analyzing trends Duplicated Code  Detection techniques.
Introduction to Software Evolution and Maintenance
Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -
SE 450 Software Processes & Product Metrics Activity Metrics.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software maintenance Managing the processes of system change.
 2004 by SEC Chapter 9 Software Maintenance. 2  2004 by SEC 9.1 Software Evolution.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
1 Software Maintenance and Evolution CSSE 575: Session 8, Part 2 Analyzing Software Repositories Steve Chenoweth Office Phone: (812) Cell: (937)
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Quality assurance of non- functional requirements Mika Mäntylä TKK/SoberIT/SPRG.
Object-oriented Software Engineering with Reuse Contracts Koen De Hondt, Carine Lucas, Kim Mens, Tom Mens, Patrick Steyaert, Roel Wuyts Programming Technology.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software change  Managing the processes of software system change.
Evaluation of software engineering. Software engineering research : Research in SE aims to achieve two main goals: 1) To increase the knowledge about.
© S. Demeyer, S. Ducasse, O. Nierstrasz Intro.1 1. Introduction Goals Why Reengineering ?  Lehman's Laws  Object-Oriented Legacy Typical Problems  common.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Chapter 19: Quality Models and Measurements  Types of Quality Assessment Models  Data Requirements and Measurement  Comparing Quality Assessment Models.
Review for the Final Exam CSCI Software Project Management.
Principles and Techniques of Evolutionary Architecture Rebecca Parsons Chief Technology Officer ThoughtWorks.
Chapter 11 Maintaining the System System evolution Legacy systems Software rejuvenation.
On the Modularity Assessment of Aspect- Oriented Multi-Agent Systems Product Lines: a Quantitative Study Camila Nunes
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Lucian Voinea Visualizing the Evolution of Code The Visual Code Navigator (VCN) Nunspeet,
1 Evaluating Code Duplication Detection Techniques Filip Van Rysselberghe and Serge Demeyer Lab On Re-Engineering University Of Antwerp Towards a Taxonomy.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,
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.
SOFTWARE METRICS. Software Process Revisited The Software Process has a common process framework containing: u framework activities - for all software.
SFWR ENG 3KO4 Slide 1 Management of Software Engineering Chapter 8: Fundamentals of Software Engineering C. Ghezzi, M. Jazayeri, D. Mandrioli.
Software Evolution Program evolution dynamics Software maintenance Complexity and Process metrics Evolution processes 1.
A Metrics Program. Advantages of Collecting Software Quality Metrics Objective assessments as to whether quality requirements are being met can be made.
Evolution in Open Source Software (OSS) SEVO seminar at Simula, 16 March 2006 Software Engineering (SU) group Reidar Conradi, Andreas Røsdal, Jingyue Li.
CGI3: Current Status Common Goals and Infrastructures CGI3: Infrastructure Jonas Mellin.
WERST – Methodology Group
1 Experience from Studies of Software Maintenance and Evolution Parastoo Mohagheghi Post doc, NTNU-IDI SEVO Seminar, 16 March 2006.
LaQuSo is an activity of Technische Universiteit Eindhoven SQuAVisiT: A Software Quality Assessment and Visualisation Toolset Serguei Roubtsov, Alex Telea,
Advanced Software Engineering Lecture 4: Process & Project Metrics.
Object-Oriented (OO) estimation Martin Vigo Gabriel H. Lozano M.
1 Predicting Classes in Need of Refactoring – An Application of Static Metrics Liming Zhao Jane Hayes 23 September 2006.
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
Review for the Final Exam CSCI Software Project Management.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Objective ICT : Internet of Services, Software & Virtualisation FLOSSEvo some preliminary ideas.
University of Waterloo Exploring Structural Change and Architectural Evolution Qiang Tu and Michael Godfrey Software Architecture Group (SWAG) University.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Steve Chenoweth Office Phone: (812) Cell: (937)
Pragmatics 4 Hours.
Software Evolution Techniques
Software Metrics 1.
The Systems Engineering Context
Programming Technology Lab, VUB
Product reliability Measuring
Software Maintenance PPT By :Dr. R. Mall.
Predicting Fault-Prone Modules Based on Metrics Transitions
Software Metrics “How do we measure the software?”
Introduction Software maintenance:
Presentation transcript:

International Workshop on Principles of Software Evolution1Vienna, 11 September 2001 Evolution Metrics Tom Mens Programming Technology Lab Vrije Universiteit Brussel Belgium Serge Demeyer Lab on Re-Engineering Universiteit Antwerpen Belgium

International Workshop on Principles of Software Evolution2Vienna, 11 September 2001 Goals  Study existing research literature on evolution metrics to  classify existing approaches/techniques based on their purpose  compare existing empirical studies to identify open problems and future research trends

International Workshop on Principles of Software Evolution3Vienna, 11 September 2001 Empirical approaches  have been used to  estimate maintenance cost, effort and productivity  predict/estimate maintainability, reliability,...  predict improvements/degradations in quality/structure  identify trends and change points in evolutionary behaviour  identify (un)stable parts of the software  identify the need for reengineering/restructuring  understand the nature of software evolution processes

International Workshop on Principles of Software Evolution4Vienna, 11 September 2001 Purpose of evolution metrics  Predictive versus retrospective analysis of the software  Predictive (before evolution) use previous and current releases to predict changes in future releases (what, where, how, how much, how big,...)  Retrospective (after evolution) compare different releases to  understand the evolution (which kind, why)  detect improvements/degradations of quality  How versus what and why (cf. Lehman and Ramil)  What and why: study nature and properties of evolution  How: improve software evolution process

International Workshop on Principles of Software Evolution5Vienna, 11 September 2001 Purpose of evolution metrics  Classify based on parts of software that are affected  Evolution-critical parts need to be evolved due to  poor quality, incomplete code, bad structure, unused code, duplicated code, overly complex code  Evolution-prone parts are likely to evolve  correspond to highly volatile software requirements (detect by examining release histories)  Evolution-sensitive parts have high estimated change impact  e.g., highly-coupled parts

International Workshop on Principles of Software Evolution6Vienna, 11 September 2001 Goals  Study existing research literature on evolution metrics to  classify existing approaches/techniques based on their purpose  compare existing empirical studies to identify open problems and future research trends

International Workshop on Principles of Software Evolution7Vienna, 11 September 2001 Long-term evolution studies Ramil&al00Burd&MunroGall&al98Graves&al00Perry&al98Godfrey&al00 software sizelargelarge 300 KLOC very large 10MLOC very large 1.5 MLOC very largevery large 2.2 MLOC kind of datachange historyC source code release database change history C source code granularitycoarse: subsystem, module fine: function, function call coarse: system, subsystem, module coarse: module, feature, modif. req. coarse: feature, modif. req., file change fine: LOC availabilityproprietarypublic domainproprietary open source time scale10 yearslong21 monthsseveral years12 years6 years # releases?308 major, 12 minor > 1 / year12 US, 15 international 34 stable, 62 development # cases purposepredictive retrospectivepredictiveretrospective analysisstatisticalhuman interpretation statisticalstatistical, visual visual, human interpretation representativ e ?probably for C code (GNU) ?? for highly-reliable embedded real- time systems ?

International Workshop on Principles of Software Evolution8Vienna, 11 September 2001 Short-term evolution studies Mattsson&al99Demeyer&al99Demeyer&al00Antoniol&al99Basili&al96 software sizemedium 70<NOC<600 medium 500<NOC<800 medium 100<NOC<1000 medium 120<NOC<135 medium NOC=180 5 < KLOC < 14 kind of dataC++ source codeSmalltalk source code C++ source code granularitymedium: classesfine: classes, methods, … fine: classes, methods, LOC fine: classes, methods, … availability1 proprietary & 2 commercial commercial1 commercial, 2 public domain 1 public domainacademic time scaleshort< 4 yearsshortunknownvery short # releasesbetween 2 and 53between 2 and 47 major, 24 minor 1 # cases31318 purposepredictiveretrospective predictive analysishuman interpretation statistical representative?for OO frameworks for refactored OO frameworks probably for C++ code (GNU) No. Too small, too academic

International Workshop on Principles of Software Evolution9Vienna, 11 September 2001 Comparison of approaches Short-term evolutionLong-term evolution software size medium(very) large kind of data OO source codechange management database availability commercial, public domain proprietary granularity of metrics fine or mediumcoarse time scale < 5 years> 2 years # releases < 10> 10 # case studies between 1 and 31 analysis of results human, visualstatistical, visual representativeness limitedoften

International Workshop on Principles of Software Evolution10Vienna, 11 September 2001 Need more work on...  Evolution metrics  must be precise and unambiguous  must be empirically validated (e.g., what constitute good coupling and cohesion metrics)  are preferrably language independent  at which level of granularity?  Scalability  metrics require enormous amount of data about software  becomes even worse when studying a release history  visualisation and statistical techniques may help

International Workshop on Principles of Software Evolution11Vienna, 11 September 2001 Need more work on...  Empirical validation  validate on sufficiently large set of realistic cases  take care with human interpretation  ensure replicability  common benchmark of cases to compare experimental results  Compare evolutive nature of software based on  Development process (open source vs traditional)  Application domain (telecom, e-commerce,...)  Problem domain (GUI, embedded, distributed, real-time,...)  Solution domain (framework, program, library,...)  Process issues  How can we predict/estimate productivity, cost, effort, time,...

International Workshop on Principles of Software Evolution12Vienna, 11 September 2001 Need more work on...  Measuring software quality  How can we detect decreases/increases in quality?  How can we express quality in terms of software metrics?  Understanding evolution  Can we detect the kind of evolution?  Can we reconstruct the motivation behind a certain evolution?  Data gathering  Often, limited amount of data is available from previous releases  Use change-based instead of state-based CM tools  Document as much decisions/assumptions/... as possible