Aurora Boulevard, Cubao, Quezon City
In partial fulfillment for the subject
Current Trends and Issues in IT
Mr. Junell Avestro
Lizbert Niño Igagamao
October 9, 2012
Effective reuse of software products is reportedly increasing productivity, saving time, and reducing cost of software development. Historically, software reuse focused on repackaging and reapplying of code modules, data structures or entire applications in the new software projects (Prieto-Diaz 1994). Recently, however, it has been acknowledgedas beneficial to redeploy software components across the entire development life-cycle, starting with domain modelling and requirements specification, through software design, coding and testing, to maintenance and operation. There were also attempts to reuse aspects of project organisation and methodology, development processes, and communication structures. However, as the concept of reusing software components is very clear at the code level (whether in source or binary form), the very same concept becomes more fuzzy and difficult to grasp when discussed in the context of reusing specifications and designs (whether in textual or diagrammatical form), or quite incomprehensible when applied to software informal requirements, domain knowledge or human skills and expertise (expressed in natural language, knowledge representation formalism, or existing only in humans). This problem of dealing with reusable software artefacts resulting from the earliest stages of software development, in particular requirements specifications, attracted our particular interest in the reusability technology.
Our work is motivated primarily by the possibility of improving the process of requirements elicitation by methodical reuse of software specifications and their components with the aid of information extracted from user informal requirements documents. The problems and issues that we aim to investigate in this research are best illustrated by the following statement outlining current needs and the goals for the future research in requirements reuse:
• "More research is needed on the advantages and the necessary methods for requirements reuse. For example, what are requirements components’, what makes them reusable, how can we store and retrieve them, and how do we write a requirements specification that gives us the highest probability of creating or reusing existing requirements components?" (Hsia, Davis et al. 1993).
To address the issues advanced by Hsia, Davis and Kung, and to avoid any confusion farther in this paper, we need to clearly define some major concepts of software reuse, reusability, reusable artefacts, their possible forms, reusability methods, their major motivators and inhibitors, etc. Hence, we adopt our definitions from Prieto-Diaz (Prieto-Diaz 1989) as follows :-• reuse is the use of previously acquired concepts or objects in a new situation, it involves encoding development information at different levels of abstraction, storing this representation for future reference, matching of new and old situations, duplication of already developed objects and actions, and their adaptation to suit new requirements;
• reuse is the use of previously acquired concepts or objects in a new situation, it involves encoding development information at different levels of abstraction, storing his representation for future reference, matching of new and old situations, duplication of already developed objects and actions, and their adaptation to suit new requirements;
• reusability is a measure of the ease with which one can use those previous concepts or objects in the new situations.
The object of reusability, reusable artefact , can be any information which a...