A model transformation approach to perform refactoring on software architecture using refactoring patterns based on stakeholder requirements

Document Type : Original Article


Karbalaye 5 St., Azadi Bld., Ilam Tak Apt.


Software Architecture (SA) generally has a considerable influence on software quality attributes. Coordination of software architecture to the requirements of the stakeholders and avoiding common mistakes and faults in designing SA increases the chance of success of the project and satisfaction of the stakeholders. Making the wrong decisions at the architectural design phase usually proves very costly later on. Refactoring is a method which helps in detecting and avoiding complications, improving the internal characteristics of software, while keeping the external behavior intact. Various problems can undermine the architecture refactoring process. The existence of different requirements in different domains, the diversity of architecture description languages, and the difficulty of describing refactoring patterns lead to the difficulty of performing automatic and semi-automatic refactoring on the SA. In this study, we use model transformation as a way to overcome the above mentioned difficulties. In this regard, the first step is converting the SA to a pivot-model. Then, based on the refactoring patterns, the refactoring process is performed on the pivotmodel. And finally, the pivot-model is converted back to the original (source) model. In this paper, the requirements of the stakeholders are taken into account in the refactoring process by modeling them as refactoring goals. These goals show the importance of the quality attributes in the project and the process of refactoring. The applicability of the framework is demonstrated using a case study.


Main Subjects

