skip to main content
10.1145/2451436.2451448acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Modular specification and checking of structural dependencies

Published: 24 March 2013 Publication History

Abstract

Checking a software's structural dependencies is a line of research on methods and tools for analyzing, modeling and checking the conformance of source code w.r.t. specifications of its intended static structure. Existing approaches have focused on the correctness of the specification, the impact of the approaches on software quality and the expressiveness of the modeling languages. However, large specifications become unmaintainable in the event of evolution without the means to modularize such specifications. We present Vespucci, a novel approach and tool that partitions a specification of the expected and allowed dependencies into a set of cohesive slices. This facilitates modular reasoning and helps individual maintenance of each slice. Our approach is suited for modeling high-level as well as detailed low-level decisions related to the static structure and combines both in a single modeling formalism. To evaluate our approach we conducted an extensive study spanning nine years of the evolution of the architecture of the object-relational mapping framework Hibernate.

References

[1]
Hello2Morrow Sotograph. http://www.hello2morrow.com/products/sotograph (accessed Oct. 2012).
[2]
Vespucci. http://www.opal-project.de/vespucci project.
[3]
M. Abi-Antoun and J. Aldrich. Static extraction and conformance analysis of hierarchical runtime architectural structure using annotations. OOPSLA, 2009.
[4]
M. Aoyama. Metrics and analysis of software architecture evolution with discontinuity. IWPSE, 2002.
[5]
C. Bauer and G. King. Hibernate in Action. Manning Publications Co., 2004.
[6]
H. Breivold, I. Crnkovic, and P. Eriksson. Analyzing software evolvability. COMPSAC, 2008.
[7]
O. de Moor, D. Sereni, M. Verbaere, E. Hajiyev, P. Avgustinov, T. Ekman, N. Ongkingco, and J. Tibble. .QL: Object-Oriented Queries Made Easy. In Generative and Transformational Techniques in Software Engineering II. Springer-Verlag, 2008.
[8]
L. de Silva and D. Balasubramaniam. Controlling software architecture erosion: A survey. Journal of Systems and Software, 85(1), 2012.
[9]
M. Eichberg, M. Kahl, D. Saha, M. Mezini, and K. Ostermann. Automatic incrementalization of prolog based static analyses. PADL. 2007.
[10]
M. Eichberg, S. Kloppenburg, K. Klose, and M. Mezini. Defining and continuous checking of structural program dependencies. ICSE, 2008.
[11]
S. G. Eick, T. L. Graves, A. F. Karr, J. S. Marron, and A. Mockus. Does code decay? assessing the evidence from change management data. IEEE Trans. Softw. Eng., 27(1), 2001.
[12]
E. Gamma, R. Helm, R. E. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
[13]
D. Garlan, J. Barnes, B. Schmerl, and O. Celiku. Evolution styles: Foundations and tool support for software architecture evolution. WICSA/ECSA, 2009.
[14]
E. Gasparis, J. Nicholson, and A. H. Eden. Lepus3: An object-oriented design description language. Diagrams, 2008.
[15]
M. W. Godfrey and E. H. S. Lee. Secrets from the monster: Extracting mozilla's software architecture. COSET, 2000.
[16]
S. Herold. Checking architectural compliance in component-based systems. SAC, 2010.
[17]
D. Hou and H. J. Hoover. Using scl to specify and check design intent in source code. IEEE Trans. Softw. Eng., 32(6), 2006.
[18]
I. Jacobson and P.-W. Ng. Aspect-Oriented Software Development with Use Cases. Addison-Wesley, 2004.
[19]
J. Knodel, D. Muthig, U. Haury, and G. Meier. Architecture compliance checking - experiences from successful technology transfer to industry. CSMR, 2008.
[20]
J. Knodel, D. Muthig, M. Naab, and M. Lindvall. Static evaluation of software architectures. CSMR, 2006.
[21]
R. Koschke and D. Simon. Hierarchical reflexion models. WCRE, 2003.
[22]
A. MacCormack, J. Rusnak, and C. Y. Baldwin. Exploring the structure of complex software designs: An empirical study of open source and proprietary code. Manage. Sci., 52, 2006.
[23]
K. Mens, A. Kellens, F. Pluquet, and R. Wuyts. Co-evolving code and design with intensional views. Comput. Lang. Syst. Struct., 32(2-3), 2006.
[24]
C. Morgan, K. De Volder, and E. Wohlstadter. A static aspect language for checking design rules. AOSD, 2007.
[25]
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, 1995.
[26]
D. E. Perry and A. L. Wolf. Foundations for the study of software architecture. SIGSOFT Softw. Eng. Notes, 17(4), Oct. 1992.
[27]
J. Rosik, A. Le Gear, J. Buckley, and M. Ali Babar. An industrial case study of architecture conformance. ESEM, 2008.
[28]
N. Sangal, E. Jordan, V. Sinha, and D. Jackson. Using dependency models to manage complex software architecture. OOPSLA, 2005.
[29]
M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, Upper Saddle River, NJ, USA, 1996.
[30]
M. Siff and T. Reps. Identifying modules via concept analysis. 25(6):749--768, 1999.
[31]
H. A. Simon. The architecture of complexity. In Proceedings of the APS, 1962.
[32]
R. Terra and M. T. Valente. A dependency constraint language to manage object-oriented software architectures. Softw.: Practice and Experience, 39(12), 2009.
[33]
S. Wong, Y. Cai, M. Kim, and M. Dalton. Detecting software modularity violations. ICSE, 2011.

