Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1029894.1029918acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

Implementing protocols via declarative event patterns

Published: 31 October 2004 Publication History

Abstract

This paper introduces declarative event patterns (DEPs) as a means to implement protocols while improving their traceability, comprehensibility, and maintainability. DEPs are descriptions of sequences of events in the execution of a system that include the ability to recognize properly nested event structures. DEPs allow a developer to describe a protocol at a high-level, without the need to express extraneous details. A developer can indicate that specific actions be taken when a given pattern occurs. DEPs are automatically translated into the appropriate instrumentation and automaton for recognizing a given pattern. Support for DEPs has been implemented in a proof-of-concept extension to the AspectJ language that is based on advanced compiler technology. A case study is described that compares the use of DEPs in the implementation of a protocol (FTP user authentication) to the use of a set of other approaches, both object-oriented and aspect-oriented.

References

[1]
R. Åberg et al. On the automatic evolution of an OS kernel using temporal logic and AOP. In Int'l Conf. Automated Softw. Eng., 2003.]]
[2]
A. Aho, R. Sethi, and J. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986.]]
[3]
J. Aycock and N. Horspool. Schrodinger's token. Software---Practice & Experience, 31(8), 2001.]]
[4]
J. Aycock, N. Horspool, J. Janouek, and B. Melichar. Even faster generalized LR parsing. Acta Informatica, 37(9), 2001.]]
[5]
W. Bartussek and D. Parnas. Using assertions about traces to write abstract specifications for software modules. In Information Systems Methodology, 1978. LNCS 65.]]
[6]
J. Bradfield and C. Stirling. Modal logics and mu-calculi. In Handbook of Process Algebra. Elsevier, 2001.]]
[7]
S. Butkevich, M. Renedo, G. Baumgartner, and M. Young. Compiler and tool support for debugging object protocols. In Int'l Symp. Foundations Softw. Eng., 2000.]]
[8]
T. Colcombet and P. Fradet. Enforcing trace properties by program transformation. In Symp. Princ. Progr. Lang., 2000.]]
[9]
Cs3 Inc. TriggerWare: Infrastructure for Event Reasoning Applications, Version 1.0, 2004. http://www.cs3-inc.com/www.cs3-inc.com.]]
[10]
W. De Pauw, D. Lorenz, J. Vlissides, and M. Wegman. Execution patterns in object-oriented visualization. In USENIX Conf. Object-Oriented Tech. and Sys., 1998.]]
[11]
R. Douence, P. Fradet, and M. Südholt. A framework for the detection and resolution of aspect interactions. In Int'l Conf. Generic Prog. and Component Eng., 2002. LNCS 2487.]]
[12]
R. Douence, O. Motelet, and M. Südholt. A formal definition of crosscuts. In Metalevel Architectures and Separation of Crosscutting Concerns, 2001. LNCS 2192.]]
[13]
R. Douence and M. Südholt. A model and a tool for event-based aspect-oriented programming (EAOP). TR 02/11/INFO, Ecole des Mines de Nantes, 2002.]]
[14]
M. Feather. Reuse in the context of a transformation-based methodology. In T. Biggerstaff and A. Perlis, editors, Software Reusability, volume 1. Addison--Wesley, 1989.]]
[15]
S. Fickas and M. Feather. Requirements monitoring in dynamic environments. In IEEE Symp. Requirements Eng., 1995.]]
[16]
R. Filman and K. Havelund. Source-code instrumentation and quantification of events. In Wkshp. Foundations Aspect-Oriented Lang. at AOSD, 2002.]]
[17]
D. Hoffman and P. Strooper. State abstraction and modular software development. In Int'l Symp. Foundations Softw. Eng., 1995.]]
[18]
JAsCo tool. http://ssel.vub.ac.be/jascossel.vub.ac.be/jasco, 2004.]]
[19]
G. Kiczales et al. An overview of AspectJ. In Proc. European Conf. Object-Oriented Progr., 2001. LNCS 2072.]]
[20]
D. Knuth. On the translation of languages from left to right. Information and Control, 8(6), 1965.]]
[21]
E. Ochmanski. Recognizable trace languages. In The Book of Traces. World Scientific, 1995.]]
[22]
J. Postel and J. Reynolds. File Transfer Protocol (FTP). Request for Comments 959, Network Working Group, 1985.]]
[23]
S. Reiss and M. Renieris. Encoding program executions. In Int'l Conf. Softw. Eng., 2001.]]
[24]
D. Sereni and O. de Moor. Static analysis of aspects. In Int'l Conf. Aspect-Oriented Softw. Dev., 2003.]]
[25]
The AspectJ Team. The AspectJ Programming Guide. Palo Alto Research Center, Inc., 2003.]]
[26]
K. Viggers and R. Walker. An implementation of declarative event patterns. TR 2004-745-10, Univ. of Calgary, 2004.]]
[27]
D. Wagner and D. Dean. Intrusion detection via static analysis. In IEEE Symp. Security and Privacy, 2001.]]
[28]
R. Walker. IConJ 0.1: A proof-of-concept tool for the application of the implicit context model to Java software. TR 2004-757-22, Univ. of Calgary, 2004.]]
[29]
R. Walker and G. Murphy. Implicit context: Easing software evolution and reuse. In Int'l Symp. Foundations Softw. Eng., 2000.]]
[30]
D. Yellin and R. Strom. Protocol specifications and component adaptors. ACM Trans. Progr. Lang. Sys., 19(2), 1997.]]