[1] A. Abouzahra, J. B´ezivin, M. D. Del Fabro, F. Jouault, A practical approach to bridging domain specific languages with UML profiles, in: Proceedings of the Best Practices for Model Driven Software Development at OOPSLA, Vol. 5, 2005.
[2] J. Adersberger, M. Philippsen, Reflexml: Uml-based architecture-to-code traceability and consistency checking, in: Software Architecture, Springer, 2011, pp. 344-359.
[3] S. Alshehri, L. Benedicenti, Rankingtherefactoring techniques based on the internal quality attributes, International Journal of Software Engineering & Applications 5 (1) (2014).
[4] A. Amirat, M. Oussalah, et al., Towards an UML profile for the description of software architecture, in: Proceeding of International Conference on Applied Informatics (ICAI’09), 2009, pp. 226-232.
[5] L. Apvrille, J. Courtiat, C. Lohr, P. de Saqui-Sannes, Turtle: a real-time UML profile supported by a formal validation toolkit, IEEE Transactions on Software Engineering, 30 (7) (2004) 473-487.
[6] T. Arendt, E. Biermann, S. Jurack, C. Krause, G. Taentzer, Henshin: Advanced concepts and tools for inplace emf model transformations, in: D. Petriu, N. Rouquette, Ø. Haugen (Eds.), Model Driven Engineering Languages and Systems, Vol. 6394 of Lecture Notes in Computer Science, Springer Berlin Heidelberg, 2010, pp. 121-135.
[7] B. W. Boehm, J. R. Brown, M. Lipow, Quantitative evaluation of software quality, in: Proceedings of the 2nd international conference on Software engineering, IEEE Computer Society Press, 1976, pp. 592-605.
[8] S. Bosems, A performance analysis of model transformations and tools, Master’s thesis, University of Twente (2011).
[9] S. R. Chidamber, C. F. Kemerer, A metrics suite for object oriented design, IEEE Transactions on Software Engineering, 20 (6) (1994) 476-493.
[10] O. Constant, Emf diff merge/patterns.
[11] J. Dietrich, C. Elgar, A formal description of design patterns using owl, in: Software Engineering Conference, 2005. Proceedings. 2005 Australian, IEEE, 2005, pp. 243-250.
[12] J. Dong, Y. Sheng, K. Zhang, Visualizing design patterns in their applications and compositions, IEEE Transactions on Software Engineering, 33 (7) (2007) 433-453.
[13] R. G. Dromey, A model for software product quality, IEEE Transactions on Software Engineering 21 (2) (1995) 146-162.
[14] H. Dubois, F. Lakhal, S. G´erard, The papyrus tool as an eclipse uml2-modeling environment for requirements, in: Proceedings of the 2009 Second International Workshop on Managing Requirements Knowledge, MARK ’09, IEEE Computer Society, Washington, DC, USA, 2009, pp. 85-88.
[15] A. H. Eden, Precise specification of design patterns and tool support in their application, Ph.D. thesis, Publisher not identified (2000).
[16] P. H. Feiler, B. Lewis, S. Vestal, The sae avionics architecture description language (AADL) standard: A basis for model-based architecture-driven embedded systems engineering, in: RTAS 2003 Workshop on Model-Driven Embedded Systems, 2003.
[17] M. Fowler, Refactoring: improving the design of existing code, Addison-Wesley Professional, 1999.
[18] R. B. France, D.-K. Kim, S. Ghosh, E. Song, A UML-based pattern specification technique, IEEE Transactions on Software Engineering, 30 (3) (2004) 193-206.
[19] K. Garc´es, F. Jouault, P. Cointe, J. B´ezivin, A domain specific language for expressing model matching, in: 5`ere Journ´ee sur l’Ing´enierie Dirig´ee par les Mod`eles (IDM09), 2009, pp. 33-48.
[20] D. Garlan, R. Monroe, D. Wile, Acme: an architecture description interchange language, in: Centre for Advanced Studies on Collaborative research, IBM Corp., 1997, pp. 7-22.
[21] G. Giachetti, B. Mar´ın, O. Pastor, Using UML as a domain-specific modeling language: A proposal for automatic generation of UML profiles, in: Advanced Information Systems Engineering, Springer, 2009, pp. 110-124.
[22] M. Goul˜ao, F. B. e Abreu, Bridging the gap between Acme and UML 2.0 for CBD, in: Proceedings of Specification and Verification of Component-Based Systems (SAVSCB’03), workshop at ESEC/FSE 2003, 2003, pp. 75-79.
[23] O. M. Group, et al., Query/view/transformation specification version 1.0, formal/2008-04-03, April (2008).
[24] A. Le Guennec, G. Suny´e, J.-M. J´ez´equel, Precise modeling of design patterns, in: UML 2000—The Unified Modeling Language, Springer, 2000, pp. 482-496.
[25] C. Hofmeister, R. Nord, D. Soni, Applied software architecture, Addison-Wesley Professional, 2000.
[26] S. Hussain, Investigating architecture description languages (adls) a systematic literature review, Master’s thesis, Link¨opings universitet (2013).
[27] ISO/IEC, ISO Standard 9126: Software engineering - product quality, parts 1, 2 and 3 (2001 (part 1), 2003 (parts 2 and 3)).
[28] I. Ivkovic, K. Kontogiannis, A framework for software architecture refactoring using model transformations and semantic annotations, in: Software Maintenance and Reengineering, 2006. CSMR 2006. Proceedings of the 10th European Conference on, IEEE, 2006, pp. 10-23.
[29] F. Jouault, F. Allilaire, J. B´ezivin, I. Kurtev, Atl: A model transformation tool, Science of computer programming 72 (1) (2008) 31-39.
[30] S. H. Kan, Metrics and models in software quality engineering, Addison-Wesley Longman Publishing Co., Inc., 2002.
[31] M. M. Kand´e, A. Strohmeier, Towards a UML profile for software architecture descriptions, in: UML 2000— The Unified Modeling Language, Springer, 2000, pp. 513-527.
[32] S. Kent, Model driven engineering, in: Integrated formal methods, Springer, 2002, pp. 286-298.
[33] R. Khare, M. Guntersdorfer, P. Oreizy, N. Medvidovic, R. N. Taylor, xadl: enabling architecture-centric tool integration with xml, in: System Sciences, 2001. Proceedings of the 34th Annual Hawaii International Conference on, IEEE, 2001, pp. 9-pp.
[34] D.-K. Kim, Design pattern based model transformation with tool support, Software: Practice and Experience 45 (2013) 473-499.
[35] J. P. Kincaid, R. P. Fishburne Jr, R. L. Rogers, B. S. Chissom, Derivation of new readability formulas (automated readability index, fog count and flesch reading ease formula) for navy enlisted personnel, Tech. rep., DTIC Document (1975).
[36] A. G. Kleppe, J. B. Warmer, W. Bast, MDA explained: the model driven architecture: practice and promise, Addison-Wesley Professional, 2003.
[37] K. Lano, J. Bicarregui, S. Goldsack, Formalising design patterns, in: RBCS-FACS Northern Formal Methods Workshop, 1996.
[38] A. Lauder, S. Kent, Precise visual specification of design patterns, in: ECOOP’98-Object-Oriented Programming, Springer, 1998, pp. 114-134. [39] I. Malavolta, H. Muccini, P. Pelliccione, D. A. Tamburri, Providing architectural languages and tools interoperability through model transformation technologies, IEEE Transactions on Software Engineering 36 (1) (2010) 119-140.
[40] J. A. McCall, P. K. Richards, G. F. Walters, Factors in software quality. volume-iii. preliminary handbook on software quality for an acquisiton manager, Tech. rep., DTIC Document (1977).
[41] T. Mens, P. Van Gorp, A taxonomy of model transformation, Electronic Notes in Theoretical Computer Science 152 (2006) 125-142.
[42] T. Mikkonen, Formalizing design patterns, in: Proceedings of the 20th international conference on Software engineering, IEEE Computer Society, 1998, pp. 115-124.
[43] N. Moha, V. Mah´e, O. Barais, J.-M. J´ez´equel, Generic model refactorings, in: Model driven engineering languages and systems, Springer, 2009, pp. 628-643.
[44] E. Murphy-Hill, C. Parnin, A. P. Black, How we refactor, and how we know it, Software Engineering, IEEE Transactions on 38 (1) (2012) 5-18.
[45] J. Offutt, A. Abdurazik, S. R. Schach, Quantitatively measuring object-oriented couplings, Software Quality Journal 16 (4) (2008) 489-512.
[46] E. Oliva, Interactive graphical maps for infocenter via model to model transformation, Eclipse-IT 2009 (2009) 104.
[47] W. F. Opdyke, Refactoring object-oriented frameworks, Ph.D. thesis, University of Illinois at UrbanaChampaign (1992).
[48] F. Oquendo, Formally modelling software architectures with the UML 2.0 profile for π-adl, ACM SIGSOFT Software Engineering Notes 31 (1) (2006) 1-13.
[49] I. Porres, A toolkit for model manipulation, Software and Systems Modeling 2 (4) (2003) 262-277.
[50] I. Porres, Model refactorings as rule-based update transformations, in: P. Stevens, J. Whittle, G. Booch (Eds.), UML 2003 - The Unified Modeling Language. Modeling Languages and Applications, Vol. 2863 of Lecture Notes in Computer Science, Springer Berlin Heidelberg, 2003, pp. 159-174 .
[51] A. Radermacher, Support for design patterns through graph transformation tools, in: Applications of Graph Transformations with Industrial Relevance, Springer, 2000, pp. 111-126.
[52] J. Reimann, M. Seifert, U. Aßmann, On the reuse and recommendation of model refactoring specifications, Software & Systems Modeling 12 (3) (2013) 579-596.
[53] L. Rose, E. Guerra, J. De Lara, A. Etien, D. Kolovos, R. Paige, Genericity for model management operations, Software & Systems Modeling 12 (1) (2013) 201-219.
[54] T. Ruhroth, H. Wehrheim, S. Ziegert, Rel: A generic refactoring language for specification and execution, in: Software Engineering and Advanced Applications (SEAA), 2011 37th EUROMICRO Conference on, 2011, pp. 83-90. doi:10.1109/SEAA.2011.22.
[55] T. L. Saaty, What is the analytic hierarchy process?, Springer, 1988.
[56] B. Selic, A systematic approach to domain-specific language design using UML, in: Object and ComponentOriented Real-Time Distributed Computing, 2007. ISORC’07. 10th IEEE International Symposium on, IEEE, 2007, pp. 2-9.
[57] S. Siraj, L. Mikhailov, J. A. Keane, Priest: an interactive decision support tool to estimate priorities from pairwise comparison judgments, International Transactions in Operational Research 22 (2013) 217-235.
[58] O. A. Specification, UML 2.0 infrastructure specification.
[59] D. Steinberg, F. Budinsky, E. Merks, M. Paternostro, EMF: eclipse modeling framework, Pearson Education, 2008..
[60] S. Vestal, Metah programmer’s manual (1996).
[61] M. V¨olter, T. Stahl, J. Bettin, A. Haase, S. Helsen, Model-driven software development: technology, engineering, management, John Wiley & Sons, 2013.
[62] M. Wimmer, S. M. Perez, F. Jouault, J. Cabot, A catalogue of refactorings for model-to-model transformations., Journal of Object Technology 11 (2) (2012) 1-40.
[63] R. Yin, Case Study Research: Design and Methods, Applied Social Research Methods, SAGE Publications, 2009.
[64] Y. Yu, J. Mylopoulos, E. Yu, J. C. Leite, L. Liu, E. D’Hollander, Software refactoring guided by multiple soft-goals, in: 1st workshop on Refactoring: Achievements, Challenges, and Effects, in conjunction with the 10th WCRE conference 2003, IEEE Computer Society, 2003, pp. 7-11.
[65] U. Zdun, P. Avgeriou, Modeling architectural patterns using architectural primitives, in: ACM SIGPLAN Notices, Vol. 40, ACM, 2005, pp. 133-146.
[66] T. Ziadi, L. H´elou¨et, J.-M. J´ez´equel, Towards a UML profile for software product lines, in: Software ProductFamily Engineering, Springer, 2004, pp. 129-139.
[67] O. Zimmermann, Architectural refactoring: A task-centric view on software evolution, IEEE Software (2) (2015) 26-29.