Cited By

View all
  • (2023)A Flexible Approach for Solving Quality Issues by Means of Collecting Runtime Data2023 International Conference on Software and System Engineering (ICoSSE)10.1109/ICoSSE58936.2023.00014(30-37)Online publication date: Apr-2023
  • (2021)A Two-Level Approach Based on Model Checking to Support Architecture Conformance CheckingFormal Methods: Foundations and Applications10.1007/978-3-030-92137-8_1(1-16)Online publication date: 26-Nov-2021
  • (2017)DCL 2.0: modular and reusable specification of architectural constraintsJournal of the Brazilian Computer Society10.1186/s13173-017-0061-z23:1Online publication date: 16-Aug-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
AOSD '13: Proceedings of the 12th annual international conference on Aspect-oriented software development
March 2013
232 pages
ISBN:9781450317665
DOI:10.1145/2451436
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • AOSA: Aspect-Oriented Software Association

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 24 March 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. modularity
  2. scalability
  3. software architectures
  4. static analysis
  5. structural dependency constraints

Qualifiers

  • Research-article

Conference

AOSD '13
Sponsor:
  • AOSA
AOSD '13: Aspect-Oriented Software Development
March 24 - 29, 2013
Fukuoka, Japan

Acceptance Rates

Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)0
Reflects downloads up to 27 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)A Flexible Approach for Solving Quality Issues by Means of Collecting Runtime Data2023 International Conference on Software and System Engineering (ICoSSE)10.1109/ICoSSE58936.2023.00014(30-37)Online publication date: Apr-2023
  • (2021)A Two-Level Approach Based on Model Checking to Support Architecture Conformance CheckingFormal Methods: Foundations and Applications10.1007/978-3-030-92137-8_1(1-16)Online publication date: 26-Nov-2021
  • (2017)DCL 2.0: modular and reusable specification of architectural constraintsJournal of the Brazilian Computer Society10.1186/s13173-017-0061-z23:1Online publication date: 16-Aug-2017
  • (2016)Modular Specification of Architectural Constraints2016 X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS)10.1109/SBCARS.2016.23(31-40)Online publication date: Sep-2016
  • (2016)Software architecture constraint reuse-by-compositionFuture Generation Computer Systems10.1016/j.future.2016.02.00661:C(37-53)Online publication date: 1-Aug-2016
  • (2014)i3QLACM SIGPLAN Notices10.1145/2714064.266024249:10(417-432)Online publication date: 15-Oct-2014
  • (2014)i3QLProceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications10.1145/2660193.2660242(417-432)Online publication date: 15-Oct-2014
  • (2014)A software product line for static analysesProceedings of the 3rd ACM SIGPLAN International Workshop on the State of the Art in Java Program Analysis10.1145/2614628.2614630(1-6)Online publication date: 12-Jun-2014
  • (2014)Effort Estimation for Architectural Refactoring to Introduce Module IsolationSoftware Architecture10.1007/978-3-319-09970-5_26(300-307)Online publication date: 2014

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media