Reflective designs
Reflective designs
- Author(s): R. Hirschfeld and R. Lämmel
- DOI: 10.1049/ip-sen:20041097
For access to this article, please select a purchase option:
Buy article PDF
Buy Knowledge Pack
IET members benefit from discounts to all IET publications and free access to E&T Magazine. If you are an IET member, log in to your account and the discounts will automatically be applied.
Thank you
Your recommendation has been sent to your librarian.
- Author(s): R. Hirschfeld 1 and R. Lämmel 2
-
-
View affiliations
-
Affiliations:
1: DoCoMo Communications Laboratories Europe, Munich, Germany
2: Department of Information Management and Software Engineering, Vrije Universiteit, Amsterdam, The Netherlands
-
Affiliations:
1: DoCoMo Communications Laboratories Europe, Munich, Germany
- Source:
Volume 152, Issue 1,
February 2005,
p.
38 – 51
DOI: 10.1049/ip-sen:20041097 , Print ISSN 1462-5970, Online ISSN 1463-9831
The authors render runtime system adaptations by design-level concepts such that running systems can be adapted and examined at a higher level of abstraction. The overall idea is to express design decisions as applications of design operators to be carried out at runtime. Design operators can implement design patterns for use at runtime. Applications of design operators are made explicit as design elements in the running system such that they can be traced, reconfigured, and made undone. This approach enables reflective designs: on one side, design operators employ reflection to perform runtime adaptations; on the other side, design elements provide an additional reflection protocol to examine and configure performed adaptations. The approach helps understanding the development and the maintenance of the class of software systems that cannot tolerate downtime or frequent shutdown-revise-startup cycles. The authors have designed and implemented a class library for programming with reflective designs in Squeak/Smalltalk. The library employs reflection and dynamic aspect-oriented programming. In addition to that, the authors have implemented tool support for versatile navigation in a system that is adapted continuously at runtime.
Inspec keywords: software prototyping; abstract data types; software maintenance; Smalltalk; object-oriented programming; decision making; software libraries
Other keywords:
Subjects: Software engineering techniques; High level languages; Object-oriented programming
References
-
-
1)
- Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: `An overview of AspectJ', Proc. ECOOP, 2001, p. 327–353.
-
2)
- E. Gamma , R. Helm , R. Johnson , J.M. Vlissides . (1994) Design patterns: elements of reusable object-oriented software.
-
3)
- Hirschfeld, R., Kawamura, K.: `Dynamic services adaption', Proc. 24th Int. Conf. on Distributed Computing Systems Workshops - W2: DARES (ICDCSW), Hachioji, Tokyo, Japan, 23–24 March 2004, p. 290–297.
-
4)
- M. Aksit , K. Wakita , J. Bosch , L. Bergmans , A. Yonezawa . Abstracting object interactions using composition filters. Lect. Notes Comput. Sci. , 152 - 184
-
5)
- J. Brant , B. Foote , R. Johnson , D. Roberts . (1998) Wrappers to the rescue, Lect. Notes Comput. Sci..
-
6)
- Akkawi, F., Bader, A., Elrad, T.: `Dynamic weaving for building reconfigurable software systems', Proc. OOPSLA Workshop on Advanced Separation of Concerns in Object-Oriented Systems, 2001.
-
7)
- J. Hannemann , G. Kiczales . (2002) Design pattern implementation in Java and AspectJ, ACM SIGPLAN Not..
-
8)
- J. de Oliveira Guimarães . (1998) Reflection for statically typed languages, Lect. Notes Comput. Sci..
-
9)
- R. Hirschfeld . AspectS – aspect-oriented programming with Squeak. Lect. Notes Comput. Sci. , 216 - 232
-
10)
- Forbrig, P., Lämmel, R.: `Programming with patterns', Proc. TOOLS-USA 2000, 2000.
-
11)
- Oreizy, P., Medvidovic, N., Taylor, R.N.: `Architecture-based runtime software evolution', Proc. Int. Conf. on Software Engineering, IEEE Computer Society Press/ACM Press, 1998, p. 177–186.
-
12)
- H. Evans , P. Dickman . DRASTIC: a run-time architecture for evolving, distributed, persistent systems. Lect. Notes Comput. Sci. , 275 - 243
-
13)
- Brandt, S., Schmidt, R.W.: `The design of a meta-level architecture for the BETA language', Proc. META: presented at Workshop on Advances in Metaobject Protocols and Reflection ECOOP, Aug. 1995.
-
14)
- Ludwig, A.: `Automatische transformation groβer softwaresysteme', Dec. 2002, PhD thesis, Universität Karlsruhe.
-
15)
- Skotiniotis, T., Lieberherr, K., Lorenz, D.: `Aspect instances and their interactions', Workshop on Software-engineering Properties of Languages for Aspect Technologies (AOSD), 2003.
-
16)
- U. Zdun . Pattern language for the design of aspect languages and aspect composition frameworks. IEE Proc., Softw. , 67 - 83
-
17)
- R. Keller , U. Hölzle . Binary component adaptation. Lect. Notes Comput. Sci. , 307 - 329
-
18)
- Baker, J., Hsieh, W.: `Runtime aspect weaving through metaprogramming', Proc. 1st Int. Conf. on Aspect-Oriented Software Development (AOSD), Twente, The Netherlands, April 2002, p. 86–95.
-
19)
- Aßmann, U.: `AOP with design patterns as meta-programming operators', 28, Technical Report, Oct. 1997.
-
20)
- U. Aßmann , A. Ludwig . (1999) Aspect weaving by graph rewriting, Lect. Notes Comput. Sci..
-
21)
- E. Ernst . Propagating class and method combination. Lect. Notes Comput. Sci. , 67 - 91
-
22)
- Palsberg, J., Jay, C.: `The essence of the visitor pattern', Proc. 22nd IEEE Int. Computer Software and Applications Conf. (COMPSAC), 19–21 Aug. 1998, p. 9–15.
-
23)
- Sullivan, G.: `Advanced programming language features for executable design patterns–better patterns through reflection', AIM-2002-005, Technical Report, 22 March 2002.
-
24)
- Orleans, D.: `Incremental programming with extensible decisions', Proc. 1st Int. Conf. on Aspect-oriented Software Development, ACM Press, 2002, p. 56–64.
-
25)
- J. Bosch . Design patterns as language constructs. J. Object-Oriented Program.
-
26)
- R. Hirschfeld , K. Kawamura , H. Berndt . Dynamic service adaptation of runtime system extensions. Lect. Notes Comput. Sci. , 227 - 240
-
27)
- D. von Dincklage . Making patterns explicit with metaprogramming. Lect. Notes Comput. Sci.
-
28)
- Kleinoeder, J., Golm, M.: `MetaJava: An efficient run-time meta architecture for Java', Proc. Int. Workshop on Object-Orientation in Operating Systems, 1996, p. 54–61.
-
29)
- Evans, H., Dickman, P.: `Zones, contracts and absorbing change: an approach to software evolution', Proc. Conf. on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), Denver, Colorado, Oct. 1999, p. 415–434SIGPLAN Not. 34, .
-
30)
- JDrums, ‘Java Distributed Run-time Updating Management System’, 2003, http://www.ida.liu.se/∼jengu/jdrums/.
-
31)
- Hedin, G.: `Language support for design patterns using attribute extension', Research Report 6/97, University of Karlskrona/Ronneby.
-
32)
- M. Tatsubori , S. Chiba , M.-O. Killijian , K. Itano . OpenJava: a class-based macro system for Java. Lect. Notes Comput. Sci.
-
33)
- Kojarski, S., Lieberherr, K., Lorenz, D., Hirschfeld, R.: `Aspectual reflection', Workshop on Software-engineering Properties of Languages for Aspect Technologies (AOSD), 2003.
-
34)
- Austermann, M.: ‘JMangler Homgepage’, 2002. http://javalab.cs.uni-bonn.de/research/jmangler/index.html.
-
35)
- S. Chiba . Load-time structural reflection in java. Lect. Notes Comput. Sci. , 313 - 336
-
36)
- Eden, A., Yehudai, A., Gil, J.: `Precise specification and automatic application of design patterns', Proc. Int. Conf. on Automated Software Engineering, 1997, p. 143–152.
-
37)
- T. Elrad , R.E. Filman , A. Bader . Aspect-oriented programming: introduction. Commun. ACM , 10 , 29 - 32
-
38)
- I. Welch , R. Stroud . From Dalang to Kava – the evolution of a reflective Java extension. Lect. Notes Comput. Sci. , 2 - 21
-
39)
- Popovici, A., Gross, T., Alonso, G.: `Dynamic weaving for aspect oriented programming', Proc. 1st Int. Conf. on Aspect-oriented Software Development (AOSD), Twente, The Netherlands, April 2002, p. 141–147.
-
40)
- G. Kiczales , J. Lamping , A. Mendhekar , C. Maeda , C.V. Lopes , J.M. Loingtier , J. Irwin . Aspect-oriented programming. Lect. Notes Comput. Sci. , 220 - 242
-
41)
- Popovici, A., Alonso, G., Gross, T.: `Just-in-time aspects: efficient dynamic weaving for java', Proc. 2nd Int. Conf. on Aspect-oriented Software Development, 2003, p. 100–109.
-
42)
- A. Frick , G. Goos , R. Neumann , W. Zimmermann . Construction of robust class hierarchies. Softw.–Pract. Exp. , 481 - 543
-
43)
- Pinto, M., Fuentes, L., Fayad, M., Troya, J.: `Separation of coordination in a dynamic aspect oriented framework', Proc. 1st Int. Conf. on Aspect-Oriented Software Development (AOSD), Twente, The Netherlands, April 2002, p. 134–140.
-
44)
- Bosch, J.: `Design patterns & frameworks: on the issue of language support', Research Report 6/97, University of Karlskrona/Ronneby.
-
45)
- Frick, A., Neumann, W., Zimmermann, W.: `Generation of robust class hierarchies', Proc. Technology of Object-Oriented Languages and Systems (TOOLS) Conf., 1997, p. 282–291.
-
46)
- G. Kiczales , J. Des Rivieres , D. Bobrow . (1991) The art of the metaobject protocol.
-
47)
- G. Florijn , M. Meijers , P. Winsen . Tool support for object-oriented patterns. Lect. Notes Comput. Sci. , 472 - 495
-
48)
- Cornils, A., Hedin, G.: `Statically checked documentation with design patterns', Proc. Technology of Object-Oriented Languages and Systems (TOOLS 33), 2000, p. 419–430.
-
49)
- R. Lämmel , S. Stenzel . Semantics-directed implementation of method-call interception. IEE Proc., Softw. , 2 , 109 - 127
-
50)
- Zimmer, W.: `Frameworks und Entwurfsmuster', 1997, PhD thesis, Universität Karlsruhe.
-
51)
- Forbrig, P., Lämmel, R., Seemann, N.: `A programming language for design patterns', Proc. GI-Jahrestagung 1999, Informatik, Reihe Informatik aktuell, 1999.
-
52)
- Lorenz, D., Vlissides, J.: `Pluggable reflection: decoupling meta-interface and implementation', Proc. Int. Conf. on Software Engineering (ICSE), 1–10 May 2003, p. 3–13.
-
53)
- Neumann, G., Zdun, U.: `Filters as a language support for design patterns in object-oriented scripting languages', Proc. COOTS, 5th Conf. on Object-Oriented Technologies and Systems, San Diego, California, USA, May 1999.
-
54)
- M. Golm , J. Kleinöder . Jumping to the meta level: behavioral reflection can be fast and flexible. Lect. Notes Comput. Sci. , 22 - 39
-
55)
- Opdyke, W.: `Refactoring object-oriented frameworks', 1992, PhD thesis, University of Illinois, Urbana-Champaign.
-
56)
- Lämmel, R.: `A semantical approach to method-call interception', Proc. 1st Int. Conf. on Aspect-Oriented Software Development (AOSD), Twente, The Netherlands, ACM Press, Apr. 2002, p. 41–55.
-
57)
- Böllert, K.: `On weaving aspects', Proc. Int. Workshop on Aspect-Oriented Programming at ECOOP, 1999, p. 301–302.
-
58)
- F. Budinsky , M. Finnie , J. Vlissides , P. Yu . Automatic code generation from design patterns. IBM Syst. J. , 2 , 151 - 171
-
59)
- , : Proc. LSDF–Workshop on Language Support for Design Patterns and Object-Oriented Frameworks, Research Report 6/97, 1997, University of Karlskrona/Ronneby.
-
60)
- S. Krishnamurthi , Y.-D. Erlich , M. Felleisen . Expressing structural properties as language constructs. Lect. Notes Comput. Sci. , 258 - 272
-
61)
- M. Fowler . (1999) Refactoring: improving the design of existing code.
-
62)
- J. Pryor , N. Bastán . A reflective architecture for the support of aspect-oriented programming in smalltalk. Lect. Notes Comput. Sci.
-
63)
- IBM, ‘IBM WebSphere software platform’, 2004, Web portal; http://www-306.ibm. com/software/info1/websphere/index.jsp.
-
1)