skip to main content
Skip header Section
Adaptive Object-Oriented Software: The Demeter Method with Propagation PatternsSeptember 1995
Publisher:
  • PWS Publishing Co.
  • 20 Park Plaza Boston, MA
  • United States
ISBN:978-0-534-94602-9
Published:01 September 1995
Pages:
616
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

From the Publisher:

This ground-breaking book presents a complete methodology for adaptive programming in any object-oriented programming language. Lieberherr's adaptive method signals a new approach to object-oriented program design that goes beyond object encapsulation and hard-coded navigation paths to achieve more flexible interactions among objects. Programmers using this method work at a higher, schematic level of abstraction; graph notation represents the class structure and a "propagation pattern" language tells how to distribute meaningful methods - including navigation - across the structure. Using this method, programmers can easily adapt and modify programs as they evolve. This book can be used with any object-oriented programming environment, or with the Demeter Tools Version 5.5, a complete, professional software system for creating and maintaining adaptive programs.

Cited By

  1. ACM
    Gil Y and Orrú M Code Spartanization Proceedings of the Symposium on Applied Computing, (1615-1622)
  2. ACM
    Zhang H, Chu Z, Oliveira B and Storm T (2015). Scrap your boilerplate with object algebras, ACM SIGPLAN Notices, 50:10, (127-146), Online publication date: 18-Dec-2015.
  3. ACM
    Zhang H, Chu Z, Oliveira B and Storm T Scrap your boilerplate with object algebras Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, (127-146)
  4. ACM
    Hao S, Li D, Halfond W and Govindan R SIF Proceeding of the 11th annual international conference on Mobile systems, applications, and services, (167-180)
  5. ACM
    Rayside D, Montaghami V, Leung F, Yuen A, Xu K and Jackson D (2012). Synthesizing iterators from abstraction functions, ACM SIGPLAN Notices, 48:3, (31-40), Online publication date: 10-Apr-2013.
  6. Kulesza U, Soares S, Chavez C, Castor F, Borba P, Lucena C, Masiero P, Sant'Anna C, Ferrari F, Alves V, Coelho R, Figueiredo E, Pires P, Delicato F, Piveta E, Silva C, Camargo V, Braga R, Leite J, Lemos O, MendonçA N, Batista T, BonifáCio R, Cacho N, Silva L, Von Staa A, Silveira F, Valente M, Alencar F, Castro J, Ramos R, Penteado R and Rubira C (2013). The crosscutting impact of the AOSD Brazilian research community, Journal of Systems and Software, 86:4, (905-933), Online publication date: 1-Apr-2013.
  7. ACM
    Rayside D, Montaghami V, Leung F, Yuen A, Xu K and Jackson D Synthesizing iterators from abstraction functions Proceedings of the 11th International Conference on Generative Programming and Component Engineering, (31-40)
  8. ACM
    Shonle M, Griswold W and Lerner S (2012). A framework for the checking and refactoring of crosscutting concepts, ACM Transactions on Software Engineering and Methodology (TOSEM), 21:3, (1-47), Online publication date: 1-Jun-2012.
  9. ACM
    Wimmer M, Schauerhuber A, Kappel G, Retschitzegger W, Schwinger W and Kapsammer E (2011). A survey on UML-based aspect-oriented design modeling, ACM Computing Surveys, 43:4, (1-33), Online publication date: 1-Oct-2011.
  10. Chiba R, Hashiura H and Komiya S A tool for detecting detects on class implementation in object oriented program on the basis of the Law of Demeter Proceedings of the 10th WSEAS international conference on Applied computer science, (315-320)
  11. ACM
    Chadwick B and Lieberherr K Algorithms for traversal-based generic programming Proceedings of the 6th ACM SIGPLAN workshop on Generic programming, (61-72)
  12. ACM
    Shonle M and Yuen T Compose & conquer Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2, (191-194)
  13. ACM
    Chadwick B and Lieberherr K Weaving generic programming and traversal performance Proceedings of the 9th International Conference on Aspect-Oriented Software Development, (61-72)
  14. Vanegas R, Zinky J, Loyall J, Karr D, Schantz R and Bakken D QuO's runtime support for quality of service in distributed objects Proceedings of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing, (207-222)
  15. ACM
    Abdelmeged A, Skotiniotis T and Lieberherr K Controlled evolution of adaptive programs Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops, (89-98)
  16. Tambe S and Gokhale A LEESA Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages, (100-124)
  17. Casas S, Perez-Schofield J and Marcos C (2009). Expert in conflicts, Expert Systems with Applications: An International Journal, 36:3, (5630-5642), Online publication date: 1-Apr-2009.
  18. ACM
    Chadwick B and Lieberherr K A type system for functional traversal-based aspects Proceedings of the 2009 workshop on Foundations of aspect-oriented languages, (1-6)
  19. ACM
    Oliveira B and Gibbons J Scala for generic programmers Proceedings of the ACM SIGPLAN workshop on Generic programming, (25-36)
  20. Sakakibara M, Sakurai K and Komiya S An Assertion Mechanism for Software Unit Testing to Remain Unaffected by Program ModificationThe Mechanism to Eliminate Dependency from/to Unnecessary Object Proceedings of the 2008 conference on Knowledge-Based Software Engineering: Proceedings of the Eighth Joint Conference on Knowledge-Based Software Engineering, (125-134)
  21. ACM
    Harrison W De-constructing and re-constructing aspect-orientation Proceedings of the 7th workshop on Foundations of aspect-oriented languages, (43-50)
  22. ACM
    Tilevich E and Back G "Program, enhance thyself!" Proceedings of the 7th international conference on Aspect-oriented software development, (13-24)
  23. ACM
    Østerbye K Design of a class library for association relationships Proceedings of the 2007 Symposium on Library-Centric Software Design, (67-75)
  24. ACM
    Kojarski S and Lorenz D (2007). Awesome, ACM SIGPLAN Notices, 42:10, (515-534), Online publication date: 21-Oct-2007.
  25. ACM
    Kojarski S and Lorenz D Awesome Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applications, (515-534)
  26. ACM
    Jagadeesan R, Pitcher C and Riely J Open bisimulation for aspects Proceedings of the 6th international conference on Aspect-oriented software development, (107-120)
  27. ACM
    Hanenberg S, Stein D and Unland R From aspect-oriented design to aspect-oriented programs Proceedings of the 6th international conference on Aspect-oriented software development, (49-62)
  28. ACM
    Cleenewerck T and Kurtev I Separation of concerns in translational semantics for DSLs in model engineering Proceedings of the 2007 ACM symposium on Applied computing, (985-992)
  29. ACM
    Cunha A and Visser J Transformation of structure-shy programs Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, (11-20)
  30. Huang F, Jay C and Skillicorn D Adaptiveness in well-typed Java bytecode verification Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research, (19-es)
  31. ACM
    Seng O, Stammel J and Burkhart D Search-based determination of refactorings for improving the class structure of object-oriented systems Proceedings of the 8th annual conference on Genetic and evolutionary computation, (1909-1916)
  32. Skotiniotis T, Palm J and Lieberherr K Demeter interfaces Proceedings of the 20th European conference on Object-Oriented Programming, (477-500)
  33. Lämmel R and Meijer E Revealing the X/O impedance mismatch Proceedings of the 2006 international conference on Datatype-generic programming, (285-367)
  34. Hinze R, Jeuring J and Löh A Comparing approaches to generic programming in Haskell Proceedings of the 2006 international conference on Datatype-generic programming, (72-149)
  35. ACM
    Hill P, Holland S and Laney R Symmetric composition of musical concerns Proceedings of the 5th international conference on Aspect-oriented software development, (226-236)
  36. ACM
    Stein D, Hanenberg S and Unland R Expressing different conceptual models of join point selections in aspect-oriented design Proceedings of the 5th international conference on Aspect-oriented software development, (15-26)
  37. ACM
    Swint G, Pu C, Jung G, Yan W, Koh Y, Wu Q, Consel C, Sahai A and Moriyama K Clearwater Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, (144-153)
  38. Wu P and Lieberherr K Shadow programming Proceedings of the 4th international conference on Generative Programming and Component Engineering, (141-156)
  39. Sutton S Aspect-Oriented software development and software process Proceedings of the 2005 international conference on Unifying the Software Process Spectrum, (177-191)
  40. ACM
    Lago P and van Vliet H Explicit assumptions enrich architectural models Proceedings of the 27th international conference on Software engineering, (206-214)
  41. Forax R, Duris E and Roussel G (2004). A Reflective Implementation of Java Multi-Methods, IEEE Transactions on Software Engineering, 30:12, (1055-1071), Online publication date: 1-Dec-2004.
  42. ACM
    Wand M, Kiczales G and Dutchyn C (2004). A semantics for advice and dynamic join points in aspect-oriented programming, ACM Transactions on Programming Languages and Systems (TOPLAS), 26:5, (890-910), Online publication date: 1-Sep-2004.
  43. Prehofer C (2018). Plug-and-play composition of features and feature interactions with statechart diagrams, Software and Systems Modeling (SoSyM), 3:3, (221-234), Online publication date: 1-Aug-2004.
  44. Lieberherr K Controlling the Complexity of Software Designs Proceedings of the 26th International Conference on Software Engineering, (2-11)
  45. ACM
    Lafferty D and Cahill V (2003). Language-independent aspect-oriented programming, ACM SIGPLAN Notices, 38:11, (1-12), Online publication date: 26-Nov-2003.
  46. ACM
    Lafferty D and Cahill V Language-independent aspect-oriented programming Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, (1-12)
  47. Wile D Architecture style-based calculi for non-functional properties Proceedings of the 18th IEEE International Conference on Automated Software Engineering, (299-303)
  48. Cleenewerck T Component-based DSL development Proceedings of the 2nd international conference on Generative programming and component engineering, (245-264)
  49. Stein D, Hanenberg S and Unland R A graphical notation to specify model queries for MDA transformations on UML models Proceedings of the 2003 European conference on Model Driven Architecture: foundations and Applications, (77-92)
  50. Lorenz D and Vlissides J Pluggable reflection Proceedings of the 25th International Conference on Software Engineering, (3-13)
  51. ACM
    Lämmel R and Jones S (2003). Scrap your boilerplate, ACM SIGPLAN Notices, 38:3, (26-37), Online publication date: 18-Mar-2003.
  52. ACM
    Lämmel R, Visser E and Visser J Strategic programming meets adaptive programming Proceedings of the 2nd international conference on Aspect-oriented software development, (168-177)
  53. ACM
    Sereni D and de Moor O Static analysis of aspects Proceedings of the 2nd international conference on Aspect-oriented software development, (30-39)
  54. ACM
    Lämmel R and Jones S Scrap your boilerplate Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation, (26-37)
  55. ACM
    Lämmel R Towards generic refactoring Proceedings of the 2002 ACM SIGPLAN workshop on Rule-based programming, (15-28)
  56. ACM
    Moreira A, Araújo J and Brito I Crosscutting quality attributes for requirements engineering Proceedings of the 14th international conference on Software engineering and knowledge engineering, (167-174)
  57. ACM
    Ghezzi C and Monga M Fostering component evolution with C# attributes Proceedings of the International Workshop on Principles of Software Evolution, (22-28)
  58. ACM
    Clarke S and Walker R Towards a standard design language for AOSD Proceedings of the 1st international conference on Aspect-oriented software development, (113-119)
  59. ACM
    Orleans D Incremental programming with extensible decisions Proceedings of the 1st international conference on Aspect-oriented software development, (56-64)
  60. ACM
    Filman R, Barrett S, Lee D and Linden T (2002). Inserting ilities by controlling communications, Communications of the ACM, 45:1, (116-122), Online publication date: 1-Jan-2002.
  61. Theotokis D, Sotiropoulou A, Gyftodimos G and Georgiadis P A comparison of design patterns and roles in the context of behavioural evolution Proceedings of the 8th Panhellenic conference on Informatics, (420-439)
  62. ACM
    Lieberherr K, Orleans D and Ovlinger J (2001). Aspect-oriented programming with adaptive methods, Communications of the ACM, 44:10, (39-41), Online publication date: 1-Oct-2001.
  63. ACM
    Denaro G and Monga M An experience on verification of aspect properties Proceedings of the 4th International Workshop on Principles of Software Evolution, (186-189)
  64. ACM
    Amano N and Watanabe T Towards constructing component-based software systems with safe dynamic adaptability Proceedings of the 4th International Workshop on Principles of Software Evolution, (178-181)
  65. ACM
    Coady Y, Kiczales G, Feeley M and Smolyn G Using aspectC to improve the modularity of path-specific customization in operating system code Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering, (88-98)
  66. Wand M A semantics for advice and dynamic join points in aspect-oriented programming Proceedings of the 2nd international conference on Semantics, applications, and implementation of program generation, (45-46)
  67. ACM
    Coady Y, Kiczales G, Feeley M and Smolyn G (2019). Using aspectC to improve the modularity of path-specific customization in operating system code, ACM SIGSOFT Software Engineering Notes, 26:5, (88-98), Online publication date: 1-Sep-2001.
  68. Gray J Using software component generators to construct a meta-weaver framework Proceedings of the 23rd International Conference on Software Engineering, (789-790)
  69. Hernández-Orallo J and José Ramírez-Quintana M (2019). Predictive Software, Automated Software Engineering, 8:2, (139-166), Online publication date: 1-Apr-2001.
  70. ACM
    Tarr P, Harrison W, Ossher H, Finkelsteiin A, Nuseibeh B and Perry D (2019). Workshop on multi-dimensional separation of concerns in software engineering, ACM SIGSOFT Software Engineering Notes, 26:1, (78-81), Online publication date: 1-Jan-2001.
  71. Engels G, Hücking R, Sauer S and Wagner A UML collaboration diagrams and their transformation to java Proceedings of the 2nd international conference on The unified modeling language: beyond the standard, (473-488)
  72. ACM
    Clarke S, Harrison W, Ossher H and Tarr P (2019). Subject-oriented design, ACM SIGPLAN Notices, 34:10, (325-339), Online publication date: 1-Oct-1999.
  73. ACM
    Ovlinger J and Wand M (2019). A language for specifying recursive traversals of object structures, ACM SIGPLAN Notices, 34:10, (70-81), Online publication date: 1-Oct-1999.
  74. ACM
    Clarke S, Harrison W, Ossher H and Tarr P Subject-oriented design Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (325-339)
  75. ACM
    Ovlinger J and Wand M A language for specifying recursive traversals of object structures Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (70-81)
  76. Sangal N, Farrell E, Lieberherr K and Lorenz D Interaction Schemata Proceedings of the Technology of Object-Oriented Languages and Systems
  77. Maknavicius L, Koscielny G and Znaty S Customizing Telecommunication Services Proceedings of the 6th International Conference on Intelligence and Services in Networks: Paving the Way for an Open Service Market, (194-209)
  78. ACM
    Riehle D and Gross T (2019). Role model based framework design and integration, ACM SIGPLAN Notices, 33:10, (117-133), Online publication date: 1-Oct-1998.
  79. ACM
    Bouraqadi-Saâdani N, Ledoux T and Rivard F (1998). Safe metaclass programming, ACM SIGPLAN Notices, 33:10, (84-96), Online publication date: 1-Oct-1998.
  80. ACM
    Riehle D and Gross T Role model based framework design and integration Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (117-133)
  81. ACM
    Bouraqadi-Saâdani N, Ledoux T and Rivard F Safe metaclass programming Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (84-96)
  82. Seiter L, Palsberg J and Lieberherr K (1998). Evolution of Object Behavior Using Context Relations, IEEE Transactions on Software Engineering, 24:1, (79-92), Online publication date: 1-Jan-1998.
  83. ACM
    Schuetze M, Riegel J and Zimmermann G (1997). A pattern-based application generator for building simulation, ACM SIGSOFT Software Engineering Notes, 22:6, (468-482), Online publication date: 1-Nov-1997.
  84. Schuetze M, Riegel J and Zimmermann G A pattern-based application generator for building simulation Proceedings of the 6th European SOFTWARE ENGINEERING conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering, (468-482)
  85. ACM
    Lorenz D (2019). Tiling design patterns—a case study using the interpreter pattern, ACM SIGPLAN Notices, 32:10, (206-217), Online publication date: 9-Oct-1997.
  86. ACM
    Lorenz D Tiling design patterns—a case study using the interpreter pattern Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (206-217)
  87. Mens K, Mens T, Steyaert P and Hondt K Combining Software Descriptions Proceedings of the Workshops on Object-Oriented Technology, (274-275)
  88. ACM
    Lieberherr K and Orleans D Preventive program maintenance in Demeter/Java Proceedings of the 19th international conference on Software engineering, (604-605)
  89. ACM
    Wile D Abstract syntax from concrete syntax Proceedings of the 19th international conference on Software engineering, (472-480)
  90. Liu L, Zicari R, Hürsch W and Lieberherr K (1997). The Role of Polymorphic Reuse Mechanisms in Schema Evolution in an Object-Oriented Database, IEEE Transactions on Knowledge and Data Engineering, 9:1, (50-67), Online publication date: 1-Jan-1997.
  91. ACM
    Palsberg J (1996). Software evolution and integration, ACM Computing Surveys (CSUR), 28:4es, (200-es), Online publication date: 1-Dec-1996.
  92. ACM
    Lieberherr K (1996). From transience to persistence in object-oriented programming, ACM Computing Surveys (CSUR), 28:4es, (156-es), Online publication date: 1-Dec-1996.
  93. ACM
    Aksit M (1996). Separation and composition of concerns in the object-oriented model, ACM Computing Surveys (CSUR), 28:4es, (148-es), Online publication date: 1-Dec-1996.
  94. ACM
    Seiter L, Palsberg J and Lieberherr K (1996). Evolution of object behavior using context relations, ACM SIGSOFT Software Engineering Notes, 21:6, (46-57), Online publication date: 1-Nov-1996.
  95. ACM
    Seiter L, Palsberg J and Lieberherr K Evolution of object behavior using context relations Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering, (46-57)
  96. ACM
    Liu Y and Pradhan S (1996). The Demeter method: an efficient way to build adaptive software, ACM SIGICE Bulletin, 22:1, (7-19), Online publication date: 1-Sep-1996.
  97. ACM
    Lieberherr K (2019). Workshop on adaptable and adaptive software, ACM SIGPLAN OOPS Messenger, 6:4, (149-154), Online publication date: 1-Oct-1995.
  98. ACM
    Lieberherr K Workshop on adaptable and adaptive software Addendum to the proceedings of the 10th annual conference on Object-oriented programming systems, languages, and applications, (149-154)
  99. ACM
    Lieberherr K, Silva-Lepe I and Xiao C (1994). Adaptive object-oriented programming using graph-based customization, Communications of the ACM, 37:5, (94-101), Online publication date: 1-May-1994.
Contributors
  • Northeastern University

Recommendations