Preventive Software Maintenance: The Past, the Present, the Future Nikolaos Tsantalis Computer Science & Software Engineering Consortium for Software Engineering.

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

Homework 3 Solution Lecture Packet 16 © John W. Brackett.
Chapter 2: Software Process
Unification and Refactoring of Clones Giri Panamoottil Krishnan and Nikolaos Tsantalis Department of Computer Science & Software Engineering Clone images.
Ranking Refactoring Suggestions based on Historical Volatility Nikolaos Tsantalis Alexander Chatzigeorgiou University of Macedonia Thessaloniki, Greece.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
MIS 2000 Class 20 System Development Process Updated 2014.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Chapter 4 Quality Assurance in Context
R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Jens Knodel
Alternate Software Development Methodologies
Software Delivery. Software Delivery Management  Managing Requirements and Changes  Managing Resources  Managing Configuration  Managing Defects 
Code Smell Research: History and Future Directions Second PLOW Installment - March 5, Nikolaos Tsantalis Computer Science & Software Engineering.
1 Independent Verification and Validation Current Status, Challenges, and Research Opportunities Dan McCaugherty IV&V Program Manager Titan Systems Corporation.
1 Software Maintenance and Evolution CSSE 575: Session 8, Part 3 Predicting Bugs Steve Chenoweth Office Phone: (812) Cell: (937)
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
March 30, Exploratory Testing Testing Approaches Analytical Information-driven Intuitive Exploratory Design the tests and test concurrently Learn.
Fundamentals of Information Systems, Second Edition
Quality is about testing early and testing often Joe Apuzzo, Ngozi Nwana, Sweety Varghese Student/Faculty Research Day CSIS Pace University May 6th, 2005.
Investigating the Evolution of Bad Smells in Object-Oriented Code Alexander Chatzigeorgiou Anastasios Manakos University of Macedonia Thessaloniki, Greece.
Copyright © 2007 Software Quality Research Laboratory DANSE Software Quality Assurance Tom Swain Software Quality Research Laboratory University of Tennessee.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
Chapter 9 – Software Evolution and Maintenance
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
System Analysis and Design
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Maintaining Information Systems Modern Systems Analysis and Design.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
© S. Demeyer, S. Ducasse, O. Nierstrasz Intro.1 1. Introduction Goals Why Reengineering ?  Lehman's Laws  Object-Oriented Legacy Typical Problems  common.
Identify steps for understanding and solving the
Facts and Fallacies of Software Engineering (Rob Glass) CSE301 University of Sunderland Discussed by Harry R. Erwin, PhD.
Chapter 12: Systems Investigation and Analysis. Agenda  How to Develop a CBIS?  Systems Development Life Cycle (SDLC)  Prototyping  Join Application.
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
Refactoring1 Refactoring DEPARTMENT OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING CONCORDIA UNIVERSITY February 6, 2009.
Feasibility Study Cross-language Clone Analysis Team 2.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki 1 Machine Learning.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Recovering Design Technical Debt from Source Code Comments Department of Computer Science and Software Engineering Concordia University Montreal, Canada.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
CSCI 521 Final Exam Review. Why Establish a Standard Process? It is nearly impossible to have a high quality product without a high quality process. Standard.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Project & Risk Management
Robustness Initiative Jeff Kern NRAO. CASA Robustness and Reliability Number one priority from the CASA User Survey was reliability. – Survey did not.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
Software Engineering Lecture 8: Quality Assurance.
Presented by Lu Xiao Drexel University Quantifying Architectural Debt.
V-Shaped Software Development Life Cycle Model. Introduction: Variation of water fall model. Same sequence structure as water fall model. Strong emphasis.
Objective ICT : Internet of Services, Software & Virtualisation FLOSSEvo some preliminary ideas.
Chapter 16 Maintaining Information Systems. Objectives:  Explain and contrast four types of system maintenance.  Describe factors affecting maintenance.
A Lightweight Business Continuity & Disaster Recovery Plan Motahareh Moravej Issuers’ Affairs Director at CSDI PHD. Student of Computer Engineering, UT.
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
ON “SOFTWARE ENGINEERING” SUBJECT TOPIC “RISK ANALYSIS AND MANAGEMENT” MASTER OF COMPUTER APPLICATION (5th Semester) Presented by: ANOOP GANGWAR SRMSCET,
MIS 2000 Class 20 System Development Process Updated 2016.
 System Requirement Specification and System Planning.
