Using role components in implement collaboration-based designs

In this paper we present a method of code implementation that works in conjunction with collaboration and responsibility based analysis modeling techniques to achieve better code reuse and resilience to change. Our approach maintains a closer mapping from responsibilities in the analysis model to entities in the implementation. In so doing, it leverages the features of flexible design and design reuse found in collaboration-based design models to provide similar adaptability and reuse in the implementation. Our approach requires no special development tools and uses only standard features available in the C++ language. In an earlier paper we described the basic mechanisms used by our approach and discussed its advantages in comparison to the framework approach. In this paper we show how our approach combines code and design reuse, describing specific techniques that can be used in the development of larger applications.

[1]  Kent Beck,et al.  A laboratory for teaching object oriented thinking , 1989, OOPSLA 1989.

[2]  Trygve Reenskaug,et al.  Working with objects - the OOram software engineering method , 1995 .

[3]  Ian M. Holland,et al.  Contracts: specifying behavioral compositions in object-oriented systems , 1990, OOPSLA/ECOOP '90.

[4]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[5]  Dirk Riehle Describing and Composing Patterns Using Role Diagrams , 1996 .

[6]  Ivar Jacobson,et al.  Object-Oriented Software Engineering , 1991, TOOLS.

[7]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[8]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[9]  Michael Schrefl,et al.  Extending object-oriented systems with roles , 1996, TOIS.

[10]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[11]  Robert D. Logcher,et al.  Object-oriented database management systems for engineering: a comparison , 1992 .

[12]  David Notkin,et al.  Decoupling change from design , 1996, SIGSOFT '96.

[13]  Fereidoon Shams Aliee,et al.  Roles Represent , 1995 .

[14]  Rebecca Wirfs-Brock,et al.  Object-oriented design: a responsibility-driven approach , 1989, OOPSLA 1989.

[15]  Gilad Bracha,et al.  The programming language jigsaw: mixins, modularity and multiple inheritance , 1992 .

[16]  Alexander A. Stepanov,et al.  Algorithm‐oriented generic libraries , 1994, Softw. Pract. Exp..

[17]  Kokichi Futatsugi,et al.  Proceedings of the Second JSSST International Symposium on Object Technologies for Advanced Software , 1996 .

[18]  Roel Wieringa,et al.  Roles and Dynamic Subclasses: A Modal Logic Approach , 1994, ECOOP.

[19]  David Notkin,et al.  Using C++ Templates to Implement Role-Based Designs , 1996, ISOTAS.

[20]  Rebecca Wirfs-Brock,et al.  Designing object-oriented software , 1990 .

[21]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.