PL EN


Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników
Powiadomienia systemowe
  • Sesja wygasła!
  • Sesja wygasła!
Tytuł artykułu

Resolving Conflict and Dependency in Refactoring to a Desired Design

Treść / Zawartość
Identyfikatory
Warianty tytułu
Języki publikacji
EN
Abstrakty
EN
Refactoring is performed to improve software quality while leaving the behaviour of the system unchanged. In practice there are many opportunities for refactoring, however, due to conflicts and dependencies between refactorings, only certain orders of refactorings are applicable. Selecting and ordering an appropriate set of refactorings is a challenging task for a developer. We propose a novel automated approach to scheduling refactorings according to their conflicts and dependencies as well as their contribution to design quality expressed by a desired design. The desired design is an improved version of the current program design, and is produced by the developer. Our approach is capable of detecting conflicts and dependencies between refactorings, and uses a sequence alignment algorithm to identify the degree of similarity between two program designs expressed as sequence of characters, thereby measuring the contribution of a refactoring to achieving the desired design. We evaluated our approach on several sample programs and one non-trivial open source application. Our results demonstrate the ability of the approach to order the input refactorings so as to achieve the desired design even in the presence of intense inter-refactoring conflict and dependency, and when applied to a medium-sized, real-world application.
Rocznik
Strony
37--56
Opis fizyczny
Bibliogr. 33 poz., rys., tab.
Twórcy
autor
  • Department of Computer Science, University College London, United Kingdom
  • School of Computer Science and Informatics, University College Dublin, Ireland
