Example similarity map    Similar Patents and Articles Toggle Patent Map

Contact The DL Team Contact Us | Switch to tabbed view

top of pageABSTRACT

Modular design is a desirable characteristic of complex software systems that can significantly improve their comprehensibility, maintainability and thus quality. While many software systems are initially created in a modular way, over time modularity typically degrades as components are reused outside the context where they were created. In this paper, we propose an automated strategy to remodularize software based on move refactoring, i.e. moving classes between packages without changing any other aspect of the source code. Taking a complex systems perspective, our approach is based on complex networks theory applied to the dynamics of software modular structures and its relation to an n-state spin model known as the Potts Model.

In our approach, nodes are probabilistically moved between modules with a probability that nonlinearly depends on the number and module membership of their adjacent neighbors, which are defined by the underlying network of software dependencies. To validate our method, we apply it to a dataset of 39 Java open source projects in order to optimize their modularity. Comparing the source code generated by the developers with the optimized code resulting from our approach, we find that modularity (i.e. quantified in terms of a standard measure from the study of complex networks) improves on average by 166+-77 percent. In order to facilitate the application of our method in practical studies, we provide a freely available Eclipse plug-in.

top of pageAUTHORS



Author image not provided  Marcelo Serrano Zanetti

No contact information provided yet.

Bibliometrics: publication history
Publication years2013-2014
Publication count5
Citation Count23
Available for download2
Downloads (6 Weeks)2
Downloads (12 Months)53
Downloads (cumulative)831
Average downloads per article415.50
Average citations per article4.60
View colleagues of Marcelo Serrano Zanetti


Author image not provided  Claudio Juan Tessone

No contact information provided yet.

Bibliometrics: publication history
Publication years2013-2014
Publication count2
Citation Count12
Available for download2
Downloads (6 Weeks)2
Downloads (12 Months)53
Downloads (cumulative)831
Average downloads per article415.50
Average citations per article6.00
View colleagues of Claudio Juan Tessone


Author image not provided  Ingo Scholtes

No contact information provided yet.

Bibliometrics: publication history
Publication years2010-2017
Publication count7
Citation Count19
Available for download3
Downloads (6 Weeks)37
Downloads (12 Months)359
Downloads (cumulative)1,366
Average downloads per article455.33
Average citations per article2.71
View colleagues of Ingo Scholtes


Author image not provided  Frank Schweitzer

No contact information provided yet.

Bibliometrics: publication history
Publication years1996-2017
Publication count20
Citation Count193
Available for download11
Downloads (6 Weeks)35
Downloads (12 Months)317
Downloads (cumulative)3,990
Average downloads per article362.73
Average citations per article9.65
View colleagues of Frank Schweitzer

top of pageREFERENCES

Note: 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
 
3
 
4
 
5
M. Bastian, S. Heymann, and M. Jacomy. Gephi: An open source software for exploring and manipulating networks. In Proceedings of the ICWSM '09. AAAI, 2009.
 
6
7
 
8
E. Bertin. A concise introduction to the statistical physics of complex systems. Springer, 2012.
9
 
10
 
11
J. Cruz and C. Dorea. Simple conditions for the convergence of simulated annealing type algorithms. Journal of applied probability, pages 885--892, 1998.
 
12
 
13
E. W. Dijkstra. On the role of scientific thought. In Selected Writings on Computing: A Personal Perspective, pages 60--66. Springer, 1982.
 
14
 
15
 
16
 
17
M. M. Geipel. Modularity, dependence and change. Advances in Complex Systems, 15(06), 2012.
 
18
 
19
 
20
 
21
E. Hautus. Improving java software through package structure analysis. In The 6th IASTED International Conference Software Engineering and Applications, 2002.
 
22
S. Kirkpatrick, D. G. Jr., and M. P. Vecchi. Optimization by simmulated annealing. science, 220(4598):671--680, 1983.
 
23
 
24
 
25
 
26
N. Metropolis, A.W. Rosenbluth, M. N. Rosenbluth, A. H. Teller, and E. Teller. Equation of state calculations by fast computing machines. The journal of chemical physics, 21:1087, 1953.
 
27
D. Mitra, F. Romeo, and A. Sangiovanni-Vincentelli. Convergence and finite-time behavior of simulated annealing. In Decision and Control, 1985 24th IEEE Conference on, volume 24, pages 761--767. IEEE, 1985.
 
28
M. E. J. Newman. Mixing patterns in networks. Phy. Review E, 67: 026126, 2003.
 
