Knowledge-Based Repository Scheme for Storing and Retrieving Business Components: A Theoretical Design and an Empirical Analysis

Component-based development (CDB) promises to reduce complexity and cost of software development and maintenance through reuse. For CBD to be successful, a vibrant market for commercial business components is essential. One of the key requirements of an active market for business components is an effective scheme for classifying and describing them at various levels of detail, as well as a corresponding repository for storing and retrieving these components. Such a scheme needs to support various constituents such as business users, managers, and application assemblers. The scheme and repository should help users and managers to select components that match their requirements and aid application assemblers in identifying components most compatible with their deployment environment (such as the platform) and system inputs (such as data types). Drawing from the concepts of group technology and software reuse paradigm, this paper proposes a scheme for classifying and describing business components and the design of a knowledge-based repository for their storage and retrieval. The proposed scheme is implemented in a prototype repository. The effectiveness of the prototype and the underlying classification and coding scheme is assessed empirically through controlled experiments. Results support the assertion that the scheme is effective in enhancing the users' and analysts' ability to find the needed business components.

[1]  Brian Vickery,et al.  Faceted classification : a guide to construction and use of special schemes , 1968 .

[2]  Andy Podgurski,et al.  Retrieving reusable software by sampling behavior , 1993, TSEM.

[3]  Andrew Kusiak,et al.  Group technology , 1987 .

[4]  Johannes Sametinger,et al.  Software Engineering with Reusable Components , 1997, Springer Berlin Heidelberg.

[5]  Fatemeh Zahedi,et al.  Design, retrieval, and assembly in component-based software development , 2003, CACM.

[6]  Christine L. Braun,et al.  A lifecycle process for the effective reuse of commercial off-the-shelf (COTS) software , 1999, SSR '99.

[7]  David W. Hosmer,et al.  Applied Logistic Regression , 1991 .

[8]  Grace A. Lewis,et al.  Building systems from commercial components , 2002, ICSE '02.

[9]  Robert J. Kauffman,et al.  Reuse and Productivity in Integrated Computer-Aided Software Engineering: An Empirical Study , 1991, MIS Q..

[10]  Said Ghoul,et al.  CLASSIFYING SOFTWARE FOR REUSABILITY , 2001 .

[11]  Michael R. Blaha,et al.  Object-Oriented Modeling and Design for Database Applications , 1997 .

[12]  Bruce A. Burton,et al.  The Reusable Software Library , 1987, IEEE Software.

[13]  Paul Allen,et al.  Component-Based Development for Enterprise Systems: Applying the SELECT Perspective , 1997 .

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

[15]  Roland Mittermeir,et al.  A survey of software reuse libraries , 1998, Ann. Softw. Eng..

[16]  Bopaya Bidanda,et al.  Representing group technology classification and coding techniques with object oriented modeling principles , 1995 .

[17]  Rubén Prieto-Díaz Implementing faceted classification for software reuse , 1991, CACM.

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

[19]  Seán Baker CORBA distributed objects - using ORBIX , 1997 .

[20]  Ruben Prieto-Diaz A software classification scheme (reusability, libraries, development) , 1985 .

[21]  Shiyali Ramamrita Ranganathan,et al.  Prolegomena to Library Classification , 1967 .

[22]  Barbara Paech,et al.  Component-based product line engineering with UML , 2001, Addison Wesley object technology series.

[23]  Rune Meling,et al.  Storing and retrieving software components: a component description manager , 2000, Proceedings 2000 Australian Software Engineering Conference.

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

[25]  Robert J. Kauffman,et al.  Supporting Search for Reusable Software Objects , 1996, IEEE Trans. Software Eng..

[26]  Oliver Sims,et al.  Business Component Factory : A Comprehensive Overview of Component-Based Development for the Enterprise , 1999 .

[27]  Elaine J. Weyuker,et al.  Testing Component-Based Software: A Cautionary Tale , 1998, IEEE Softw..

[28]  Padmal Vitharana Risks and challenges of component-based software development , 2003, CACM.

[29]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[30]  Roland Mittermeir,et al.  Storing and retrieving software components: a refinement based system , 1994, ICSE '94.

[31]  Alan W. Brown Large Scale Component Based Development , 2000 .