Bibliografia
  • [1] E. Murphy-Hill and A. P. Black, “Refactoring tools: Fitness for purpose,” IEEE Software, Vol. 25, No. 5, 2008, pp. 38–44.
  • [2] H. Liu, Z. Ma, W. Shao, and Z. Niu, “Schedule of bad smell detection and resolution: A new way to save effort,” IEEE Transactions on Software Engineering, Vol. 38, No. 1, 2012, pp. 220–235.
  • [3] C. L. Simons, I. C. Parmee, and R. Gwynllyw, “Interactive, evolutionary search in upstream object-oriented class design,” IEEE Transactions on Software Engineering, Vol. 36, 2010, pp. 798–816.
  • [4] C. L. Simons and I. C. Parmee, “Elegant object-oriented software design via interactive, evolutionary computation,” IEEE Transactions on Systems, Man, and Cybernetics: Part C Applications and Reviews., Vol. 42, No. 6, November 2012, pp. 1798–1805.
  • [5] I. Hemati Moghadam and M. O Cinn´eide, “Au- ´ tomated refactoring using design differencing,” in Proceedings of the 16th European Conference on Software Maintenance and Reengineering, ser. CSMR ’12. Washington, DC, USA: IEEE Computer Society, 2012, pp. 43–52.
  • [6] I. Hemati Moghadam, “Multi-level automated refactoring using design exploration,” in Proceeding of the 3rd International Symposium on Search Based Software Engineering, ser. SSBSE Springer, September 2011, pp. 70–75.
  • [7] Z. Xing and E. Stroulia, “Differencing logical UML models,” Journal of Automated Software Engineering., Vol. 14, June 2007, pp. 215–259.
  • [8] , “Refactoring detection based on UMLDiff change-facts queries,” in Proceedings of the 13th Working Conference on Reverse Engineering. Washington, DC, USA: IEEE Computer Society, 2006, pp. 263–274.
  • [9] I. Hemati Moghadam and M. O Cinn´eide, ´ “Code-Imp: a tool for automated search-based refactoring,” in Proceeding of the 4th workshop on Refactoring tools, ser. WRT ’11. New York, NY, USA: ACM, 2011, pp. 41–44.
  • [10] H. Liu, G. Li, Z. Y. Ma, and W. Z. Shao, “Conflict-aware schedule of software refactorings.” IET Software, Vol. 2, No. 5, 2008, pp. 446–460.
  • [11] T. Mens, G. Taentzer, and O. Runge, “Analysing refactoring dependencies using graph transformation,” Software and Systems Modeling, Vol. 6, No. 3, 2007, pp. 269–285.
  • [12] R. Heckel, J. M. K¨uster, and G. Taentzer, “Con- fluence of typed attributed graph transformation systems,” in Graph Transformation, ser. Lecture Notes in Computer Science. Springer, 2002, Vol. 2505, pp. 161–176.
  • [13] G. Taentzer, “AGG: A tool environment for algebraic graph transformation,” in Applications of Graph Transformations with Industrial Relevance, ser. Lecture Notes in Computer Science, Vol. 1779. Springer, 2000, pp. 481–488.
  • [14] , “AGG: A graph transformation environment for modeling and validation of software,” in Applications of Graph Transformations with Industrial Relevance, ser. Lecture Notes in Computer Science. Springer, 2004, Vol. 3062, pp. 446–453.
  • [15] T. Mens, “On the use of graph transformations for model refactoring,” in Generative and transformational techniques in software engineering. Springer, 2006, pp. 219–257.
  • [16] O. Runge, “The AGG 1.5.0 development environment – the user manual,” 2014. [Online]. http://user.cs.tu-berlin.de/∼gragra/agg/ AGG-ShortManual/AGG-ShortManual.html
  • [17] J. Bansiya and C. Davis, “A hierarchical model for object-oriented design quality assessment,” IEEE Transactions on Software Engineering, Vol. 28, 2002, pp. 4–17.
  • [18] L. Lambers, H. Ehrig, and F. Orejas, “Conflict detection for graph transformation with negative application conditions,” in Graph Transformations, ser. Lecture Notes in Computer Science. Springer, 2006, Vol. 4178, pp. 61–76.
  • [19] A. Chakraborty and S. Bandyopadhyay, “FOGSAA: Fast optimal global sequence alignment algorithm,” Scientific reports, Vol. 3, 2013.
  • [20] M. Kessentini, R. Mahaouachi, and K. Ghedira, “What you like in design use to correct bad-smells,” Software Quality Journal, Vol. 21, No. 4, 2013, pp. 551–571.
  • [21] O. Mursleen, “Java code for atm operations,” June 2010. [Online]. http: //freesourcecode.net/javaprojects/13191/Javacode-for-ATM-Operations#.VL PC6YqYaA
  • [22] J. A. Dallal and L. C. Briand, “An object-oriented high-level design-based class cohesion metric,” Journal of Information & Software Technology, Vol. 52, No. 12, 2010, pp. 1346–1361.
  • [23] N. Tsantalis and A. Chatzigeorgiou, “Ranking refactoring suggestions based on historical volatility,” in Proceedings of the 15th European Conference on Software Maintenance and Reengineering, ser. CSMR ’11. IEEE Computer Society, March 2011, pp. 25–34.
  • [24], “Identification of move method refactoring opportunities,” IEEE Transactions on Software Engineering, Vol. 35, 2009, pp. 347–367.
  • [25], “Identification of refactoring opportunities introducing polymorphism,” Journal of Systems and Software, Vol. 83, March 2010, pp. 391–404.
  • [26] O. Raiha, “A survey on search-based software design,” Computer Science Review, Vol. 4, No. 4, 2010, pp. 203 – 249.
  • [27] M. Harman and L. Tratt, “Pareto optimal search based refactoring at the design level,” in Proceedings of the 9th annual Conference on Genetic and Evolutionary Computation, ser. GECCO ’07. New York, NY, USA: ACM, 2007, pp. 1106–1113.
  • [28] M. O’Keeffe and M. O Cinn´eide, “Search-based ´ refactoring for software maintenance,” Journal of Systems and Software, Vol. 81, No. 4, 2008, pp. 502–516.
  • [29] A. Ouni, M. Kessentini, H. Sahraoui, and M. Boukadoum, “Maintainability defects detection and correction: a multi-objective approach,” Automated Software Engineering, Vol. 20, No. 1, 2013, pp. 47–79.
  • [30] A. C. Jensen and B. H. Cheng, “On the use of genetic programming for automated refactoring and the introduction of design patterns,” in Proceedings of the 12th annual Conference on Genetic and Evolutionary Computation, 2010, pp. 1341–1348.
  • [31] M. F. Zibran and C. K. Roy, “Conflict-aware optimal scheduling of prioritised code clone refactoring,” IET Software, Vol. 7, No. 3, 2013, pp. 167–186.
  • [32] S. Bouktif, G. Antoniol, E. Merlo, and M. Neteler, “A novel approach to optimize clone refactoring activity,” in Proceedings of the 8th Annual Conference on Genetic and Evolutionary Computation, ser. GECCO ’06. Seattle, Washington, USA: ACM, 8-12 July 2006, pp. 1885–1892.
  • [33] S. Lee, G. Bae, H. S. Chae, D.-H. Bae, and Y. R. Kwon, “Automated scheduling for clone-based refactoring using a competent GA,” Software: Practice and Experience, Vol. 41, No. 5, 2011, pp. 521–550.
Typ dokumentu
Bibliografia
Identyfikator YADDA
bwmeta1.element.baztech-7c49fe0b-e8f0-43c2-8001-4ab6f05bdeb1
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.