29
M. E. J. Newman and M. Girvan. Finding and evaluating community structure in networks. Physical Review E, 69:026113, 2004.
30
 
31
 
32
S. Parsa and O. Bushehrian. Genetic clustering with constraints. Journal of research and practice in information technology, 39(1):47--60, 2007.
 
33
 
34
 
35
 
36
J. Tessier. The dependency finder user manual. . Dependency Finder (2001-2012). Revised BSD License., 2012.
 
37
C. J. Tessone, M. M. Geipel, and F. Schweitzer. Sustainable growth in complex networks. EPL (Europhysics Letters), 96:58005, 2011.
 
38
Y. Umeda, S. Fukushige, K. Tonoike, and S. Kondoh. Product modularity for life cycle design. CIRP Annals-Manufacturing Technology, 57(1):13--16, 2008.
 
39
 
40
F. Y.Wu. The potts model. Reviews of Modern Physics, 54:235, 1982.
 
41
 
42
 
43
M. S. Zanetti. A complex systems approach to software engineering. PhD thesis, Diss., Eidgenössische Technische Hochschule ETH Zürich, Nr. 21653, 2013, 2013.
 
44
M. S. Zanetti and F. Schweitzer. A network perspective on software modularity. In Architecture of Computing Systems (ARCS) Workshops 2012, pages 175--186. GI, IEEE, 2012.

top of pageCITED BY

top of pageINDEX TERMS

The ACM Computing Classification System (CCS rev.2012)

Note: Larger/Darker text within each node indicates a higher relevance of the materials to the taxonomic classification.

top of pagePUBLICATION

Title MODULARITY '14 Proceedings of the 13th international conference on Modularity table of contents
Conference Chairs Achille Peternier University of Lugano, Switzerland
General Chairs Walter Binder University of Lugano, Switzerland
Program Chairs Erik Ernst Aarhus University, Denmark
Robert Hirschfeld Hasso-Plattner-Institut Potsdam, Germany
Pages 73-84
Publication Date2014-04-22 (yyyy-mm-dd)
Sponsors AOSA Aspect-Oriented Software Association
In-Cooperations SIGPLAN ACM Special Interest Group on Programming Languages
SIGSOFT ACM Special Interest Group on Software Engineering
PublisherACM New York, NY, USA ©2014
ISBN: 978-1-4503-2772-5 doi>10.1145/2577080.2577097
Conference MODULARITYModularity (formerly known as Aspect-oriented Software Development - AOSD) MODULARITY logo
Paper Acceptance Rate 21 of 60 submissions, 35%
Overall Acceptance Rate 178 of 718 submissions, 25%
Year Submitted Accepted Rate
AOSD '06 96 23 24%
AOSD '07 107 19 18%
AOSD '08 79 17 22%
AOSD '09 86 19 22%
AOSD '10 62 18 29%
AOSD '11 95 23 24%
AOSD '12 79 20 25%
AOSD '13 54 18 33%
MODULARITY '14 60 21 35%
Overall 718 178 25%

top of pageREVIEWS


Reviews are not available for this item
Computing Reviews logo

top of pageCOMMENTS

Be the first to comment To Post a comment please sign in or create a free Web account

top of pageTable of Contents

Proceedings of the 13th international conference on Modularity
Table of Contents
SESSION: Language mechanisms I
Session details: Language mechanisms I
Julia Lawall
doi>10.1145/3251082
Delegation proxies: the power of propagation
Erwann Wernli, Oscar Nierstrasz, Camille Teruel, Stéphane Ducasse
Pages: 1-12
doi>10.1145/2577080.2577081
Full text: PDFPDF

Scoping behavioral variations to dynamic extents is useful to support non-functional requirements that otherwise result in cross-cutting code. Unfortunately, such variations are difficult to achieve with traditional reflection or aspects. We show that ...
expand
Composable user-defined operators that can express user-defined literals
Kazuhiro Ichikawa, Shigeru Chiba
Pages: 13-24
doi>10.1145/2577080.2577092
Full text: PDFPDF

This paper proposes new composable user-defined operators, named protean operators. They can express various language extensions including user-defined literals such as regular expression literals as well as user-defined expressions. Their expressiveness ...
expand
REScala: bridging between object-oriented and functional style in reactive applications
Guido Salvaneschi, Gerold Hintz, Mira Mezini
Pages: 25-36
doi>10.1145/2577080.2577083
Full text: PDFPDF

