Automated Software Maintainability through Machine Learning by Eric Mudge.

Slides:



Advertisements
Similar presentations
Pat Langley Computational Learning Laboratory Center for the Study of Language and Information Stanford University, Stanford, California
Advertisements

Configuration management
Fei Xing1, Ping Guo1,2 and Michael R. Lyu2
SBSE Course 3. EA applications to SE Analysis Design Implementation Testing Reference: Evolutionary Computing in Search-Based Software Engineering Leo.
SAK5102 SOFTWARE EVALUATION Semester II 2008/ credits Tuesday 6.30 pm – 9.30 pm (BK1) Assoc. Prof Dr. Abdul Azim Abd Ghani 1.
Software Quality Metrics
Software Metrics II Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
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.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
28/06/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestur 42 Maintainability Index Revisited.
Methodology for Architectural Level Reliability Risk Analysis Lalitha Krothapalli CSC 532.
This chapter is extracted from Sommerville’s slides. Text book chapter
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management 1.
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Refactoring.
Software System Engineering: A tutorial
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
Software Measurement & Metrics
Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”
Basic of Software Testing Presented by The Smartpath Information System An ISO 9001:2008 Certified Organization
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
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.
Software Engineering 2 Software Testing Claire Lohr pp 413 Presented By: Feras Batarseh.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Enabling Reuse-Based Software Development of Large-Scale Systems IEEE Transactions on Software Engineering, Volume 31, Issue 6, June 2005 Richard W. Selby,
SOFTWARE ENGINEERING1 Introduction. SOFTWARE ENGINEERING2 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will.
Computing and SE II Chapter 15: Software Process Management Er-Yu Ding Software Institute, NJU.
Chapter 3: Software Project Management Metrics
Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
Software Evolution Program evolution dynamics Software maintenance Complexity and Process metrics Evolution processes 1.
Xusheng Xiao North Carolina State University CSC 720 Project Presentation 1.
CS532 TERM PAPER MEASUREMENT IN SOFTWARE ENGINEERING NAVEEN KUMAR SOMA.
Architecture Analysis Techniques
“Isolating Failure Causes through Test Case Generation “ Jeremias Rößler Gordon Fraser Andreas Zeller Alessandro Orso Presented by John-Paul Ore.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
CSC 480 Software Engineering Testing - I. Plan project Integrate & test system Analyze requirements Design Maintain Test units Implement Software Engineering.
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 ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
CIS 4251 / CIS 5930 SOFTWARE DEVELOPMENT Fall 1999 Sept. 1, 1999 Marge Holtsinger.
DevCOP: A Software Certificate Management System for Eclipse Mark Sherriff and Laurie Williams North Carolina State University ISSRE ’06 November 10, 2006.
CS223: Software Engineering Lecture 32: Software Maintenance.
 System Requirement Specification and System Planning.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Software Test Metrics When you can measure what you are speaking about and express it in numbers, you know something about it; but when you cannot measure,
Static Software Metrics Tool
Overview Software Maintenance and Evolution Definitions
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software Metrics 1.
John D. McGregor Session 9 Testing Vocabulary
Introduction SOFTWARE ENGINEERING.
How to Predict More with Less: Defect Prediction Using Machine Learners in an Implicitly Data Starved Domain Kim Kaminsky Gary D. Boetticher Department.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software Metrics Validation using Version control
Software maintenance.
Software metrics.
Chapter 19 Technical Metrics for Software
Chapter 8 Software Evolution.
Methodology for Architectural Level Reliability Risk Analysis
Chapter 26 Estimation for Software Projects.
Chapter 1: Software and Software Engineering
Presentation transcript:

Automated Software Maintainability through Machine Learning by Eric Mudge

Software Maintainability IEEE Definition - “Software maintenance is the process of modifying a software system or component after delivery to correct faults, improve performances or other attributes, or adapt to a changed environment." Expensive % of current software engineers are doing a defined maintenance task. " THE ECONOMICS OF SOFTWARE MAINTENANCE IN THE TWENTY FIRST CENTURY" by Capers Jones

Motivation Current software maintenance done by hand. - Code Review - Pair Programming - Metrics Testing and Quality Review Goal is to reduce man hours spent on software maintenance More time on new products More job excitement More Profits

Previous Work Most work takes the form of predicting future costs : Empirically Guided Software Development Using Metric-Based Classification Trees (1990) by A Porter, R Selby Machine learning approaches to estimating software development effort (1995) Srinivasan, K. Fisher, D. Software cost estimation using an Albus perceptron (1998) by Bill Samson, David Ellison and Pat Dugard Using Machine Learning to Predict Project Effort: Empirical Case Studies in Data-Starved Domains (2001) by Gary D. Boetticher

Metrics McCabes Cyclometric Complexity - Measures predicate depth Halsteads Measures of Volume and Effort - Dependent on number of unique operands/operators and total numbers of operands/operators Maintainability Index - Kurt Welker, Paul Oman, and Gerald Atkinson - Combination of Total LOC, McCabe, Halstead, (Comments) - Gives Reliable Maintenance Metric

Search Based Software Engineering Use of genetic programming, and other search based techniques to solve software engineering problems Applied to other problems such as architecture design, and designing of test data Next step in software engineering

Proposed Approach Use Genetic Programming and the maintainability metric as a fitness function in order to automatically increase the maintainability of code Begin on a functional level using procedural metrics rather than object oriented metrics Next step would be to improve system level, including refactoring

Practicalities Utilize Resource Standard Metrics software Necessary to be able to modify code such that functional outputs remain constant Use opensource or commercial Genetic Programing packages Prompt areas in code for comments based on complexity of specific sections Achieve real maintenance improvements rather than numerical improvements

Evaluation Direct increase in the maintainability index will be the goal Human evaluation of whether software has actually become more maintainable

Method for Completion 1) Figure out intricacies of genetic programming 2) Merge Genetic Programming with metrics software as fitness function 3) Test on software, tweak GP to increase performance 4) Profit.

QUESTIONS?!