A case study of framework design for horizontal reuse

In this experience report, we present a case study in designing, implementing and reusing an object-oriented framework for constructing and editing complex search expressions over arbitrary data domains. We present a framework design that achieves a large degree of business domain decoupling through the application of design patterns. We outline the reuse process and analyse and classify the problems encountered during the first-instance framework reuse. The major lessons learned are: (1) that, while design patterns are well-known for providing decoupling solutions at the code level, the lack of similar decoupling techniques at the non-code level may give rise to technical mismatch problems between the framework and the client systems; (2) that such technical mismatch problems can be costly; and (3) that a reusable framework may beneficially provide a solution template when it cannot provide actual functionality.

[1]  Jeffrey Allen Larry Latour If you Can't Reuse, Recycle: A Case Study of a Platform to Platform Port , 1997 .

[2]  Mary Shaw,et al.  Architectural issues in software reuse: it's not just the functionality, it's the packaging , 1995, SSR '95.

[3]  Henrik Bærbak Christensen,et al.  A case study of horizontal reuse in a project-driven organisation , 2000, Proceedings Seventh Asia-Pacific Software Engeering Conference. APSEC 2000.

[4]  Even-André Karlsson,et al.  Software reuse: a holistic approach , 1995 .

[5]  Rudolf K. Keller,et al.  Design and Reuse in Object-Oriented Frameworks: Patterns, Contracts, and Motifs in Concert , 1994, COODBSE.

[6]  MiliHafedh,et al.  Toward an Engineering Discipline of Software Reuse , 1999 .

[7]  Ralph E. Johnson,et al.  Documenting frameworks using patterns , 1992, OOPSLA '92.

[8]  James Coplien,et al.  Industrial experience with design patterns , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[9]  Wojtek Kozaczynski,et al.  Toward software plug-and-play , 1997, SSR '97.

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

[11]  Mansour Zand,et al.  Proceedings of the 1995 Symposium on Software reusability , 1995 .

[12]  David Garlan,et al.  Architectural Mismatch or Why it's hard to build systems out of existing parts , 1995, 1995 17th International Conference on Software Engineering.

[13]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture , 1996 .

[14]  Ralph E. Johnson,et al.  Patterns Generate Architectures , 1994, ECOOP.

[15]  Stuart I. Feldman,et al.  Make — a program for maintaining computer programs , 1979, Softw. Pract. Exp..

[16]  Robert DeLine,et al.  A catalog of techniques for resolving packaging mismatch , 1999, SSR '99.

[17]  Ali Mili,et al.  Toward an Engineering Discipline of Software Reuse , 1999, IEEE Softw..