Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2070821.2070826acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmaletsConference Proceedingsconference-collections
research-article

Evolution of legacy system comprehensibility through automated refactoring

Published: 12 November 2011 Publication History

Abstract

Software engineering is a continually evolving discipline, wherein researchers and members of industry are working towards defining and refining what are known as "best practices." Best practices are the set of known correct engineering techniques that lead to quality software.
When a software artifact is produced, it becomes temporally locked into a single instantiation of these best practices at a given point in time. If such software is not maintained in such a way as to keep it current with the evolution of practice, then there is a good chance that subsequent engineers may not understand the design choices made. There are known techniques, called refactorings, which allow for structural changes to software without altering the outward appearance and behavior, thus maintaining the intent of the original design. Unfortunately, refactoring requires an engineer to both understand the techniques to be applied and the code to which they are applied to. This is not always feasible.
We have developed an automated system utilizing Evolutionary Algorithms to manipulate refactorings correctly without requiring an underlying understanding of the software. This then allows for sustained levels of quality of evolving software systems. The understandability, maintainability, and reusability of the software regenerate as best practices evolve.

References

[1]
Afenzeller, M., Winkler, S., Wagner, S., and Andreas, B. 2009. Genetic Algorithms and Genetic Programming: Modern Concepts and Practical Applications, 1--70. Chapman & Hall/CRC Taylor & Francis Group, Boca Raton, FL.
[2]
Bieman, J. M., Straw, G., Wang, H., Munger, P. W., and Alexander, R., 2003. Design Patterns and Change Proneness: An Examination of Five Evolving Systems, In Proceedings of the 9th International Software Metrics Symposium (September 2003). METRICS'03. IEEE. Sydney, Australia, 40--49. DOI= http://doi.ieeecomputersociety.org/10.1109/METRIC.2003.1232454
[3]
Bodhuin, T., Canfora, G., Troiano, L., 2007. SORMASA: A tool for Suggesting Model Refactoring Actions by Metrics-led Genetic Algorithm, In Proceedings of the 1st Workshop on Refactoring Tools (July 30 - August 03, 2007, Berlin). WRT 2007. 23--24.
[4]
Bowman, M., Briand, L. C., and Labiche, Y., 2007. Multi-objective Genetic Algorithm to Support Class Responsibility Assignment, Proceedings of the IEEE International Conference on Software Maintenance (Paris, France, October 2--5, 2007), ICSM 2007. Paris, France, 124--133.
[5]
Budinsky, F., Steinburg, D., Merks, E., Ellersick, R., and Grose, T. J., 2004. Eclipse Modeling Framework: A Developer's Guide, 89--280. Pearson Education, Inc. Upper Saddle River, NJ.
[6]
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., and Stal, M., 1996. Pattern-Oriented software Architecture: A System of Patterns, 25--193. John Wiley & Sons Ltd. Hoboken, NJ.
[7]
Campbell, D. and Cook, T. D., 1979. Quasi-experimentation: Design and Analysis Issues for Field Settings. Houghton Mifflin Company. Boston, MA.
[8]
Campbell, D. and Stanley, J., 1963. Experimental and Quasi-experimental Designs for Research. Rand-McNally. Chicago, IL.
[9]
Chidamber, S. R. and Kemerer, C. F., 1994. A Metrics Suite for Object Oriented Design. IEEE Transactions on Software Engineering, 35, 6 (June 1994), 476--493.
[10]
Chisalita-Cretu, C., 2009. A Multi-objective Approach for Entity Refactoring Set Selection Problem, In Proceedings of the Second International Conference on the Applications of Digital Information and Web Technologies (London, England, August 4--6, 2009). ICADIWT'09. 790--795. DOI=http://dx.doi.org/10.1109/ICADIWT.2009.5273850
[11]
Fenton, N. E. and Pfleeger S. L., 1998. Software Metrics: A Rigorous and Practical Approach, Revised, 2nd ed. PWS Publishing Co. Boston, MA.
[12]
Fowler, M., 200. Refactoring: Improving the Design of Existing Code, 27--100. Addison-Wesley. New York, NY.
[13]
Gamma, E., Helm, R., Johnson, R., and Vlissides, J., 1995. Design Patterns: Elements of Reusable Object-Oriented Software, 79--345. Pearson Education, Inc. Upper Saddle River, NJ.
[14]
Griffith, I., Wahl, S. and Izurieta, C., 2011.TrueRefactor: An Automated Refactoring Tool to Improve Legacy System and Application Comprehensibility, To appear in Proceedings of the ISCA 24rd International Conference on Computer Applications in Industry and Engineering.
[15]
Kästner, C., Kuhlemann, M., and Batory, D., 2007. Automating Feature-Oriented Refactoring of Legacy Applications. In Proceedings of the 1st Workshop on Refactoring Tools (Berlin, Germany, July 30 - August 03, 2007). WRT 2007. 63--64.
[16]
Kerievsky, J., 2005. Refactoring to Patterns, 9--21. Pearson Education, Inc. Upper Saddle River, NJ.
[17]
Li, W. and Henry, S., 1993. Object-oriented Metrics that Predict Maintainability. J. Sys. Soft., 1993, 23, 2, 111--122. DOI= http://dx.doi.org/10.1016/0164-1212(93)90077-B
[18]
Munro, M. J., 2005. Product Metrics for Automatic Identification of "Bad Smell" Design Problems in Java Source-code, In Proceedings of the 11th IEEE International Software Metrics Symposium (Como, Italy, September 19--22, 2005). METRICS'05. 15. DOI= http://doi.ieeecomputersociety.org/10.1109/METRICS.2005.38
[19]
O'Keeffe, M. and Ó Cinnéide, M., 2008. Search-Based Refactoring: an empirical study. J. Soft. Maint., 20, 5, 345--364. DOI= http://dx.doi.org/10.1002/smr.378
[20]
O'Keeffe, M. and Ó Cinnéide, M., 2006. Search-based Software Maintenance, In Proceedings of the 10th European Conference on Software Maintenance and Reengineering (Bari, Italy, March 22--24, 2006), CSMR 2006, 249--260, DOI=http://dx.doi.org/10.1109/CSMR.2006.49.
[21]
Otero, F. E. B., Johnson, C. G., Freitas, A. A., and Thompson, S. J., 2010. Refactoring in Automatically Generated Programs. In Proceedings of the 2nd International Symposium on Search Based Software Engineering (Benevento, Italy, September 7--9, 2010). SSBSE 2010.
[22]
Perez, J. and Crespo, Y., 2007. A Refactoring Discovery Tool based on Graph Transofrmation. Proceedings of the 1st Workshop on Refactoring Tools (Berlin, Germany, July 30 - August 03, 2007). WRT 2007. 7--9.
[23]
Pressman, R. S., 2010. Software Engineering: A Practitioner's Approach, 7th ed., 613--44. McGraw-Hill. New York, NY.
[24]
Roperia, N., JSmell: A Bad Smell Detection Tool for Java Systems, UMI Order Number: UMI Order No. 1466306, California State University.
[25]
Russell, S. and Norvig, P., 2010. Artificial Intelligence: A Modern Approach, 3rd ed. Pearson Education, Inc. Upper Saddle River, NJ.
[26]
Shimomura, T., Ikeda, K., and Takahashi, M., 2010. An Approach to GA-driven Automatic Refactoring based on Design Patterns, In Proceedings of the 2010 Fifth International Conference on Software Engineering Advances (Nice, France, August 22--27, 2010). ICSEA'10. 213--218.
[27]
Zibran, M. F. and Roy, C. K., 2011. A Constraint Programming Approach to Conflict-aware Optimal Scheduling of Prioritized Code Clone Refactoring, To appear in Proceedings of the 11 th IEEE International Working Conference on Source Code Analysis and Manipulation (Williamsburg, VA, USA, September 25--26, 2011). SCAM'11.
[28]
Eclipse Modeling Framework Project (EMF). <http://www.eclipse.org/modeling/emf/>.
[29]
Java Compiler Compiler (JavaCC) <http://javacc.java.net/>
[30]
Unified Modeling Language, Version 2.3, Object Modeling Group, 2010, <http://www.omg.org/spec/UML/2.3/>.

