ABSTRACTAs software systems are maintained, their architecture modularity often degrades through architectural erosion and drift. More directly, however, the modularity of software implementations degrades through the introduction of code anomalies, informally known as code smells. A number of strategies have been developed for supporting the automatic identification of implementation anomalies when only the source code is available. However, it is still unknown how reliable these strategies are when revealing code anomalies related to erosion and drift processes. In this paper, we present an exploratory analysis that investigates to what extent the automatically-detected code anomalies are related to problems that occur with an evolving system's architecture. We analyzed code anomaly occurrences in 38 versions of 5 applications using existing detection strategies. The outcome of our evaluation suggests that many of the code anomalies detected by the employed strategies were not related to architectural problems. Even worse, over 50% of the anomalies not observed by the employed techniques (false negatives) were found to be correlated with architectural problems.
AUTHORS
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Isela Macia | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Joshua Garcia | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Daniel Popescu | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Alessandro Garcia | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Nenad Medvidovic | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Arndt von Staa | |||||||||||||||||||||||||||||||||||||||||
REFERENCESNote: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
|
2
|
Alikacem, E.H and Sahraoui, H. Generic metric extraction framework. In Proc. of the 16th IWSM/MetriKon, 2006, pp. 383--390.
|
|
| |
3
|
|
|
4
|
||
|
5
|
Code smells study: http://www.inf.puc-rio.br/~ibertran/aosd12.
|
|
|
6
|
||
|
7
|
||
| |
8
|
|
|
9
|
Emden, E. and Moonen, L. Java quality assurance by detecting code smells. In Proceedings of the 9th ICRE, 2002.
|
|
|
10
|
FEAT tool, http://www.cs.mcgill.ca/~swevo/feat/
|
|
|
11
|
Ferrari, F. et al. An exploratory study of error-proneness in evolving Aspect-Oriented Programs. In: Proc. of the 25th OOPSLA, USA, 2009.
|
|
| |
12
|
Eduardo Figueiredo , Nelio Cacho , Claudio Sant'Anna , Mario Monteiro , Uira Kulesza , Alessandro Garcia , Sérgio Soares , Fabiano Ferrari , Safoora Khan , Fernando Castor Filho , Francisco Dantas, Evolving software product lines with aspects: an empirical study on design stability, Proceedings of the 30th international conference on Software engineering, May 10-18, 2008, Leipzig, Germany [doi>10.1145/1368088.1368124]
|
|
13
|
||
|
14
|
||
|
15
|
||
|
16
|
||
|
17
|
Hosmer, D. and Lemeshow, S. Applied Logistic Regression (2nd Edition). Wiley, 2000.
|
|
|
18
|
||
|
19
|
Kiczales, G.,et al. Aspect-oriented programming. In Proc. of the 11th ECOOP. LNCS, vol. 1241. Springer, Heidelberg. pp. 220--242, 1997.
|
|
| |
20
|
Barbara Kitchenham , Hiyam Al-Khilidar , Muhammad Ali Babar , Mike Berry , Karl Cox , Jacky Keung , Felicia Kurniawati , Mark Staples , He Zhang , Liming Zhu, Evaluating guidelines for empirical software engineering studies, Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering, September 21-22, 2006, Rio de Janeiro, Brazil [doi>10.1145/1159733.1159742]
|
|
21
|
||
|
22
|
Lippert, M. and Roock, S. Refactoring in Large Software Projects: Performing Complex Restructurings Successfully. Wiley. 2006.
|
|
| |
23
|
|
|
24
|
Sam Malek , Chiyoung Seo , Sharmila Ravula , Brad Petrus , Nenad Medvidovic, Reconceptualizing a Family of Heterogeneous Embedded Systems via Explicit Architectural Support, Proceedings of the 29th international conference on Software Engineering, p.591-601, May 20-26, 2007 [doi>10.1109/ICSE.2007.69]
|
|
|
25
|
||
| |
26
|
Leandra Mara , Gustavo Honorato , Francisco Dantas Medeiros , Alessandro Garcia , Carlos Lucena, Hist-Inspect: a tool for history-sensitive detection of code smells, Proceedings of the tenth international conference on Aspect-oriented software development companion, March 21-25, 2011, Porto de Galinhas, Brazil [doi>10.1145/1960314.1960335]
|
|
27
|
||
|
28
|
||
|
29
|
||
|
30
|
||
|
31
|
||
|
32
|
||
|
33
|
||
|
34
|
MuLATo tool, http://sourceforge.net/projects/mulato/ (3/08/2009)
|
|
|
35
|
||
| |
36
|
|
|
37
|
Steffen M. Olbrich , Daniela S. Cruzes , Dag I. K. Sjoberg, Are all code smells harmful? A study of God Classes and Brain Classes in the evolution of three open source systems, Proceedings of the 2010 IEEE International Conference on Software Maintenance, p.1-10, September 12-18, 2010 [doi>10.1109/ICSM.2010.5609564]
|
|
|
38
|
Steffen Olbrich , Daniela S. Cruzes , Victor Basili , Nico Zazworka, The evolution and impact of code smells: A case study of two open source systems, Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement, p.390-400, October 15-16, 2009 [doi>10.1109/ESEM.2009.5314231]
|
|
| |
39
|
|
|
40
|
||
| |
41
|
|
|
42
|
||
|
43
|
Sonar: http://docs.codehaus.org/display/SONAR/
|
|
|
44
|
Srivisut, K. and Muenchaisri, P. Bad-smell Metrics for Aspect-Oriented Software. In Proc of the 6th ICIS, 2007.
|
|
|
45
|
Together: http://www.borland.com/us/products/together/
|
|
|
46
|
||
|
47
|
Understand: http://www.scitools.com/
|
|
|
48
|
||
| |
49
|
CITED BY33 Citations
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INDEX TERMSThe ACM Computing Classification System (CCS rev.2012)
PUBLICATION| Title | AOSD '12 Proceedings of the 11th annual international conference on Aspect-oriented Software Development table of contents | ||||||||||||||||||||||||||||||||||||||||||||||
| Conference Chairs | Michael Haupt Oracle Labs, Potsdam, Germany | ||||||||||||||||||||||||||||||||||||||||||||||
| General Chairs | Robert Hirschfeld Hasso-Plattner-Institut, University of Potsdam, Germany | ||||||||||||||||||||||||||||||||||||||||||||||
| Program Chairs | Éric Tanter Universidad de Chile, Chile | ||||||||||||||||||||||||||||||||||||||||||||||
| Kevin J. Sullivan University of Virginia, USA | |||||||||||||||||||||||||||||||||||||||||||||||
| Richard P. Gabriel IBM Research, USA | |||||||||||||||||||||||||||||||||||||||||||||||
| Pages | 167-178 | ||||||||||||||||||||||||||||||||||||||||||||||
| Publication Date | 2012-03-25 (yyyy-mm-dd) | ||||||||||||||||||||||||||||||||||||||||||||||
| Sponsors | SIGPLAN ACM Special Interest Group on Programming Languages | ||||||||||||||||||||||||||||||||||||||||||||||
| SIGSOFT ACM Special Interest Group on Software Engineering | |||||||||||||||||||||||||||||||||||||||||||||||
| In-Cooperations | AOSA Aspect-Oriented Software Association | ||||||||||||||||||||||||||||||||||||||||||||||
| Publisher | ACM New York, NY, USA ©2012 | ||||||||||||||||||||||||||||||||||||||||||||||
| ISBN: 978-1-4503-1092-5 doi>10.1145/2162049.2162069 | |||||||||||||||||||||||||||||||||||||||||||||||
| Conference |
MODULARITYModularity (formerly known as Aspect-oriented Software Development - AOSD)
|
||||||||||||||||||||||||||||||||||||||||||||||
| Paper Acceptance Rate 20 of 79 submissions, 25% | |||||||||||||||||||||||||||||||||||||||||||||||
| Overall Acceptance Rate 178 of 718 submissions, 25% | |||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||
REVIEWS
COMMENTSBe the first to comment To Post a comment please sign in or create a free Web account
Table of Contents| SESSION: Features | ||
| Session details: Features | ||
| David Lorenz | ||
| doi>10.1145/3256430 | ||
| Separation of concerns in feature modeling: support and applications | ||
| Mathieu Acher, Philippe Collet, Philippe Lahire, Robert B. France | ||
| Pages: 1-12 | ||
| doi>10.1145/2162049.2162051 | ||
Full text: PDF
|
||
|
Feature models (FMs) are a popular formalism for describing the commonality and variability of software product lines (SPLs) in terms of features. SPL development increasingly involves manipulating many large FMs, and thus scalable modular techniques ...
expand
|
||
| Intraprocedural dataflow analysis for software product lines | ||
| Claus Brabrand, Márcio Ribeiro, Társis Tolêdo, Paulo Borba | ||
| Pages: 13-24 | ||
| doi>10.1145/2162049.2162052 | ||
Full text: PDF
|
||
|
Software product lines (SPLs) are commonly developed using annotative approaches such as conditional compilation that come with an inherent risk of constructing erroneous products. For this reason, it is essential to be able to analyze SPLs. However, ...
expand
|
||
| Features and object capabilities: reconciling two visions of modularity | ||
| Salman Saghafi, Kathi Fisler, Shriram Krishnamurthi | ||
| Pages: 25-34 | ||
| doi>10.1145/2162049.2162053 | ||
Full text: PDF
|
||
|
The prevalence of threats and attacks in modern systems demands programming techniques that help developers maintain security and privacy. In particular, frameworks for composing components written by multiple parties must enable the authors of each ...
expand
|
||
| SESSION: Debugging | ||
| Session details: Debugging | ||
| Wouter Joosen | ||
| doi>10.1145/3256431 | ||
| Two-way traceability and conflict debugging for AspectLTL programs | ||
| Shahar Maoz, Yaniv Sa'ar | ||
| Pages: 35-46 | ||
| doi>10.1145/2162049.2162055 | ||
Full text: PDF
|
||
|
Tracing program actions back to the concerns that have caused them and blaming specific code artifacts for concern interference are known challenges of AOP and related advanced modularity paradigms. In this work we address these challenges in the context ...
expand
|
||
| A debug interface for debugging multiple domain specific aspect languages | ||
| Yoav Apter, David H. Lorenz, Oren Mishali | ||
| Pages: 47-58 | ||
| doi>10.1145/2162049.2162056 | ||
Full text: PDF
|
||
|
Research in the area of multi-DSAL development has been mainly devoted to enabling the interoperability of multiple aspect mechanisms. Less attention has been given to making programming with multiple aspect languages practical. For domain specific aspect ...
expand
|
||
| A fine-grained debugger for aspect-oriented programming | ||
| Haihan Yin, Christoph Bockisch, Mehmet Aksit | ||
| Pages: 59-70 | ||
| doi>10.1145/2162049.2162057 | ||
Full text: PDF
|
||
|
To increase modularity, aspect-oriented programming provides a mechanism based on implicit invocation: An aspect can influence runtime behavior of other modules without the need that these modules refer to the aspect. Recent studies show that a significant ...
expand
|
||
| SESSION: Languages | ||
| Session details: Languages | ||
| Mario Südholt | ||
| doi>10.1145/3256432 | ||
| A monadic interpretation of execution levels and exceptions for AOP | ||
| Nicolas Tabareau | ||
| Pages: 71-82 | ||
| doi>10.1145/2162049.2162059 | ||
Full text: PDF
|
||
|
Aspect-Oriented Programming (AOP) started fifteen years ago with the remark that modularization of so-called crosscutting functionalities is a fundamental problem for the engineering of large-scale applications. Originating at Xerox PARC, this observation ...
expand
|
||
| Adaptable generic programming with required type specifications and package templates | ||
| Eyvind W. Axelsen, Stein Krogdahl | ||
| Pages: 83-94 | ||
| doi>10.1145/2162049.2162060 | ||
Full text: PDF
|
||
|
The aim of this work is to provide better support for adaption and refinement of generic code. This type of flexibility is desirable in order to fully reap the potential of generic programming. Our proposal for an improved mechanism is an extension to ...
expand
|
||
| Do we really need to extend syntax for advanced modularity? | ||
| Shigeru Chiba, Michihiro Horie, Kei Kanazawa, Fuminobu Takeyama, Yuuki Teramoto | ||
| Pages: 95-106 | ||
| doi>10.1145/2162049.2162061 | ||
Full text: PDF
|
||
|
For every new language construct (or abstraction), we have been always developing new syntax. Is this a right approach? In this paper, we propose that, if we develop a new language construct for advanced modularity, we should consider the use of dynamic ...
expand
|
||
| SESSION: Interference | ||
| Session details: Interference | ||
| Hidehiko Masuhara | ||
| doi>10.1145/3256433 | ||
| A closer look at aspect interference and cooperation | ||
| Cynthia Disenfeld, Shmuel Katz | ||
| Pages: 107-118 | ||
| doi>10.1145/2162049.2162063 | ||
Full text: PDF
|
||
|
In this work we consider specification and compositional verification for interference detection when several aspects are woven together under joint-weaving semantics without recursion. In this semantics, whenever a joinpoint of an aspect is reached, ...
expand
|
||
| Management of feature interactions with transactional regions | ||
| Thomas Cottenier, Aswin van den Berg, Thomas Weigert | ||
| Pages: 119-130 | ||
| doi>10.1145/2162049.2162064 | ||
Full text: PDF
|
||
|
This paper presents a modeling language to modularize the features of a system using orthogonal regions and to man-age the interactions between these features. Orthogonal regions are a language construct to structure a state ma-chine into a set of semi-independent ...
expand
|
||
| Method shelters: avoiding conflicts among class extensions caused by local rebinding | ||
| Shumpei Akai, Shigeru Chiba | ||
| Pages: 131-142 | ||
| doi>10.1145/2162049.2162065 | ||
Full text: PDF
|
||
|
A class extension, also known as open classes, allows programmers to modify existing classes and thus it is supported by several programming languages. However, class extensions imply a risk that they supply different definitions for the same method ...
expand
|
||
| SESSION: Empirical | ||
| Session details: Empirical | ||
| Stefan Udo Hanenberg | ||
| doi>10.1145/3256434 | ||
| An exploratory study of the design impact of language features for aspect-oriented interfaces | ||
| Robert Dyer, Hridesh Rajan, Yuanfang Cai | ||
| Pages: 143-154 | ||
| doi>10.1145/2162049.2162067 | ||
Full text: PDF
|
||
|
A variety of language features to modularize crosscutting concerns have recently been discussed, e.g. open modules, annotation-based pointcuts, explicit join points, and quantified-typed events. All of these ideas are essentially a form of aspect-oriented ...
expand
|
||
| Comprehensively evaluating conformance error rates of applying aspect state machines | ||
| Shaukat Ali, Tao Yue, Zafar Iqbal Malik | ||
| Pages: 155-166 | ||
| doi>10.1145/2162049.2162068 | ||
Full text: PDF
|
||
|
Aspect Oriented Modeling (AOM) aims to provide enhanced separation of concerns during the design phase and proclaims many benefits (e.g., easier model evolution, reduced modeling effort, and reduced modeling errors) over traditional modeling paradigms ...
expand
|
||
| Are automatically-detected code anomalies relevant to architectural modularity?: an exploratory analysis of evolving systems | ||
| Isela Macia, Joshua Garcia, Daniel Popescu, Alessandro Garcia, Nenad Medvidovic, Arndt von Staa | ||
| Pages: 167-178 | ||
| doi>10.1145/2162049.2162069 | ||
Full text: PDF
|
||
|
As software systems are maintained, their architecture modularity often degrades through architectural erosion and drift. More directly, however, the modularity of software implementations degrades through the introduction of code anomalies, informally ...
expand
|
||
| SESSION: Modularity in systems software | ||
| Session details: Modularity in systems software | ||
| Michael Haupt | ||
| doi>10.1145/3256435 | ||
| LARA: an aspect-oriented programming language for embedded systems | ||
| João M.P. Cardoso, Tiago Carvalho, José G.F. Coutinho, Wayne Luk, Ricardo Nobre, Pedro Diniz, Zlatko Petrov | ||
| Pages: 179-190 | ||
| doi>10.1145/2162049.2162071 | ||
Full text: PDF
|
||
|
The development of applications for high-performance embedded systems is typically a long and error-prone process. In addition to the required functions, developers must consider various and often conflicting non-functional application requirements such ...
expand
|
||
| ContextErlang: introducing context-oriented programming in the actor model | ||
| Guido Salvaneschi, Carlo Ghezzi, Matteo Pradella | ||
| Pages: 191-202 | ||
| doi>10.1145/2162049.2162072 | ||
Full text: PDF
|
||
|
Self-adapting systems are becoming widespread in emerging fields such as autonomic, mobile and ubiquitous computing. Context-oriented programming (COP) is a promising language-level solution for the implementation of context-aware, self-adaptive software. ...
expand
|
||
| Fine-grained modularity and reuse of virtual machine components | ||
| Christian Wimmer, Stefan Brunthaler, Per Larsen, Michael Franz | ||
| Pages: 203-214 | ||
| doi>10.1145/2162049.2162073 | ||
Full text: PDF
|
||
|
Modularity is a key concept for large and complex applications and an important enabler for collaborative research. In comparison, virtual machines (VMs) are still mostly monolithic pieces of software. Our goal is to significantly reduce to the cost ...
expand
|
||
| SESSION: Implementing languages | ||
| Session details: Implementing languages | ||
| Eric Bodden | ||
| doi>10.1145/3256436 | ||
| An object-oriented framework for aspect-oriented languages | ||
| Marko van Dooren, Eric Steegmans, Wouter Joosen | ||
| Pages: 215-226 | ||
| doi>10.1145/2162049.2162075 | ||
Full text: PDF
|
||
|
Aspect-orientation is a mechanism for modularizing cross-cutting concerns that has been added to many existing software engineering languages. The implementations of aspect-oriented language extensions, however, are typically tied to a specific base ...
expand
|
||
| Reusing non-functional concerns across languages | ||
| Myoungkyu Song, Eli Tilevich | ||
| Pages: 227-238 | ||
| doi>10.1145/2162049.2162076 | ||
Full text: PDF
|
||
|
Emerging languages are often source-to-source compiled to mainstream ones, which offer standardized, fine-tuned implementations of non-functional concerns (NFCs)-including persistence, security, transactions, and testing. Because these NFCs are specified ...
expand
|
||
| DiSL: a domain-specific language for bytecode instrumentation | ||
| Lukáš Marek, Alex Villazón, Yudi Zheng, Danilo Ansaloni, Walter Binder, Zhengwei Qi | ||
| Pages: 239-250 | ||
| doi>10.1145/2162049.2162077 | ||
Full text: PDF
|
||
|
Many dynamic analysis tools for programs written in managed languages such as Java rely on bytecode instrumentation. Tool development is often tedious because of the use of low-level bytecode manipulation libraries. While aspect-oriented programming ...
expand
|
||
| SESSION: Architecture and design | ||
| Session details: Architecture and design | ||
| Mira Mezini | ||
| doi>10.1145/3256437 | ||
| Multi-view refinement of AO-connectors in distributed software systems | ||
| Steven Op de beeck, Marko van Dooren, Bert Lagaisse, Wouter Joosen | ||
| Pages: 251-262 | ||
| doi>10.1145/2162049.2162079 | ||
Full text: PDF
|
||
|
This paper presents MView, a technique that enables the separation of various developer stakeholder views on an architectural connector in distributed software systems. While state-of-the-art AO-ADLs focus on describing compositions using aspect-based ...
expand
|
||
| Weaving semantic aspects in HiLA | ||
| Gefei Zhang, Matthias Hölzl | ||
| Pages: 263-274 | ||
| doi>10.1145/2162049.2162080 | ||
Full text: PDF
|
||
|
UML state machines are widely used for modeling software behavior. Due to the low-level character of the language, UML state machines are often poorly modularized and hard to use. High-Level Aspects (HiLA) is an aspect-oriented extension of UML state ...
expand
|
||