Advanced Software Engineering Dr. Cheng
Steve Chenoweth Office Phone: (812) Cell: (937)
Chapter 14 Maintaining Information Systems
Configuration Management
Information Systems Development
Verification and Validation Overview
Maintaining software solutions
Introduction to Software Engineering
Mcafee updates Mcafee antivirus uses a database of known virus definitions to identify malware and other threats on your computer system. So it is important.
: Clone Refactoring Davood Mazinanian Nikolaos Tsantalis Raphael Stein
Chapter 8 Software Evolution.
Presentation transcript:

Preventive Software Maintenance: The Past, the Present, the Future Nikolaos Tsantalis Computer Science & Software Engineering Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 1

Changes aiming to improve the future maintainability and reliability of the software system. Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 2

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 4

Duplicated Code: “If you see the same code structure in more than one place, … find a way to unify them.” Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 5

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 6

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 7

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 8

Code smell definition for Inappropriate Interface inappropriateInterface(?class,?interface,?subclasses) :- findall(, commonSubclassInterface(?class,?itf,?scs), ?result), removeDuplicates(?result,?nodups), member(,?nodups) Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 9

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 10

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 11

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 12

Treat the improvement of object-oriented design as a search problem in the space of alternative designs The move in the search space is achieved by modeling refactorings ( inheritance-related ) Apply search algorithms using QMOOD as the fitness function ( rank alternative designs ) The outcome is a sequence of refactorings leading to the optimal design Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 13

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 14

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 15

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 16 LIMITATION

Advantages: Feasible and behavior preserving solutions to design problems Ranking and prioritizing solutions based on their expected effect on design quality A more holistic approach for preventive maintenance Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 17

Focused on the automatic detection of refactoring opportunities for 4 major design problems Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 18

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 19

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 20 doStateA(); if state == STATE_A else if state == STATE_B doStateB();

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 21

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 22

Goal : Given two clones, find the optimal way to refactor them: – Matching by minimizing the differences – Explain the rationale of the solution to the user – Apply the solution automatically in a behavior preserving way – Suggest possible design changes to make the clones “refactorable” Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 23

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 24 Since the beginning of 2011 …

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 25

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 26

Technical debt management “Debt” is the effect of incomplete, immature, or inadequate maintenance activities Delayed tasks may bring a short-term benefit ( higher productivity, shorter release time ) Might have to be paid back in the future with “Interest” ( increased effort ) “Principal” is the effort to pay off the debt Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 27

Clone management Tracking clones as project evolves Verifying the consistent modification of clones Updating clones and groups as project evolves Assessing the harmfulness of clones Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 28

Every code smell involves a certain risk for future maintainability Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 29

Likelihood of occurrence of the risky event Exposure of the system to the event Consequence of the event Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 30

Risky events  changes driven by code smells – Ex. 1: Fixing the same bug in a clone group – Ex. 2: Making a method more “envy” to another class Intuition: code that changes frequently due to a design flaw imposes a high risk to the maintainability of a system Likelihood  proneness to code smell driven changes ( estimated from the history of changes ) Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 31

Intuition: the more extensively a module is used, the more extensive the propagation of code smell driven changes to dependent modules Exposure  the number and strength of incoming dependencies ( estimated from static and dynamic analysis ) Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 32

Consequence  cost of code smell driven changes (effort, time, money). From the opposite perspective: Consequence  effect of removing the code smell. Estimated by computing the impact of the corresponding refactoring on metrics. Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 33

Consortium for Software Engineering Research 2013 Spring Meeting, Montréal, Québec, Canada 34