GDPA  
Reusability  

A-B-C- D-E-F- G-H-I- J-K-L- M-N-O- P-Q-R- S-T-U- V-W-X- Y-Z

Identification

Reusability

Also as

Component Reuse
Assembling Reusable Components

Definitions/Uses

2001
Reference /Scacchi, 2001/ Process Models in Software Engineering
Definition/
Use
Assembling Reusable Components The basic approach of reusability is to configure and specialize pre-existing software components into viable application systems /Biggerstaff, 1984/, /Neighbors, 1984/, /Goguen, 1986/. Such source code components might already have associated specifications and designs associated with their implementations, as well as have been tested and certified. However, it is also clear that software domain models, system specifications, designs, test case suites, and other software abstractions may themselves be treated as reusable software development components. These components may have a greater potential for favorable impact on reuse and semi-automated system generation or composition /Batori, 1994/, /Neighbors, 1984/. Therefore, assembling reusable software components is a strategy for decreasing software development effort in ways that are compatible with the traditional life cycle models.

The basic dilemmas encountered with reusable software componentry include

  • (a) acquiring, analysing and modeling a software application domain,

  • (b) how to define an appropriate software par naming or classification scheme,

  • (c) collecting or building reusable software components,

  • (d) configuring or composing components into a viable application, and

  • (e) maintaining and searching a components library. In turn, each of these dilemmas is mitigated or solved in practice through the selection of software component granularity.

    The granularity of the components (i.e., size, complexity, and functional capability) varies greatly across different approaches. Most approaches attempt to utilize components similar to common (textbook) data structures with algorithms for their manipulation: small-grain components. However, the use/reuse of small-grain components in and of itself does not constitute a distinct approach to software development. Other approaches attempt to utilize components resembling functionally complete systems or subsystems (e.g., user interface management system): large-grain components. The use/reuse of large-grain components guided by an application domain analysis and subsequent mapping of attributed domain objects and operations onto interrelated components does appear to be an alternative approach to developing software systems /Neighbors, 1984/, and thus is an area of active research.

    There are many ways to utilize reusable software components in evolving software systems. However, the cited studies suggest their initial use using architectural or component design specifications as a way to speed implementation. They might also be used for prototyping purposes if a suitable software prototyping technology is available.

  • Rationales The author classifies Assembling Reusable Components as one of the Software Product Development Model

    Publications on this area

    Reuse
    Component-based approach

    GDPA Online Last Updated 27.May.2002 Updated by Webmaster Last Revised 27.May.2002 Revised by Webmaster