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.
- 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.]]Google Scholar
- A. Aho, R. Sethi, and J. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986.]] Google ScholarDigital Library
- J. Aycock and N. Horspool. Schrodinger's token. Software---Practice & Experience, 31(8), 2001.]]Google Scholar
- J. Aycock, N. Horspool, J. Janouek, and B. Melichar. Even faster generalized LR parsing. Acta Informatica, 37(9), 2001.]] Google ScholarDigital Library
- W. Bartussek and D. Parnas. Using assertions about traces to write abstract specifications for software modules. In Information Systems Methodology, 1978. LNCS 65.]] Google ScholarDigital Library
- J. Bradfield and C. Stirling. Modal logics and mu-calculi. In Handbook of Process Algebra. Elsevier, 2001.]]Google ScholarCross Ref
- 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.]] Google ScholarDigital Library
- T. Colcombet and P. Fradet. Enforcing trace properties by program transformation. In Symp. Princ. Progr. Lang., 2000.]] Google ScholarDigital Library
- Cs3 Inc. TriggerWare: Infrastructure for Event Reasoning Applications, Version 1.0, 2004. http://www.cs3-inc.com/www.cs3-inc.com.]]Google Scholar
- 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.]] Google ScholarDigital Library
- 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.]] Google ScholarDigital Library
- R. Douence, O. Motelet, and M. Südholt. A formal definition of crosscuts. In Metalevel Architectures and Separation of Crosscutting Concerns, 2001. LNCS 2192.]] Google ScholarDigital Library
- 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.]]Google Scholar
- 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.]] Google ScholarDigital Library
- S. Fickas and M. Feather. Requirements monitoring in dynamic environments. In IEEE Symp. Requirements Eng., 1995.]] Google ScholarDigital Library
- R. Filman and K. Havelund. Source-code instrumentation and quantification of events. In Wkshp. Foundations Aspect-Oriented Lang. at AOSD, 2002.]]Google Scholar
- D. Hoffman and P. Strooper. State abstraction and modular software development. In Int'l Symp. Foundations Softw. Eng., 1995.]] Google ScholarDigital Library
- JAsCo tool. http://ssel.vub.ac.be/jascossel.vub.ac.be/jasco, 2004.]]Google Scholar
- G. Kiczales et al. An overview of AspectJ. In Proc. European Conf. Object-Oriented Progr., 2001. LNCS 2072.]] Google ScholarDigital Library
- D. Knuth. On the translation of languages from left to right. Information and Control, 8(6), 1965.]]Google Scholar
- E. Ochmanski. Recognizable trace languages. In The Book of Traces. World Scientific, 1995.]]Google ScholarCross Ref
- J. Postel and J. Reynolds. File Transfer Protocol (FTP). Request for Comments 959, Network Working Group, 1985.]] Google ScholarDigital Library
- S. Reiss and M. Renieris. Encoding program executions. In Int'l Conf. Softw. Eng., 2001.]] Google ScholarDigital Library
- D. Sereni and O. de Moor. Static analysis of aspects. In Int'l Conf. Aspect-Oriented Softw. Dev., 2003.]] Google ScholarDigital Library
- The AspectJ Team. The AspectJ Programming Guide. Palo Alto Research Center, Inc., 2003.]]Google Scholar
- K. Viggers and R. Walker. An implementation of declarative event patterns. TR 2004-745-10, Univ. of Calgary, 2004.]]Google Scholar
- D. Wagner and D. Dean. Intrusion detection via static analysis. In IEEE Symp. Security and Privacy, 2001.]] Google ScholarDigital Library
- 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.]]Google Scholar
- R. Walker and G. Murphy. Implicit context: Easing software evolution and reuse. In Int'l Symp. Foundations Softw. Eng., 2000.]] Google ScholarDigital Library
- D. Yellin and R. Strom. Protocol specifications and component adaptors. ACM Trans. Progr. Lang. Sys., 19(2), 1997.]] Google ScholarDigital Library
Index Terms
- Implementing protocols via declarative event patterns
Recommendations
Implementing protocols via declarative event patterns
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 ...
Design and Implementation of an Aspect-Oriented C Programming Language
Aspect-Oriented Programming (AOP) is a programming paradigm that implements crosscutting concerns in a modular way. People have witnessed the prosperity of AOP languages for Java and C++, such as AspectJ and AspectC++, which has propelled AOP to become ...
Composing design patterns: a scalability study of aspect-oriented programming
AOSD '06: Proceedings of the 5th international conference on Aspect-oriented software developmentPattern composition has been shown as a challenge to applying design patterns in real software systems. One of the main problems is that multiple design patterns in a system are not limited to affect only the application concerns. They also crosscut ...
Comments