Abstract
Identifying and removing the causes of poor performance in software systems are complex problems, and these issues are usually tackled after software deployment only with human-based means. Performance antipatterns can be used to harness these problems since they capture design patterns that are known leading to performance problems, and they suggest refactoring actions that can solve the problems. This paper introduces an approach to automate software model refactoring based on performance antipatterns. A Role-Based Modeling Language is used to model antipattern problems as Source Role Models (SRMs), and antipattern solutions as Target Role Models (TRMs). Each (SRM, TRM) pair is represented by a difference model that encodes refactoring actions to be operated on a software model to remove the corresponding antipattern. Differences are applied to software models through a model transformation automatically generated by a higher-order transformation. The approach is shown at work on an example in the e-commerce domain.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Arcelli, D., Cortellessa, V.: Software model refactoring based on performance analysis: better working on software or performance side? In: Buhnova, B., Happe, L., Kofron, J. (eds.) FESCA. EPTCS, vol. 108, pp. 33–47 (2013)
Arcelli, D., Cortellessa, V., Trubiani, C.: A repository of Source and Target Role Models for software performance antipatterns. Technical report (2011), http://www.di.univaq.it/cortelle/docs/005-2011-report.pdf
Arcelli, D., Cortellessa, V., Trubiani, C.: Antipattern-based model refactoring for software performance improvement. In: Proceedings of the 12th QoSA (2012)
Casale, G., Serazzi, G.: Quantitative system evaluation with java modeling tools. In: ICPE, pp. 449–454 (2011)
Cicchetti, A., Di Ruscio, D., Iovino, L., Pierantonio, A.: Managing the evolution of data-intensive web applications by model-driven techniques. Software and Systems Modeling 12(1), 53–83 (2013)
Cicchetti, A., Di Ruscio, D., Pierantonio, A.: A Metamodel Independent Approach to Difference Representation. Journal of Object Technology 6(9), 165–185 (2007)
Cortellessa, V., Di Marco, A., Trubiani, C.: An approach for modeling and detecting software performance antipatterns based on first-order logics. Journal of Software and Systems Modeling (2012), doi:10.1007/s10270-012-0246-z
Cortellessa, V., Martens, A., Reussner, R., Trubiani, C.: A process to effectively identify “Guilty” performance antipatterns. In: Rosenblum, D.S., Taentzer, G. (eds.) FASE 2010. LNCS, vol. 6013, pp. 368–382. Springer, Heidelberg (2010)
Cortellessa, V., Mirandola, R.: PRIMA-UML: a performance validation incremental methodology on early UML diagrams. Sci. Comput. Program. 44(1), 101–129 (2002)
Di Cosmo, R., Di Ruscio, D., Pelliccione, P., Pierantonio, A., Zacchiroli, S.: Supporting software evolution in component-based foss systems. Science of Computer Programming 76(12), 1144–1160 (2011), http://dx.doi.org/10.1016/j.scico.2010.11.001
Dudney, B., Asbury, S., Krozak, J.K., Wittkopf, K.: J2EE Antipatterns. Wiley (2003)
France, R.B., Kim, D.-K., Ghosh, S., Song, E.: A UML-Based Pattern Specification Technique. IEEE Trans. Software Eng. 30(3), 193–206 (2004)
Kolovos, D.S., Di Ruscio, D., Paige, R.F., Pierantonio, A.: Different models for model matching: An analysis of approaches to support model differencing. In: CVSM at ICSE (2009)
Koziolek, A., Koziolek, H., Reussner, R.: Peropteryx: automated application of tactics in multi-objective software architecture optimization. In: QoSA/ISARCS, pp. 33–42 (2011)
Laplante, P.A., Neill, C.J.: AntiPatterns: Identification, Refactoring and Management. Auerbach (2005)
Lin, Y., Zhang, J., Gray, J.: A testing framework for model transformations. Model-Driven Software Development (2005)
Mens, T., Taentzer, G.: Model-driven software refactoring. In: Dig, D. (ed.) WRT, pp. 25–27 (2007)
Parsons, T., Murphy, J.: Detecting performance antipatterns in component based enterprise systems. Journal of Object Technology 7(3), 55–90 (2008)
Pierantonio, A., Iovino, L., Di Rocco, J.: Bridging state-based differencing and co-evolution. In: Models and Evolution Workshop at MODELS (September 2012)
Ramachandran, K., Fathi, K., Rao, B.: Recent trends in systems performance monitoring & failure diagnosis. In: IEEM, pp. 2193–2200 (2010)
Smith, C.U., Williams, L.G.: More new software antipatterns: Even more ways to shoot yourself in the foot. In: CMG Conference, pp. 717–725 (2003)
Trubiani, C.: A model-based framework for software performance feedback. In: Dingel, J., Solberg, A. (eds.) MODELS 2010. LNCS, vol. 6627, pp. 19–34. Springer, Heidelberg (2011)
Vermolen, S., Visser, E.: Heterogeneous Coupled Evolution of Software Languages. In: Czarnecki, K., Ober, I., Bruel, J.-M., Uhl, A., Völter, M. (eds.) MODELS 2008. LNCS, vol. 5301, pp. 630–644. Springer, Heidelberg (2008)
Woodside, C.M., Franks, G., Petriu, D.C.: The future of software performance engineering. In: Workshop on the Future of Software Engineering (FOSE), pp. 171–187 (2007)
Xu, J.: Rule-based automatic software performance diagnosis and improvement. In: Workshop on Software and Performance (WOSP), pp. 1–12 (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Arcelli, D., Cortellessa, V., Di Ruscio, D. (2013). Applying Model Differences to Automate Performance-Driven Refactoring of Software Models. In: Balsamo, M.S., Knottenbelt, W.J., Marin, A. (eds) Computer Performance Engineering. EPEW 2013. Lecture Notes in Computer Science, vol 8168. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-40725-3_24
Download citation
DOI: https://doi.org/10.1007/978-3-642-40725-3_24
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-40724-6
Online ISBN: 978-3-642-40725-3
eBook Packages: Computer ScienceComputer Science (R0)