skip to main content
10.1145/1368088.1368142acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Defining and continuous checking of structural program dependencies

Published: 10 May 2008 Publication History

Abstract

Dependencies between program elements need to be modeled from different perspectives reflecting architectural, design, and implementation level decisions. To avoid erosion of the intended structure of the code, it is necessary to explicitly codify these different perspectives on the permitted dependencies and to detect violations continuously and incrementally as software evolves.
We propose an approach that uses declarative queries to group source elements - across programming language module boundaries - into overlapping ensembles. The dependencies between these ensembles are also specified as logic queries. The approach has been integrated into the incremental build process of Eclipse to ensure continuous checking, using an engine for tabled and incremental evaluation of logic queries. Our evaluation shows that our approach is fast enough for day-to-day use along the incremental build process of modern IDEs.

References

[1]
P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. abc: an extensible aspectj compiler. In Proceedings of AOSD'05, New York, NY, USA, 2005. ACM Press.
[2]
D. Beyer, C. Lewerentz, and A. Noack. Efficient relational calculation for software analysis. IEEE Transactions on Software Engineering, 31, 2005.
[3]
A. Blewitt, A. Bundy, and I. Stark. Automatic verification of design patterns in java. In Proceedings of ASE '05, New York, NY, USA, 2005. ACM Press.
[4]
R. E. Bryant. Symbolic boolean manipulation with ordered binary-decision diagrams. ACM Comput. Surv., 24(3), 1992.
[5]
F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal. Pattern-oriented software architecture: a system of patterns. John Wiley & Sons, Inc., 1996.
[6]
S. Ceri, G. Gottlob, and L. Tanca. What you always wanted to know about datalog (and never dared to ask). IEEE Transactions on Knowledge and Data Engineering, 1(1), 1989.
[7]
M. Consens, A. Mendelzon, and A. Ryman. Visualizing and querying software structures. In Proceedings of ICSE '92, pages 138--156, New York, NY, USA, 1992. ACM Press.
[8]
M. Eichberg, M. Kahl, D. Saha, M. Mezini, and K. Ostermann. Automatic incrementalization of Prolog based static analyses. In Proceedings of PADL'07. Springer, 2007.
[9]
M. Eichberg, M. Mezini, S. Kloppenburg, K. Ostermann, and B. Rank. Integrating and scheduling an open set of static analyses. In Proceedings of ASE'06. IEEE Computer Society, 2006.
[10]
M. Eichberg, T. Schäfer, and M. Mezini. Using annotations to check structural properties of classes. In Proceedings of FASE 2005. Springer, 2005.
[11]
L. M. G. Feijs and R. C. van Ommering. Relation partition algebra - mathematical aspects of uses and part-of relations. Science of Computer Programming, 33(2), 1999.
[12]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns. Addison-Wesley Professional, January 1995.
[13]
E. Hajiyev, M. Verbaere, and O. de Moor. Codequest: Scalable source code queries with datalog. In Proceedings of ECOOP'06, 2006.
[14]
E. Hajiyev, M. Verbaere, O. de Moor, and K. de Volder. Codequest: querying source code with datalog. In Proceeding of OOPSLA '05, New York, NY, USA, 2005. ACM Press.
[15]
W. Harrison, H. Ossher, S. Sutton, and P. Tarr. Concern modeling in the concern manipulation environment. In : Proceedings of MACS '05, New York, NY, USA, 2005. ACM Press.
[16]
W. Harrison, H. Ossher, S. Sutton, and P. Tarr. Concern modeling in the concern manipulation environment. In : Proceedings of MACS '05, New York, NY, USA, 2005. ACM Press.
[17]
D. Hou, J. H. Hoover, and P. Rudnicki. Specifying framework constraints with FCL. In Proceedings of CASCON'04. IBM Press, 2004.
[18]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. In Proceedings of ECOOP'01. Springer, 2001.
[19]
J. Knodel, D. Muthig, and M. Naab. Understanding software architectures by visualization-an experiment with graphical elements. In Proceedings of WCRE '06, 2006.
[20]
P. Lam and M. Rinard. A type system and analysis for the automatic extraction and enforcement of design information. In Proceedings of ECOOP'2003, 2003.
[21]
H. C. Lovatt, A. M. Sloane, and D. R. Verity. A pattern enforcing compiler (PEC) for Java: using the compiler. In Proceedings of APCCM'05. Australian Computer Society, Inc., 2005.
[22]
K. Mens, A. Kellens, F. Pluquet, and R. Wuyts. Co-evolving code and design with intensional views: A case study. Computer Languages, Systems & Structures, 32(2--3), 2006.
[23]
K. Mens, I. Michiels, and R. Wuyts. Supporting software development through declaratively codified programming patterns. Expert Systems with Applications, 23(4), 2002.
[24]
N. H. Minsky. Should architectural principles be enforced? Computer Security, Dependability and Assurance: From Needs to Solutions, 1998.
[25]
N. H. Minsky and P. P. Pal. Law-governed regularities in object systems. part 2: a concrete implementation. Theor. Pract. Object Syst., 3(2), 1997.
[26]
H. Muller, M. Orgun, S. Tilley, and J. Uhl. A reverse engineering approach to subsystem structure identification. Journal of Software Maintenance: Research and Practice, 5(4):181--204, 1993.
[27]
G. C. Murphy, D. Notkin, and K. Sullivan. Software reflexion models: bridging the gap between source and high-level models. In Proceedings of FSE'95. ACM Press, 1995.
[28]
J. Muskens, R. Bril, and M. Chaudron. Generalizing consistency checking between software views. Proceedings of WICSA'05, 0, 2005.
[29]
D. E. Perry and A. L. Wolf. Foundations for the study of software architecture. SIGSOFT Softw. Eng. Notes, 17(4), 1992.
[30]
A. Postma. A method for module architecture verification and its application on a large component-based system. Information and Software Technology, 45(4), 2003.
[31]
A. Postma. A method for module architecture verification and its application on a large component-based system. Information and Software Technology, 45(4), 2003.
[32]
K. Sagonas and T. Swift. An abstract machine for tabled execution of fixed-order stratified logic programs. ACM TOPLAS'98, 20(3), 1998.
[33]
D. Saha and C. R. Ramakrishnan. Incremental and demand-driven points-to analysis using logic programming. In Proceedings of PPDP '05, New York, NY, USA, 2005. ACM Press.
[34]
M. Sefika, A. Sane, and R. Campbell. Monitoring compliance of a software system with its high-level design models. Proceedings of ICSE'96, 1996.
[35]
M. Shomrat and A. Yehudai. Obvious or not?: regulating architectural decisions using aspect-oriented programming. In Proceedings of AOSD 2002. ACM Press, 2002.
[36]
T. Tourwe, J. Brichau, A. Kellens, and K. Gybels. Induced intentional software views. Computer Languages, Systems & Structures, 30(1--2), 2004.
[37]
J. van Gurp and J. Bosch. Design erosion: Problems and causes. Journal of Systems and Software, 61(2), 2002.
[38]
R. C. van Ommering, R. L. Krikhaar, and L. M. G. Feijs. Languages for formalizing, visualizing and verifying software architectures. Comput. Lang., 27(1/3), 2001.

