Software design by reusing architectures

Abstraction fosters reuse by providing a class of artifacts that can be instantiated or customized to produce a set of artifacts meeting different specific requirements. The authors propose that significant leverage can be obtained by abstracting software system designs and the design process. The result of such an abstraction is a generic architecture and a set of knowledge-based customization tools that can be used to instantiate the generic architecture. An approach for designing software systems based on this idea is described. The approach is illustrated through an implemented example, and the advantages and limitations of the approach are discussed.<<ETX>>

[1]  Thomas R. Gruber,et al.  The Role of Common Ontology in Achieving Sharable, Reusable Knowledge Bases , 1991, KR.

[2]  S.C. Bailin,et al.  A Learning-based Software Engineering Environment , 1991, Proceedings., 6th Annual Knowledge-Based Software Engineering Conference.

[3]  H. P. Nii,et al.  KASE: An Integrated Environment for Software Design , 1992 .

[4]  Pankaj K. Garg,et al.  Process programming by hindsight , 1992, International Conference on Software Engineering.

[5]  Richard C. Waters The Programmer's Apprentice: A Session with KBEmacs , 1985, IEEE Transactions on Software Engineering.

[6]  Raymonde Guindon,et al.  Requirements and design of DesignVision and object-oriented graphical interface to an intelligent software design assistant , 1992, CHI.

[7]  Douglas R. Smith,et al.  KIDS: A Semiautomatic Program Development System , 1990, IEEE Trans. Software Eng..

[8]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[9]  Neil Iscoe,et al.  Model-based software design , 1992 .

[10]  Martin S. Feather,et al.  Composite System Design: The Good News And The Bad News , 1991, Proceedings., 6th Annual Knowledge-Based Software Engineering Conference.

[11]  William James Van Melle,et al.  A domain-independent system that aids in constructing knowledge-based consultation programs , 1980 .

[12]  Rodney J. Douglas KIDS: A Semi-Automatic Program Development System , 1990 .

[13]  Neil A. M. Maiden,et al.  Analogical Matching For Specification , 1991, Proceedings., 6th Annual Knowledge-Based Software Engineering Conference.

[14]  M. D. Lubars,et al.  Addressing software reuse through knowledge-based design , 1989 .

[15]  Bruce Delagi,et al.  An Experiment in Knowledge-based Signal Understanding Using Parallel Architectures , 1986 .

[16]  Edward A. Feigenbaum,et al.  Signal-to-Symbol Transformation: HASP/SIAP Case Study , 1982, AI Mag..

[17]  Richard C. Waters,et al.  The Requirements Apprentice: Automated Assistance for Requirements Acquisition , 1991, IEEE Trans. Software Eng..

[18]  Nelleke Aiello,et al.  AGE (Attempt to Generalize): A Knowledge-Based Program for Building Knowledge-Based Programs , 1979, IJCAI.

[19]  Raymonde Guindon Designing the design process: exploiting opportunistic thoughts , 1990 .

[20]  Michael R. Lowry,et al.  Working Notes from the 1992 AAAI Workshop on Automating Software Design. Theme: Domain Specific Software Design , 1992 .

[21]  Henson Graves Lockheed environment for automatic programming , 1992, IEEE Expert.