Cited By

View all
  • (2024)A systematic review of refactoring opportunities by software antipattern detectionAutomated Software Engineering10.1007/s10515-024-00443-y31:2Online publication date: 15-May-2024
  • (2021)Deep analysis of quality of primary studies on assessing the impact of refactoring on software qualityMaterials Today: Proceedings10.1016/j.matpr.2020.11.217Online publication date: Jan-2021
  • (2018)Empirical Evaluation of the Impact of Object-Oriented Code Refactoring on Quality Attributes: A Systematic Literature ReviewIEEE Transactions on Software Engineering10.1109/TSE.2017.265857344:1(44-69)Online publication date: 1-Jan-2018

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
MALETS '11: Proceedings of the International Workshop on Machine Learning Technologies in Software Engineering
November 2011
58 pages
ISBN:9781450310222
DOI:10.1145/2070821
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 November 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. automation
  2. code smell
  3. measurement
  4. refactoring
  5. software engineering
  6. software evolution

Qualifiers

  • Research-article

Conference

MALETS '11

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)11
  • Downloads (Last 6 weeks)1
Reflects downloads up to 04 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)A systematic review of refactoring opportunities by software antipattern detectionAutomated Software Engineering10.1007/s10515-024-00443-y31:2Online publication date: 15-May-2024
  • (2021)Deep analysis of quality of primary studies on assessing the impact of refactoring on software qualityMaterials Today: Proceedings10.1016/j.matpr.2020.11.217Online publication date: Jan-2021
  • (2018)Empirical Evaluation of the Impact of Object-Oriented Code Refactoring on Quality Attributes: A Systematic Literature ReviewIEEE Transactions on Software Engineering10.1109/TSE.2017.265857344:1(44-69)Online publication date: 1-Jan-2018

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media