Traditionally, object-oriented software adopts the Observer pattern to implement reactive behavior. Its drawbacks are well-documented and two families of alternative approaches have been proposed, extending object-oriented languages with concepts from ...
expand
FlowR: aspect oriented programming for information flow control in ruby
Thomas F. J.-M. Pasquier, Jean Bacon, Brian Shand
Pages: 37-48
doi>10.1145/2577080.2577090
Full text: PDFPDF

This paper reports on our experience with providing Information Flow Control (IFC) as a library. Our aim was to support the use of an unmodified Platform as a Service (PaaS) cloud infrastructure by IFC-aware web applications. We discuss how Aspect ...
expand
SESSION: Software evolution
Session details: Software evolution
Christoph Bockisch
doi>10.1145/3251083
Assessing modularity using co-change clusters
Luciana Lourdes Silva, Marco Tulio Valente, Marcelo de A. Maia
Pages: 49-60
doi>10.1145/2577080.2577086
Full text: PDFPDF

The traditional modular structure defined by the package hierarchy suffers from the dominant decomposition problem and it is widely accepted that alternative forms of modularization are necessary to increase developer's productivity. In this paper, we ...
expand
Blending and reusing rules for architectural degradation prevention
Alessandro Gurgel, Isela Macia, Alessandro Garcia, Arndt von Staa, Mira Mezini, Michael Eichberg, Ralf Mitschke
Pages: 61-72
doi>10.1145/2577080.2577087
Full text: PDFPDF

As software systems are maintained, their architecture often de-grades through the processes of architectural drift and erosion. These processes are often intertwined and the same modules in the code become the locus of both drift and erosion symptoms. ...
expand
Automated software remodularization based on move refactoring: a complex systems approach
Marcelo Serrano Zanetti, Claudio Juan Tessone, Ingo Scholtes, Frank Schweitzer
Pages: 73-84
doi>10.1145/2577080.2577097
Full text: PDFPDF

Modular design is a desirable characteristic of complex software systems that can significantly improve their comprehensibility, maintainability and thus quality. While many software systems are initially created in a modular way, over time modularity ...
expand
SESSION: Modularity visions
Session details: Modularity visions
Christoph Bockisch
doi>10.1145/3251084
Context-oriented software engineering: a modularity vision
Tetsuo Kamina, Tomoyuki Aotani, Hidehiko Masuhara, Tetsuo Tamai
Pages: 85-98
doi>10.1145/2577080.2579816
Full text: PDFPDF

There are a number of constructs to implement context-dependent behavior, such as conditional branches using if statements, method dispatching in object-oriented programming (such as the state design pattern), dynamic deployment of aspects in aspect-oriented ...
expand
SESSION: Understanding programmers
Session details: Understanding programmers
Guido Salvaneschi
doi>10.1145/3251085
Type names without static type checking already improve the usability of APIs (as long as the type names are correct): an empirical study
Samuel Spiza, Stefan Hanenberg
Pages: 99-108
doi>10.1145/2577080.2577098
Full text: PDFPDF

In the discussion about the usefulness of static or dynamic type systems there is often the statement that static type systems improve the documentation of software. In the meantime there exists even some empirical evidence for this statement. One of ...
expand
How do programmers use optional typing?: an empirical study
Carlos Souza, Eduardo Figueiredo
Pages: 109-120
doi>10.1145/2577080.2582208
Full text: PDFPDF

The recent popularization of dynamically typed languages, such as Ruby and JavaScript, has brought more attention to the discussion about the impact of typing strategies on development. Types allow the compiler to find type errors earlier and potentially ...
expand
An empirical study on how developers reason about module cohesion
Bruno C. da Silva, Claudio N. Sant'Anna, Christina von F.G. Chavez
Pages: 121-132
doi>10.1145/2577080.2577096
Full text: PDFPDF

Several cohesion metrics have been proposed to support development and maintenance activities. The most traditional ones are the structural cohesion metrics, which rely on structural information in the source code. For instance, many of these metrics ...
expand
SESSION: The meaning of programs
Session details: The meaning of programs
Eric Bodden
doi>10.1145/3251086
Compositional reasoning about aspect interference
Ismael Figueroa, Tom Schrijvers, Nicolas Tabareau, Éric Tanter
Pages: 133-144
doi>10.1145/2577080.2577093
Full text: PDFPDF