Cited By

View all
  • (2021)FrameFix: Automatically Repairing Statically-Detected Directive Violations in Framework Applications2021 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER50967.2021.00027(201-212)Online publication date: Mar-2021
  • (2019)Runtime Verification Past Experiences and Future ProjectionsComputing and Software Science10.1007/978-3-319-91908-9_25(532-562)Online publication date: 2019
  • (2018)Migrating business logic to an incremental computing DSL: a case studyProceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3276604.3276617(83-96)Online publication date: 24-Oct-2018
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
SIGSOFT '04/FSE-12: Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
October 2004
282 pages
ISBN:1581138555
DOI:10.1145/1029894
  • cover image ACM SIGSOFT Software Engineering Notes
    ACM SIGSOFT Software Engineering Notes  Volume 29, Issue 6
    November 2004
    275 pages
    ISSN:0163-5948
    DOI:10.1145/1041685
    Issue’s Table of Contents
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: 31 October 2004

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. aspect-oriented programming
  2. comprehensibility/maintainability
  3. context-free grammars
  4. context-sensitive join points
  5. event patterns
  6. instrumentation
  7. parsing
  8. traceability

Qualifiers

  • Article

Conference

SIGSOFT04/FSE-12
Sponsor:

Acceptance Rates

Overall Acceptance Rate 17 of 128 submissions, 13%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2021)FrameFix: Automatically Repairing Statically-Detected Directive Violations in Framework Applications2021 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER50967.2021.00027(201-212)Online publication date: Mar-2021
  • (2019)Runtime Verification Past Experiences and Future ProjectionsComputing and Software Science10.1007/978-3-319-91908-9_25(532-562)Online publication date: 2019
  • (2018)Migrating business logic to an incremental computing DSL: a case studyProceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3276604.3276617(83-96)Online publication date: 24-Oct-2018
  • (2018)Runtime Verification - 17 Years LaterRuntime Verification10.1007/978-3-030-03769-7_1(3-17)Online publication date: 8-Nov-2018
  • (2017)Declaratively building behavior by means of scenario clausesRequirements Engineering10.1007/s00766-015-0242-222:2(239-274)Online publication date: 1-Jun-2017
  • (2012)Essential AOPACM Transactions on Programming Languages and Systems10.1145/2362389.236239134:3(1-43)Online publication date: 5-Nov-2012
  • (2011)Making aspects naturalProceedings of the tenth international conference on Aspect-oriented software development10.1145/1960275.1960312(285-300)Online publication date: 21-Mar-2011
  • (2011)EventCJProceedings of the tenth international conference on Aspect-oriented software development10.1145/1960275.1960305(253-264)Online publication date: 21-Mar-2011
  • (2010)ClaraProceedings of the First international conference on Runtime verification10.5555/1939399.1939409(74-88)Online publication date: 1-Nov-2010
  • (2010)Essential AOPProceedings of the 24th European conference on Object-oriented programming10.5555/1883978.1883987(101-125)Online publication date: 21-Jun-2010
  • 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