Implementing reusable object-oriented components

Object oriented (OO) classes are generally not reusable because they are not meaningful in isolation; most classes only have meaning as members of cooperating suites of classes (e.g., design patterns). These suites usually arise in designs, but rarely exist as encapsulated entities in OO implementations. We present a method for directly mapping cooperating suites of classes into encapsulated C++ implementations. Our method is an improvement over the VanHilst and Notkin approach (M. VanHilst and D. Notkin, 1996) for implementing collaboration based designs and constitutes a step towards more reusable (object oriented) components.

[1]  Joseph A. Goguen,et al.  Reusing and Interconnecting Software Components , 1986, Computer.

[2]  李幼升,et al.  Ph , 1989 .

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

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

[5]  Ian M. Holland,et al.  Specifying Reusable Components Using Contracts , 1992, ECOOP.

[6]  Don S. Batory,et al.  The design and implementation of hierarchical software systems with reusable components , 1992, TSEM.

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

[8]  Don S. Batory,et al.  Scalable software libraries , 1993, SIGSOFT '93.

[9]  D. Batory,et al.  Scalable Software Libraries 1 , 1993 .

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

[11]  Ted J. Biggerstaff,et al.  The library scaling problem and the limits of concrete component reuse , 1994, Proceedings of 1994 3rd International Conference on Software Reuse.

[12]  David Notkin,et al.  Using role components in implement collaboration-based designs , 1996, OOPSLA '96.

[13]  Don Batory,et al.  A programming language for writing domain-specific software system generators , 1996 .

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

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

[16]  Yannis Smaragdakis,et al.  DiSTiL: A Transformation Library for Data Structures , 1997, DSL.

[17]  D. Batory Intelligent Components and Software Generators , 1997 .

[18]  Yannis Smaragdakis,et al.  Implementing Layered Designs with Mixin Layers , 1998, ECOOP.

[19]  Yannis Smaragdakis,et al.  JTS: tools for implementing domain-specific languages , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).