Oliveira and colleagues recently developed a powerful model to reason about mixin-based composition of effectful components and their interference, exploiting a wide variety of techniques such as equational reasoning, parametricity, and algebraic laws ...
expand
Reusable components of semantic specifications
Martin Churchill, Peter D. Mosses, Paolo Torrini
Pages: 145-156
doi>10.1145/2577080.2577099
Full text: PDFPDF

Semantic specifications of programming languages typically have poor modularity. This hinders reuse of parts of the semantics of one language when specifying a different language -- even when the two languages have many constructs in common -- and evolution ...
expand
AspectJML: modular specification and runtime checking for crosscutting contracts
Henrique Rebêlo, Gary T. Leavens, Mehdi Bagherzadeh, Hridesh Rajan, Ricardo Lima, Daniel M. Zimmerman, Márcio Cornélio, Thomas Thüm
Pages: 157-168
doi>10.1145/2577080.2577084
Full text: PDFPDF

Aspect-oriented programming (AOP) is a popular technique for modularizing crosscutting concerns. In this context, researchers have found that the realization of design by contract (DbC) is crosscutting and fares better when modularized by AOP. However, ...
expand
SESSION: Software product lines
Session details: Software product lines
Stefan Hanenberg
doi>10.1145/3251087
Probabilistic model checking for energy analysis in software product lines
Clemens Dubslaff, Sascha Klüppelholz, Christel Baier
Pages: 169-180
doi>10.1145/2577080.2577095
Full text: PDFPDF

In a software product line (SPL), a collection of software products is defined by their commonalities in terms of features rather than explicitly specifying all products one-by-one. Several verification techniques were adapted to establish temporal ...
expand
Systematic derivation of static analyses for software product lines
Jan Midtgaard, Claus Brabrand, Andrzej Wasowski
Pages: 181-192
doi>10.1145/2577080.2577091
Full text: PDFPDF

A recent line of work lifts particular verification and analysis methods to Software Product Lines (SPL). In an effort to generalize such case-by-case approaches, we develop a systematic methodology for lifting program analyses to SPLs using abstract ...
expand
SESSION: Concurrency
Session details: Concurrency
Gary T. Leavens
doi>10.1145/3251088
Aspectual session types
Nicolas Tabareau, Mario Südholt, Éric Tanter
Pages: 193-204
doi>10.1145/2577080.2577085
Full text: PDFPDF

Multiparty session types allow the definition of distributed processes with strong communication safety properties. A global type is a choreographic specification of the interactions between peers, which is then projected locally in each peer. Well-typed ...
expand
JEScala: modular coordination with declarative events and joins
Jurgen M. Van Ham, Guido Salvaneschi, Mira Mezini, Jacques Noyé
Pages: 205-216
doi>10.1145/2577080.2577082
Full text: PDFPDF

Advanced concurrency abstractions overcome the drawbacks of low-level techniques such as locks and monitors, freeing programmers that implement concurrent applications from the burden of concentrating on low-level details. However, with current approaches ...
expand
SESSION: Language mechanisms II
Session details: Language mechanisms II
Walter Cazzola
doi>10.1145/3251089
Designing information hiding modularity for model transformation languages
Andreas Rentschler, Dominik Werle, Qais Noorshams, Lucia Happe, Ralf Reussner
Pages: 217-228
doi>10.1145/2577080.2577094
Full text: PDFPDF

Development and maintenance of model transformations make up a substantial share of the lifecycle costs of software products that rely on model-driven techniques. In particular large and heterogeneous models lead to poorly understandable transformation ...
expand
JavaScript module system: exploring the design space
Junhee Cho, Sukyoung Ryu
Pages: 229-240
doi>10.1145/2577080.2577088
Full text: PDFPDF

While JavaScript is one of the most widely used programming languages not only for web applications but also for large projects, it does not provide a language-level module system. JavaScript developers have used the module pattern to avoid name ...
expand
Modular specification and dynamic enforcement of syntactic language constraints when generating code
Sebastian Erdweg, Vlad Vergu, Mira Mezini, Eelco Visser
Pages: 241-252
doi>10.1145/2577080.2577089
Full text: PDFPDF

A key problem in metaprogramming and specifically in generative programming is to guarantee that generated code is well-formed with respect to the context-free and context-sensitive constraints of the target language. We propose typesmart constructors ...
expand

Powered by The ACM Guide to Computing Literature


The ACM Digital Library is published by the Association for Computing Machinery. Copyright © 2019 ACM, Inc.
Terms of Usage   Privacy Policy   Code of Ethics   Contact Us