II.
RELATED RESEARCHIn the recent past research on software reusehas been focusing on several areas: examiningprogramming language mechanisms to improvesoftware reusability; developing software processesand management strategies that support the reuse of software; also, strategies for setting up librariescontaining reusable code components, andclassification and retrieval techniques to help asoftware professional to select the component fromthe software library that is appropriate for his or herpurposes.Earlier the research on software reuse wasmuch focused on identifying reusable artifacts,storage and retrieval of software components. Ithad attracted more attention as it was essential forsoftware developers.
A.
Existing Software component Classificationand Retrieval Techniques
“A classified collection is not useful if it does
not provide the search-and-retrieval mechanism
and use it” [10]. A wide range of solutions to the
software component classification and retrievalwere proposed and implemented. At differenttimes, based on available software systems and alsoon
researchers’ criteria, software reuse
classification and retrieval approaches are observedwith minor variations.Ostertag et al. [24] reported three approachesfor classification. First is a free-text keywords nextone is that a faceted index and the last one issemantic-net based. Free text based approach useinformation retrieval and indexing technology toautomatically extract keywords from softwaredocumentation and index items with keywords. Thefree-text keyword approach is simple and anautomatic process. But this approach curtailssemantic information associated with keywords.Therefore it is not a precise approach. In facetedindex approach, experts extract keywords fromprogram descriptions and documentation. Theyarrange the keywords by facets into a classificationscheme, which is used as a standard descriptor forsoftware components. Mili et al [6] classifiessearch and retrieval approaches into four differenttypes:1) simple keyword and string match; 2) facetedclassification and retrieva curtailsl; 3) signaturematching; and 4) behavior matching. The last twoapproaches are cumbersome and inefficient.Mili et al [6] designed a software library inwhich software components are described in aformal specification: a specification is representedby a pair(S, R), where S is a set of specification,and R is a relation on S.The faceted classification scheme for softwarereuse proposed by Prieto-Diaz and Freeman [10]relies on facets which are extracted by experts todescribe features about components. Features serveas component descriptors, such as the componentfunctionality, how to run the component, andimplementation details. To determine similaritybetween query and software components, aweighted conceptual graph is used to measurecloseness by the conceptual distance among termsin a facet.
Girardi and Ibrahim’s [25] solution for
retrieving software artifacts is based on naturallanguage processing. Both user queries andsoftware component descriptions are expressed innatural language. Natural language processing atthe lexical, syntactic and semantic levels isperformed on software descriptions toautomatically extract both verbal and nominalphrases to create a frame-based indexing unit forsoftware components.
B.
Factors Affecting Software Reuse Practices
Even though a substantial number of components are becoming common withrepositories being developed, there are severalproblems with software reuse. First, a variety of components must be made available for reuse,which is maintained in a repository.Next, the classification factors used tocategorize the components play a vital role in thecomponent reuse. Each component is annotatedwith a brief description of its role. Classification of components is done based upon pre-definedclassifiers i.e. classification factors.Further, the component vendors are makinggreat strides in facilitating the distribution of components; no single vendor has emerged as theleader in providing a comprehensive solution to thesearch and retrieval problem. The size andorganization of the component repositories furtherexacerbates the problem.Finally, even if repositories are available, thereare no easy or widely accepted means for searching
for specific components to satisfy the users’
requirements.Software reuse deals with the ability to combineseparate independent software components to forma larger unit of software.Once the developer is satisfied with thecomponent he had retrieved from library, then it isadded to current project under development.Literature reveals many methods for developingmultimedia applications and processing multimediadata.Various uses for multimedia annotation havebeen identified for computer based training andnarration [5].The aim of the good component retrievalsystem is to locate either the component required or
(IJCSIS) International Journal of Computer Science and Information Security,Vol. 9, No. 9, September 2011115http://sites.google.com/site/ijcsis/ISSN 1947-5500