Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
An intelligent tool for re-engineering software modularity
ICSE '91 Proceedings of the 13th international conference on Software engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
DBPL '01 Revised Papers from the 8th International Workshop on Database Programming Languages
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Efficient Relational Calculation for Software Analysis
IEEE Transactions on Software Engineering
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using dependency models to manage software architecture
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Understanding the shape of Java software
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
An empirical study of cycles among classes in Java
Empirical Software Engineering
Graphs-at-a-time: query language and access methods for graph databases
Proceedings of the 2008 ACM SIGMOD international conference on Management of data
Cluster analysis of Java dependency graphs
Proceedings of the 4th ACM symposium on Software visualization
How Do Java Programs Use Inheritance? An Empirical Study of Inheritance in Java Software
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
An Empirical Study of Unused Design Decisions in Open Source Java Software
APSEC '08 Proceedings of the 2008 15th Asia-Pacific Software Engineering Conference
Design Pattern Formalization Techniques
Design Pattern Formalization Techniques
Identifying Architectural Bad Smells
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
On the automated modularisation of java programs using service locators
SC'12 Proceedings of the 11th international conference on Software Composition
On the existence of high-impact refactoring opportunities in programs
ACSC '12 Proceedings of the Thirty-fifth Australasian Computer Science Conference - Volume 122
Scalable motif detection and aggregation
ADC '12 Proceedings of the Twenty-Third Australasian Database Conference - Volume 124
Hi-index | 0.00 |
To deal with the challenges when building large and complex systems modularisation techniques such as component-based software engineering and aspect-oriented programming have been developed. In the Java space these include dependency injection frameworks and dynamic component models such as OSGi. The question arises as to how easy it will be to transform existing systems to take advantage of these new techniques. Anecdotal evidence from industry suggests that the presence of certain patterns presents barriers to refactoring of monolithic systems into a modular architecture. In this paper, we present such a set of patterns and analyse a large set of open-source systems for occurrences of these patterns. We use a novel, scalable static analyser that we have developed for this purpose. The key findings of this paper are that almost all programs investigated have a significant number of these patterns, implying that modularising will be therefore difficult and expensive.