On the Use of Software Visualization to Support Concern Modularization Analysis

Most of the methods for concern modularity analysis rely on the exploration of crosscutting concerns directly in source code artifacts. However, as both the code size and the number of concerns increase, analyses of concern properties become an even more cumbersome and time-consuming task. In this paper, we propose a visual representation of crosscutting concerns using a software visualization infrastructure called SourceMiner. The infrastructure facilitates concern modularization analysis based on the following concepts: inheritance tree and package-class-method structure. The analysis based on each of these concepts is supported by the views and its resources available in the infrastructure. An example of use illustrates the infrastructure support to visually analyze the concern modularity of an open source code.

[1]  Carlos José Pereira de Lucena,et al.  On the Modularity of Software Architectures: A Concern-Driven Measurement Framework , 2007, ECSA.

[2]  Eli Tilevich,et al.  Annotation refactoring: inferring upgrade transformations for legacy applications , 2008, OOPSLA.

[3]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[4]  H. D. Rombach,et al.  The Goal Question Metric Approach , 1994 .

[5]  Cláudio Sant'Anna,et al.  Crosscutting patterns and design stability: An exploratory analysis , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[6]  Arie van Deursen,et al.  SoQueT: Query-Based Documentation of Crosscutting Concerns , 2007, 29th International Conference on Software Engineering (ICSE'07).

[7]  Carlos José Pereira de Lucena,et al.  Composing design patterns: a scalability study of aspect-oriented programming , 2006, AOSD.

[8]  Cláudio Sant'Anna,et al.  From retrospect to prospect: Assessing modularity and stability from software architecture , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[9]  Dov Dori,et al.  Object-Process Methodology , 2002, Springer Berlin Heidelberg.

[10]  Sven Apel,et al.  Granularity in software product lines , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[11]  James D. Herbsleb,et al.  Identification of coordination requirements: implications for the Design of collaboration and awareness tools , 2006, CSCW '06.

[12]  Trevor J. Young,et al.  Using AspectJ to build a software product line for mobile devices , 2005 .

[13]  Eduardo M. Guerra,et al.  A pattern language for metadata-based frameworks , 2009, PLoP '09.

[14]  Awais Rashid,et al.  Pointcut Rejuvenation: Recovering Pointcut Expressions in Evolving Aspect-Oriented Software , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[15]  Ivar Jacobson,et al.  Use Cases and Aspects-Working Seamlessly Together , 2003, J. Object Technol..

[16]  Hans-Arno Jacobsen,et al.  Efficiently mining crosscutting concerns through random walks , 2007, AOSD.

[17]  Cláudio Sant'Anna,et al.  Evolving software product lines with aspects , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[18]  Christian Koppen,et al.  PCDiff : Attacking the Fragile Pointcut Problem , 2004 .

[19]  Stéphane Ducasse,et al.  Polymetric Views - A Lightweight Visual Approach to Reverse Engineering , 2003, IEEE Trans. Software Eng..

[20]  Mordechai Ben-Menachem,et al.  Writing effective use cases , 2001, SOEN.

[21]  Joëlle Coutaz,et al.  From single-user architectural design to PAC*: a generic software architecture model for CSCW , 1997, CHI.

[22]  Christian Bauer,et al.  Hibernate in action , 2005 .

[23]  Alfred V. Aho,et al.  Do Crosscutting Concerns Cause Defects? , 2008, IEEE Transactions on Software Engineering.

[24]  Jan Venselaar,et al.  DESIGN RULES , 1999 .

[25]  Carlos José Pereira de Lucena,et al.  Modularizing design patterns with aspects: a quantitative study , 2005, AOSD '05.

[26]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[27]  William G. Griswold,et al.  Exploiting the map metaphor in a tool for software evolution , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[28]  Ben Shneiderman,et al.  Ordered and quantum treemaps: Making effective use of 2D space to display hierarchies , 2002, TOGS.

[29]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[30]  Cláudio Sant'Anna,et al.  On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study , 2007, ECOOP.

[31]  Evans,et al.  Domain-driven design , 2003 .

[32]  Stephan Herrmann,et al.  Mapping Use Case Level Aspects to ObjectTeams/Java , 2004 .

[33]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[34]  Junichi Suzuki,et al.  Modeling turnpike frontend system: a model-driven development framework leveraging UML metamodeling and attribute-oriented programming , 2005, MoDELS'05.

[35]  Carlos José Pereira de Lucena,et al.  Quantifying the Effects of Aspect-Oriented Programming: A Maintenance Study , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[36]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[37]  Manoel G. Mendonça,et al.  An experimental platform to characterize software comprehension activities supported by visualization , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.

[38]  S. Soares,et al.  Semantic Dependencies and Modularity of Aspect-Oriented Software , 2007, First International Workshop on Assessment of Contemporary Modularization Techniques (ACoM '07).

[39]  Sérgio Soares,et al.  Implementing distribution and persistence aspects with aspectJ , 2002, OOPSLA '02.

[40]  Martin P. Robillard,et al.  Representing concerns in source code , 2007, TSEM.

[41]  Mira Mezini,et al.  Conquering aspects with Caesar , 2003, AOSD '03.

[42]  Yuanyuan Song,et al.  Modular aspect-oriented design with XPIs , 2010, ACM Trans. Softw. Eng. Methodol..

[43]  Tao Xie,et al.  A framework and tool supports for testing modularity of software design , 2007, ASE.

[44]  Eduardo Martins Guerra,et al.  Daileon: a tool for enabling domain annotations , 2009, RAM-SE@ECOOP.

[45]  Eduardo Figueiredo,et al.  Early Crosscutting Metrics as Predictors of Software Instability , 2009, TOOLS.

[46]  Mira Mezini,et al.  An Overview of CaesarJ , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[47]  Don S. Batory,et al.  Feature-oriented programming and the AHEAD tool suite , 2004, Proceedings. 26th International Conference on Software Engineering.

[48]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[49]  Martin P. Robillard,et al.  Concern graphs: finding and describing concerns using structural program dependencies , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.