Toward reuse of object-oriented software design models

Abstract In software reuse, which is an important approach to improving the practice of software engineering, many factors may hinder reusing software artifacts. Among those factors are the availability of software artifacts at a different level of abstraction and a method to classify and retrieve them. This paper proposes an approach based on faceted classification scheme for the classification and retrieval of software design artifacts, namely Object-Oriented Design Models, thus facilitating their reuse. Six facets, Domain, Abstractions, Responsibilities, Collaborations, Design View, and Asset Type have been defined to constitute the classification and the retrieval attributes. Each of the facets describes one aspect of an Object-Oriented design model. It contains a number of predefined terms chosen through the analysis of various software systems specifications. The selected terms of each facet are arranged on a conceptual graph to aid the retrieval process. A design artifact is classified by associating with it a software descriptor through the selection of one or more terms from each facet. The role of a descriptor is to emphasize the important structural and behavioral properties of a design artifact and also to document the artifacts associated with the design model. The associated similarity-based retrieval mechanism helps users to search for candidate design artifacts that best match their target specification. The similarity analysis is based on the estimation of the conceptual distance between the terms in a query descriptor and the terms in the specified descriptors of various design models in a software repository. A case study is presented to illustrate the classification and the retrieval process.

[1]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[2]  William B. Frakes,et al.  An Empirical Study of Representation Methods for Reusable Software Components , 1994, IEEE Trans. Software Eng..

[3]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[4]  James A. Hendler,et al.  Computing similarity in a reuse library system: an AI-based approach , 1992, TSEM.

[5]  Jean-Marc Morel,et al.  The REBOOT Environment , 1993 .

[6]  Christine M. Mitchell,et al.  Case-based design browser to support software reuse: theoretical structure and empirical evaluation , 1999, Int. J. Hum. Comput. Stud..

[7]  Grady Booch,et al.  Object-Oriented Analysis and Design with Applications , 1990 .

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

[9]  David W. Embley,et al.  A knowledge structure for reusing abstract data types , 1987, ICSE '87.

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

[11]  Ian Sommerville,et al.  Software Engineering, 6. Auflage , 2001 .

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

[13]  John Penix,et al.  Classification and retrieval of reusable components using semantic features , 1995, Proceedings 1995 10th Knowledge-Based Software Engineering Conference.

[14]  Peter Freeman,et al.  Classifying Software for Reusability , 1987, IEEE Software.

[15]  Barbara H. Kwasnik,et al.  The Role of Classification in Knowledge Representation and Discovery , 1999, Libr. Trends.

[16]  Bohdan S. Wynar,et al.  Introduction to Cataloging and Classification , 1991 .

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

[18]  Ian Sommerville,et al.  An information retrieval system for software components , 1988, Softw. Eng. J..

[19]  Yeong R. Kim,et al.  Software Reuse: Survey and Research Directions , 1997, J. Manag. Inf. Syst..

[20]  William M. Tepfenhart,et al.  UML and C++: A Practical Guide to Object-Oriented Development , 1997 .

[21]  Eduardo Ostertag A Classification System for Software Reuse , 1992 .

[22]  Premkumar T. Devanbu,et al.  LaSSIE: a knowledge-based software information system , 1990, [1990] Proceedings. 12th International Conference on Software Engineering.

[23]  Guillermo Arango,et al.  Design as evolution and reuse , 1993, [1993] Proceedings Advances in Software Reuse.

[24]  Robert W. Krut,et al.  Domain Analysis Workshop Report for the Automated Prompt and Response System Domain , 1996 .

[25]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[26]  Ernesto Damiani,et al.  Corrigenda: a hierarchy-aware approach to faceted classification of object-oriented components , 1999, TSEM.

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

[28]  Arun Sen,et al.  The Role of Opportunism in the Software Design Reuse Process , 1997, IEEE Trans. Software Eng..

[29]  차상균,et al.  [서평]Succeeding with Objects - Decision Frameworks for Project Management - , 1996 .

[30]  William B. Frakes,et al.  An information system for software reuse , 1988 .

[31]  Rubén Prieto Díaz,et al.  A software classification scheme , 1985 .

[32]  Gail E. Kaiser,et al.  An Information Retrieval Approach For Automatically Constructing Software Libraries , 1991, IEEE Trans. Software Eng..

[33]  Hamid Mcheick,et al.  Another nail to the coffin of faceted controlled-vocabulary component classification and retrieval , 1997, SSR '97.

[34]  Guillermo Arango,et al.  Domain Analysis and Software Systems Modeling , 1991 .

[35]  Ali Mili,et al.  Reusing Software: Issues and Research Directions , 1995, IEEE Trans. Software Eng..

[36]  Tor Stålhane,et al.  A method for software reuse through large component libraries , 1993, Proceedings of ICCI'93: 5th International Conference on Computing and Information.

[37]  Victor R. Basili,et al.  Domain analysis for the reuse of software development experiences , 1994 .

[38]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[39]  R. Mortensen,et al.  [Principles of classification]. , 2000, Vard i Norden.