Software Reuse Is A Process Computer Science
Software reuse is a process of design and develops software assets, and then reuses these to develop other software products in the future. It consists of two main tasks, develop-for-reuse and develop-by-reuse [1,2]. Develop-for-reuse is a process to produce software assets that able to be adapted in different software products. Develop-by-reuse is a process to adapt and includes an existing software asset in order to develop a new software product .
Software reusability is an attribute that refers to the expected reuse potential of a software component. Software reuse not only improves productivity but also has a positive impact on the quality and maintainability of software products. The move toward reuse is becoming so widespread that it has even changed software industry's vocabulary. For example, software acquired externally is described with such terms as commercial-off-the-shelf (COTS) or third-party software, commercially available software (CAS), and non-developmental item (NDI). When used as parts of systems, they are called components, component ware, and so on.
There are good reasons why the industry is moving toward large-scale reuse, including savings in time and money. The cost to develop a new system from scratch is significant. This has made custom software development very expensive. It is generally assumed that the reuse of existing software will enhance the reliability of a new software application. This concept is almost universally accepted because of the obvious fact that a product will work properly if it has already worked before. Some general reusability guidelines include ease of understanding, functional completeness, reliability, good error and exception handling, information hiding, high cohesion and low coupling, portability and modularity .
Reuse applies not only to source-code fragments, but to all the intermediate work products generated during the software development, including requirements documentations, specification, design structures, and any information the developer needs to create software .
The scope of reuse can vary from the narrowest possible range, namely, from one product version to another, to a wider range such as between two different products within the same line of products or even between products in different product lines .
One of famous method of software reuse is what is called white-box reuse; in white box reuse source code of the existing software assets are extracted as components for reuse in another system. This is easiest and cost effective software reuse approach, but the main problem faced in the white box reuse is the process of identifying and extracting the existing components, which is time and effort consuming. Several methods and tools have been proposed and developed in order to overcome this problem. However, the current methods suffer from a lack of integrating process that allows achieving this process completely.
The motivation of this work, is a framework proposed by Anas Bassam et al , which support a systematic way of software reuse: build-for-reuse and build-by-reuse. Moreover, the framework follows the Software development process, from Planning, Requirement gathering, Analysis and design, Implementation, and testing to extract a reusable components. Furthermore this extracted components are letter send to components library for storage after passing a reusability test, components in the library are letter extracted for software development by reuse. However, this framework lacks implementation and automatic way of extracting the reusable components.
This work attempts to fill the gap aforementioned gap in the research literature by presenting a tool that extract, categorized reusable components and provide a repository for the component storage; the reusable component library is the repository of the components that are able to use in different systems.
Article name: Software Reuse Is A Process Computer Science essay, research paper, dissertation