Presentation is loading. Please wait.

Presentation is loading. Please wait.

Automated Software Maintainability through Machine Learning by Eric Mudge.

Similar presentations


Presentation on theme: "Automated Software Maintainability through Machine Learning by Eric Mudge."— Presentation transcript:

1 Automated Software Maintainability through Machine Learning by Eric Mudge

2 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

3 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

4 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

5 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

6 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

7 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

8 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

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

10 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.

11 QUESTIONS?!


Download ppt "Automated Software Maintainability through Machine Learning by Eric Mudge."

Similar presentations


Ads by Google