Your browser does not support JavaScript!
http://iet.metastore.ingenta.com
1887

Reflective designs

Reflective designs

For access to this article, please select a purchase option:

Buy article PDF
£12.50
(plus tax if applicable)
Buy Knowledge Pack
10 articles for £75.00
(plus taxes if applicable)

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.

Learn more about IET membership 

Recommend Title Publication to library

You must fill out fields marked with: *

Librarian details
Name:*
Email:*
Your details
Name:*
Email:*
Department:*
Why are you recommending this title?
Select reason:
 
 
 
 
 
IEE Proceedings - Software — Recommend this title to your library

Thank you

Your recommendation has been sent to your librarian.

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.

References

    1. 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. 2)
      • E. Gamma , R. Helm , R. Johnson , J.M. Vlissides . (1994) Design patterns: elements of reusable object-oriented software.
    3. 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. 4)
      • M. Aksit , K. Wakita , J. Bosch , L. Bergmans , A. Yonezawa . Abstracting object interactions using composition filters. Lect. Notes Comput. Sci. , 152 - 184
    5. 5)
      • J. Brant , B. Foote , R. Johnson , D. Roberts . (1998) Wrappers to the rescue, Lect. Notes Comput. Sci..
    6. 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. 7)
      • J. Hannemann , G. Kiczales . (2002) Design pattern implementation in Java and AspectJ, ACM SIGPLAN Not..
    8. 8)
      • J. de Oliveira Guimarães . (1998) Reflection for statically typed languages, Lect. Notes Comput. Sci..
    9. 9)
      • R. Hirschfeld . AspectS – aspect-oriented programming with Squeak. Lect. Notes Comput. Sci. , 216 - 232
    10. 10)
      • Forbrig, P., Lämmel, R.: `Programming with patterns', Proc. TOOLS-USA 2000, 2000.
    11. 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. 12)
      • H. Evans , P. Dickman . DRASTIC: a run-time architecture for evolving, distributed, persistent systems. Lect. Notes Comput. Sci. , 275 - 243
    13. 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. 14)
      • Ludwig, A.: `Automatische transformation groβer softwaresysteme', Dec. 2002, PhD thesis, Universität Karlsruhe.
    15. 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. 16)
      • U. Zdun . Pattern language for the design of aspect languages and aspect composition frameworks. IEE Proc., Softw. , 67 - 83
    17. 17)
      • R. Keller , U. Hölzle . Binary component adaptation. Lect. Notes Comput. Sci. , 307 - 329
    18. 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. 19)
      • Aßmann, U.: `AOP with design patterns as meta-programming operators', 28, Technical Report, Oct. 1997.
    20. 20)
      • U. Aßmann , A. Ludwig . (1999) Aspect weaving by graph rewriting, Lect. Notes Comput. Sci..
    21. 21)
      • E. Ernst . Propagating class and method combination. Lect. Notes Comput. Sci. , 67 - 91
    22. 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. 23)
      • Sullivan, G.: `Advanced programming language features for executable design patterns–better patterns through reflection', AIM-2002-005, Technical Report, 22 March 2002.
    24. 24)
      • Orleans, D.: `Incremental programming with extensible decisions', Proc. 1st Int. Conf. on Aspect-oriented Software Development, ACM Press, 2002, p. 56–64.
    25. 25)
      • J. Bosch . Design patterns as language constructs. J. Object-Oriented Program.
    26. 26)
      • R. Hirschfeld , K. Kawamura , H. Berndt . Dynamic service adaptation of runtime system extensions. Lect. Notes Comput. Sci. , 227 - 240
    27. 27)
      • D. von Dincklage . Making patterns explicit with metaprogramming. Lect. Notes Comput. Sci.
    28. 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. 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. 30)
      • JDrums, ‘Java Distributed Run-time Updating Management System’, 2003, http://www.ida.liu.se/∼jengu/jdrums/.
    31. 31)
      • Hedin, G.: `Language support for design patterns using attribute extension', Research Report 6/97, University of Karlskrona/Ronneby.
    32. 32)
      • M. Tatsubori , S. Chiba , M.-O. Killijian , K. Itano . OpenJava: a class-based macro system for Java. Lect. Notes Comput. Sci.
    33. 33)
      • Kojarski, S., Lieberherr, K., Lorenz, D., Hirschfeld, R.: `Aspectual reflection', Workshop on Software-engineering Properties of Languages for Aspect Technologies (AOSD), 2003.
    34. 34)
      • Austermann, M.: ‘JMangler Homgepage’, 2002. http://javalab.cs.uni-bonn.de/research/jmangler/index.html.
    35. 35)
      • S. Chiba . Load-time structural reflection in java. Lect. Notes Comput. Sci. , 313 - 336
    36. 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. 37)
      • T. Elrad , R.E. Filman , A. Bader . Aspect-oriented programming: introduction. Commun. ACM , 10 , 29 - 32
    38. 38)
      • I. Welch , R. Stroud . From Dalang to Kava – the evolution of a reflective Java extension. Lect. Notes Comput. Sci. , 2 - 21
    39. 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. 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. 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. 42)
      • A. Frick , G. Goos , R. Neumann , W. Zimmermann . Construction of robust class hierarchies. Softw.–Pract. Exp. , 481 - 543
    43. 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. 44)
      • Bosch, J.: `Design patterns & frameworks: on the issue of language support', Research Report 6/97, University of Karlskrona/Ronneby.
    45. 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. 46)
      • G. Kiczales , J. Des Rivieres , D. Bobrow . (1991) The art of the metaobject protocol.
    47. 47)
      • G. Florijn , M. Meijers , P. Winsen . Tool support for object-oriented patterns. Lect. Notes Comput. Sci. , 472 - 495
    48. 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. 49)
      • R. Lämmel , S. Stenzel . Semantics-directed implementation of method-call interception. IEE Proc., Softw. , 2 , 109 - 127
    50. 50)
      • Zimmer, W.: `Frameworks und Entwurfsmuster', 1997, PhD thesis, Universität Karlsruhe.
    51. 51)
      • Forbrig, P., Lämmel, R., Seemann, N.: `A programming language for design patterns', Proc. GI-Jahrestagung 1999, Informatik, Reihe Informatik aktuell, 1999.
    52. 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. 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. 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. 55)
      • Opdyke, W.: `Refactoring object-oriented frameworks', 1992, PhD thesis, University of Illinois, Urbana-Champaign.
    56. 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. 57)
      • Böllert, K.: `On weaving aspects', Proc. Int. Workshop on Aspect-Oriented Programming at ECOOP, 1999, p. 301–302.
    58. 58)
      • F. Budinsky , M. Finnie , J. Vlissides , P. Yu . Automatic code generation from design patterns. IBM Syst. J. , 2 , 151 - 171
    59. 59)
      • , : Proc. LSDF–Workshop on Language Support for Design Patterns and Object-Oriented Frameworks, Research Report 6/97, 1997, University of Karlskrona/Ronneby.
    60. 60)
      • S. Krishnamurthi , Y.-D. Erlich , M. Felleisen . Expressing structural properties as language constructs. Lect. Notes Comput. Sci. , 258 - 272
    61. 61)
      • M. Fowler . (1999) Refactoring: improving the design of existing code.
    62. 62)
      • J. Pryor , N. Bastán . A reflective architecture for the support of aspect-oriented programming in smalltalk. Lect. Notes Comput. Sci.
    63. 63)
      • IBM, ‘IBM WebSphere software platform’, 2004, Web portal; http://www-306.ibm. com/software/info1/websphere/index.jsp.
http://iet.metastore.ingenta.com/content/journals/10.1049/ip-sen_20041097
Loading

Related content

content/journals/10.1049/ip-sen_20041097
pub_keyword,iet_inspecKeyword,pub_concept
6
6
Loading
This is a required field
Please enter a valid email address