automated software maintainability through machine learning by eric mudge

11
Automated Software Maintainability through Machine Learning by Eric Mudge

Upload: gyles-hood

Post on 17-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Automated Software Maintainability through Machine Learning by Eric Mudge

Automated Software Maintainability through

Machine Learningby Eric Mudge

Page 2: 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 - 77-78% of current software engineers are doing a defined maintenance task. "THE ECONOMICS OF SOFTWARE MAINTENANCE IN THE TWENTY                                                                                FIRST CENTURY" by Capers Jones

Page 3: Automated Software Maintainability through Machine Learning by Eric Mudge

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

Page 4: Automated Software Maintainability through Machine Learning by Eric Mudge

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

Page 5: Automated Software Maintainability through Machine Learning by Eric Mudge

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

Page 6: Automated Software Maintainability through Machine Learning by Eric Mudge

Search Based Software EngineeringUse 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

Page 7: Automated Software Maintainability through Machine Learning by Eric Mudge

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 

Page 8: Automated Software Maintainability through Machine Learning by Eric Mudge

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

Page 9: Automated Software Maintainability through Machine Learning by Eric Mudge

Evaluation

Direct increase in the maintainability index will be the goal

Human evaluation of whether software has actually become more maintainable

Page 10: Automated Software Maintainability through Machine Learning by Eric Mudge

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.

Page 11: Automated Software Maintainability through Machine Learning by Eric Mudge

QUESTIONS?!