REUSING SOFTWARE - ISSUES AND RESEARCH DIRECTIONS

Authors
Citation
H. Mili et al., REUSING SOFTWARE - ISSUES AND RESEARCH DIRECTIONS, IEEE transactions on software engineering, 21(6), 1995, pp. 528-562
Citations number
163
Categorie Soggetti
Computer Sciences","Engineering, Eletrical & Electronic","Computer Science Software Graphycs Programming
ISSN journal
00985589
Volume
21
Issue
6
Year of publication
1995
Pages
528 - 562
Database
ISI
SICI code
0098-5589(1995)21:6<528:RS-IAR>2.0.ZU;2-A
Abstract
Software productivity has been steadily increasing over the past 30 ye ars, but not enough to close the gap between the demands placed on the software industry and what the state of the practice can deliver [22] , [39]; nothing short of an order of magnitude increase in productivit y will extricate the software industry from its perennial crisis [39], [67]. Several decades of intensive research in software engineering a nd artificial intelligence left few alternatives but software reuse as the (only) realistic approach to bring about the gains of productivit y and quality that the software industry needs. In this paper, we disc uss the implications of reuse on the production, with an emphasis on t he technical challenges. Software reuse involves building software tha t is reusable by design and building with reusable software. Software reuse includes reusing both the products of previous software projects and the processes deployed to produce them, leading to a wide spectru m of reuse approaches, from the building blocks (reusing products) app roach, on one hand, to the generative or reusable processor (reusing p rocesses), on the other [68]. We discuss the implication of such appro aches on the organization, control, and method of software development and discuss proposed models for their economic analysis. Software reu se benefits from methodologies and tools to: 1) build more readily reu sable software and 2) locate, evaluate, and tailor reusable software, the last being critical for the building blocks approach. Both sets of issues are discussed in this paper, with a focus on application gener ators and OO development for the first and a thorough discussion of re trieval techniques for software components, component composition (or bottom-up design), and transformational systems for the second. We con clude by highlighting areas that, in our opinion, are worthy of furthe r investigation.