Cited By

View all
  • (2024)Toward Declarative Auditing of Java Software for Graceful Exception HandlingProceedings of the 21st ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3679007.3685057(90-97)Online publication date: 13-Sep-2024
  • (2021)A Domain-Specific Language to Specify Planned Architectures of Adaptive SystemsProceedings of the 15th Brazilian Symposium on Software Components, Architectures, and Reuse10.1145/3483899.3483903(41-50)Online publication date: 27-Sep-2021
  • (2021)DIFFBASE: a differential factbase for effective software evolution managementProceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3468264.3468605(503-515)Online publication date: 20-Aug-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '08: Proceedings of the 30th international conference on Software engineering
May 2008
558 pages
ISBN:9781605580791
DOI:10.1145/1368088
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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 10 May 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. continuous checking
  2. controlling program dependencies
  3. datalog
  4. static analysis

Qualifiers

  • Research-article

Conference

ICSE '08
Sponsor:

Acceptance Rates

ICSE '08 Paper Acceptance Rate 56 of 370 submissions, 15%;
Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)11
  • Downloads (Last 6 weeks)1
Reflects downloads up to 22 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Toward Declarative Auditing of Java Software for Graceful Exception HandlingProceedings of the 21st ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3679007.3685057(90-97)Online publication date: 13-Sep-2024
  • (2021)A Domain-Specific Language to Specify Planned Architectures of Adaptive SystemsProceedings of the 15th Brazilian Symposium on Software Components, Architectures, and Reuse10.1145/3483899.3483903(41-50)Online publication date: 27-Sep-2021
  • (2021)DIFFBASE: a differential factbase for effective software evolution managementProceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3468264.3468605(503-515)Online publication date: 20-Aug-2021
  • (2020)Modular collaborative program analysis in OPALProceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3368089.3409765(184-196)Online publication date: 8-Nov-2020
  • (2019)Detecting Design Violations in Django-based Web ApplicationsProceedings of the XIII Brazilian Symposium on Software Components, Architectures, and Reuse10.1145/3357141.3357600(33-42)Online publication date: 23-Sep-2019
  • (2019)GigahorseProceedings of the 41st International Conference on Software Engineering10.1109/ICSE.2019.00120(1176-1186)Online publication date: 25-May-2019
  • (2019)Constraining the Implementation Through Architectural Security Rules: An Expert StudyProduct-Focused Software Process Improvement10.1007/978-3-030-35333-9_15(203-219)Online publication date: 18-Nov-2019
  • (2018)Industrial experience on code clean-up using architectural conformance checkingProceedings of the 12th European Conference on Software Architecture: Companion Proceedings10.1145/3241403.3241453(1-7)Online publication date: 24-Sep-2018
  • (2017)Porting doop to SouffléProceedings of the 6th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis10.1145/3088515.3088522(25-30)Online publication date: 18-Jun-2017
  • (2017)On the Understandability of Semantic Constraints for Behavioral Software Architecture Compliance: A Controlled Experiment2017 IEEE International Conference on Software Architecture (ICSA)10.1109/ICSA.2017.10(155-164)Online publication date: Apr-2017
  • Show More Cited By

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