PL EN


Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników
Tytuł artykułu

Searching Design Patterns Fast by Using Tree Traversals

Treść / Zawartość
Identyfikatory
Warianty tytułu
Języki publikacji
EN
Abstrakty
EN
Large software systems need to be modified to remain useful. Changes can be more easily performed when their design has been carefully documented. This paper presents an approach to quickly find design patterns that have been implemented into a software system. The devised solution greatly reduces the performed checks by organising the search for a design pattern as tree traversals, where candidate classes are carefully positioned into trees. By automatically tagging classes with design pattern roles we make it easier for developers to reason with large software systems. Our approach can provide documentation that lets developers understand the role each class is playing, assess the quality of the code, have assistance for refactoring and enhancing the functionalities of the software system.
Twórcy
  • Department of Mathematics and Informatics, University of Catania, Viale A. Doria 6, 95125 Catania, Italy
autor
  • Department of Mathematics and Informatics, University of Catania, Viale A. Doria 6, 95125 Catania, Italy
  • Department of Mathematics and Informatics, University of Catania, Viale A. Doria 6, 95125 Catania, Italy
Bibliografia
  • [1] A. Calvagna and E. Tramontana, “Delivering dependable reusable components by expressing and enforcing design decisions,” in Proceedings of IEEE Computer Software and Applications Conference (COMPSAC) Workshop QUORS, Kyoto, Japan, July 2013, pp. 493-498.
  • [2] E. Tramontana, “Detecting extra relationships for design patterns roles,” in Proceedings of AsianPlop, Tokyo, Japan, March 2014.
  • [3] E. Tramontana, “Automatically characterising components with concerns and reducing tangling,” in Proceedings of IEEE Computer Software and Applications Conference (COMPSAC) Workshop QUORS, Kyoto, Japan, July 2013, pp. 499-504.
  • [4] E. Gamma, R. Helm, R. Johnson, and R. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.
  • [5] M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts, Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999.
  • [6] J. Kerievsky, Refactoring to patterns. Addison-Wesley, 2005.
  • [7] C. Napoli, G. Pappalardo, and E. Tramontana, “Using modularity metrics to assist move method refactoring of large systems,” in Proceedings of IEEE ICLS workshop at CISIS, Taichung, Taiwan, 2013.
  • [8] G. Pappalardo and E. Tramontana, “Suggesting extract class refactoring opportunities by measuring strength of method interactions,” in Proceedings of IEEE Asia Pacific Software Eng. Conference (APSEC), Bangkok, Thailand, December 2013, pp. 105-110.
  • [9] R. Giunta, G. Pappalardo, and E. Tramontana, “Using Aspects and Annotations to Separate Application Code from Design Patterns,” in Proceedings of ACM Symposium on Applied Computing (SAC), March 2010.
  • [10] R. Giunta, G. Pappalardo, and E. Tramontana, “Aspects and annotations for controlling the roles application classes play for design patterns,” in Proceedings of IEEE Asia Pacific Software Engineering Conference (APSEC), Ho Chi Minh, Vietnam, December 2011, pp. 306-314.
  • [11] R. Giunta, G. Pappalardo, and E. Tramontana, “AODP: refactoring code to provide advanced aspect-oriented modularization of design patterns,” in Proceedings of ACM Symposium on Applied Computing (SAC), Riva del Garda, Italy, March 2012, pp. 1243-1250.
  • [12] R. Giunta, G. Pappalardo, and E. Tramontana, “Superimposing roles for design patterns into application classes by means of aspects,” in Proceedings of ACM Symposium on Applied Computing (SAC). Riva del Garda, Italy: ACM, March 2012, pp. 1866-1868.
  • [13] G. Pappalardo and E. Tramontana, “Automatically discovering design patterns and assessing concern separations for applications,” in Proceedings of ACM Symposium on Applied Computing (SAC), Dijon, France, April 2006.
  • [14] J. Dong, Y. Zhao, and Y. Sun, “A matrix-based approach to recovering design patterns,” Trans. on Systems, Man and Cybernetics, Part A: Systems and Humans, vol. 39, no. 6, 2009.
  • [15] M. Fowler, UML distilled. Addison-Wesley Professional, 2004.
  • [16] P. Maes, “Concepts and experiments in computational reflection,” in Proc. OOPSLA, vol. 22 (12). ACM, 1987.
  • [17] I. Forman and N. Forman, Java Reflection in Action. Manning Publications, 2005.
  • [18] S. Chiba, “Load-time Structural Reflection in Java,” in Proceedings of ECOOP, ser. Lecture Notes in Computer Science, vol. 1850. Springer-Verlag, 2000.
  • [19] N. Tsantalis, A. Chatzigeorgiou, G. Stephanides, and S. Halkidis, “Design Pattern Detection Using Similarity Scoring,” IEEE Transactions on Software Engineering, vol. 32, no. 11, pp. 896-909, 2006.
  • [20] Y.-G. Gueheneuc and G. Antoniol, “Demima: A multilayered approach for design pattern identification,” IEEE Transactions on Software Engineering, vol. 34, no. 5, pp. 667-684, 2008.
  • [21] A. De Lucia, V. Deufemia, C. Gravino, and M. Risi, “Design pattern recovery through visual language parsing and source code analysis,” Journal of Systems and Software, vol. 82, no. 7, pp. 1177-1193, 2009.
  • [22] C. Napoli, G. Pappalardo, E. Tramontana, and G. Zappalaa, “A clouddistributed gpu architecture for pattern identification in segmented detectors big-data surveys,” Computer Journal, 2014. [Online]. Available: http://dx.doi.org/10.1093/comjnl/bxu147
Typ dokumentu
Bibliografia
Identyfikator YADDA
bwmeta1.element.baztech-b38ad8bc-16a2-4b74-bfd3-a5a00ecfa2d7
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ć.