ABSTRACT
Software architecture erosion and architectural drift are well known software evolution problems. While there exist a number of approaches to address these problems, so far in these approaches the understandability of the resulting architectural models (e.g., component models) is seldom studied. However, reduced understandability of the architectural models might lead to problems similar to architecture erosion and architectural drift. To address this problem, we propose to extend our existing DSL-based architecture abstraction approach with empirically evaluated understandability metrics. While the DSL-based architecture abstraction approach enables software architects to keep source code and architecture consistent, the understandability metrics extensions enables them, while working with the DSL, to continuously judge the understandability of the architectural component models they create with the DSL. We studied the applicability of our approach in a case study of an existing open source system.
- F. B. e. Abreu, G. Pereira, and P. Sousa. A coupling-guided cluster analysis approach to reengineer the modularity of object-oriented systems. In Proceedings of the Conference on Software Maintenance and Reengineering, CSMR '00, pages 13--, Washington, DC, USA, 2000. IEEE Computer Society. Google ScholarDigital Library
- J. M. Barnes, D. Garlan, and B. R. Schmerl. Evolution styles: foundations and models for software architecture evolution. Software and System Modeling, 13(2):649--678, 2014. Google ScholarDigital Library
- P. Bhattacharya, M. Iliofotou, I. Neamtiu, and M. Faloutsos. Graph-based analysis and prediction for software evolution. In ICSE'12, pages 419--429, 2012. Google ScholarDigital Library
- E. Bouwers, J. P. Correia, A. Deursen, and J. Visser. Quantifying the Analyzability of Software Architectures. In 2011 Ninth Working IEEE/IFIP Conference on Software Architecture, pages 83--92. IEEE, June 2011. Google ScholarDigital Library
- P. Clements, D. Garlan, L. Bass, J. Stafford, R. Nord, J. Ivers, and R. Little. Documenting Software Architectures: Views and Beyond. Pearson Education, 2002. Google ScholarDigital Library
- C. E. Cuesta, E. Navarro, D. E. Perry, and C. Roda. Evolution styles: using architectural knowledge as an evolution driver. Journal of Software: Evolution and Process, 25(9):957--980, 2013.Google ScholarCross Ref
- A. Egyed. Consistent adaptation and evolution of class diagrams during refinement. In Fundamental Approaches to Software Engineering, 7th International Conference, FASE 2004, ETAPS 2004 Barcelona, Spain, volume 2984 of Lecture Notes in Computer Science, pages 37--53. Springer, 2004.Google Scholar
- M. O. Elish. Exploring the relationships between design metrics and package understandability: A case study. In ICPC, pages 144--147. IEEE Computer Society, 2010. Google ScholarDigital Library
- V. Gupta and J. K. Chhabra. Package coupling measurement in object-oriented software. J. Comput. Sci. Technol., 24(2):273--283, Mar. 2009. Google ScholarDigital Library
- V. Gupta and J. K. Chhabra. Package level cohesion measurement in object-oriented software. J. Braz. Comp. Soc., 18(3):251--266, 2012.Google ScholarCross Ref
- T. Haitzer and U. Zdun. Semi-automated architectural abstraction specifications for supporting software evolution. Science of Computer Programming, 90, Part B(0):135--160, 2014. Special Issue on Component-Based Software Engineering and Software Architecture.Google Scholar
- A. Jansen, J. van der Ven, P. Avgeriou, and D. K. Hammer. Tool support for architectural decisions. In Proceedings of the Sixth Working IEEE/IFIP Conference on Software Architecture, WICSA '07, pages 4--, Washington, DC, USA, 2007. IEEE Computer Society. Google ScholarDigital Library
- A. Kanjilal, S. Sengupta, and S. Bhattacharya. CAG: A Component Architecture Graph. In TENCON, IEEE Region 10 International Conference, 2008.Google Scholar
- M. M. Lehman. Uncertainty in computer application and its control through the engineering of software. Journal of Software Maintenance, 1(1):3--27, Sept. 1989. Google ScholarDigital Library
- Y. Ma, K. He, D. Du, J. Liu, and Y. Yan. A complexity metrics set for large-scale object-oriented software systems. In Proceedings of the Sixth IEEE International Conference on Computer and Information Technology, CIT '06, pages 189--, Washington, DC, USA, 2006. IEEE Computer Society. Google ScholarDigital Library
- O. Maqbool and H. Babri. Hierarchical clustering for software architecture recovery. IEEE Trans. Softw. Eng., 33:759--780, 2007. Google ScholarDigital Library
- R. C. Martin. Agile software development: principles, patterns, and practices. Prentice Hall PTR, 2003. Google ScholarDigital Library
- K. Mens, T. Mens, and M. Wermelinger. Maintaining software through intentional source-code views. In Proceedings of the 14th international conference on Software engineering and knowledge engineering, SEKE '02, pages 289--296, New York, NY, USA, 2002. ACM. Google ScholarDigital Library
- G. C. Murphy, D. Notkin, and K. Sullivan. Software reflexion models: bridging the gap between source and high-level models. SIGSOFT Softw. Eng. Notes, 20:18--28, 1995. Google ScholarDigital Library
- G. C. Murphy, D. Notkin, and K. Sullivan. Software reflexion models: bridging the gap between source and high-level models. In Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering, SIGSOFT '95, pages 18--28, New York, NY, USA, 1995. ACM. Google ScholarDigital Library
- D. L. Parnas. Software aging. In Proceedings of the 16th International Conference on Software Engineering, ICSE '94, pages 279--287, Los Alamitos, CA, USA, 1994. IEEE Computer Society Press. Google ScholarDigital Library
- K. Sartipi. A software evaluation model using component association views. In IWPC, pages 259--268, 2001. Google ScholarDigital Library
- A. Sharma, P. S. Grover, and R. Kumar. Dependency analysis for component-based software systems. SIGSOFT Softw. Eng. Notes, 34(4):1--6, July 2009. Google ScholarDigital Library
- S. Stevanetic, M. A. Javed, and U. Zdun. Empirical evaluation of the understandability of architectural component diagrams. In Companion Proceedings of the 11th Working IEEE/IFIP Conference on Software Architecture (WICSA), WICSA 2014, Sydney, Australia, 2014. IEEE Computer Society. Google ScholarDigital Library
- S. Stevanetic and U. Zdun. Exploring the relationships between the understandability of components in architectural component models and component level metrics. In Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering (EASE), EASE 2014, London, UK, 2014. ACM Computer Society. Google ScholarDigital Library
Index Terms
- Supporting Software Evolution by Integrating DSL-based Architectural Abstraction and Understandability Related Metrics
Recommendations
DSL-based support for semi-automated architectural component model abstraction throughout the software lifecycle
QoSA '12: Proceedings of the 8th international ACM SIGSOFT conference on Quality of Software ArchitecturesIn this paper we present an approach for supporting the semi-automated abstraction of architectural models throughout the software lifecycle. It addresses the problem that the design and the implementation of a software system often drift apart as ...
Exploring the relationships between the understandability of components in architectural component models and component level metrics
EASE '14: Proceedings of the 18th International Conference on Evaluation and Assessment in Software EngineeringArchitectural component models represent high level designs and are frequently used as a central view of architectural descriptions of software systems. The components in those models represent important high level organization units that group other ...
Empirical Study on the Effect of a Software Architecture Representation's Abstraction Level on the Architecture-Level Software Understanding
QSIC '14: Proceedings of the 2014 14th International Conference on Quality SoftwareArchitectural component models represent high level designs and are frequently used as a central view of architectural descriptions of software systems. In this paper we present a study that examines the effect of the level of abstraction of the ...
Comments