Professional Documents
Culture Documents
ABSTRACT
Software reuse is the process whereby an organization defines a set of systematic operational
procedure to specify, produce, classify, retrieve and adapt software artifacts for the purpose of
using them in its development activities for different software applications. Component Based
Development (CBD) and software reuse has been a longstanding goal in IT environments and
across industry as a means to lower software costs, development time and risk and better quality.
Commercial component libraries abound, and some IT organizations have been able to implement
and realize returns through their own component factories. Web services and Service Oriented
Architecture (SOA) represent a further evolution of the software reuse quest -evidence of the
pressure to move from reusable technical functions to reusable business functions. The necessary
next step in this journey is to facilitate the evolution and ongoing success of reuse based
requirement development, traceability, and component reuse activity to weave the best practices
and foundations for reuse into the Requirements Development. Bringing the reuse agenda into the
requirement development phase opens revolutionary opportunities for SDLC process
improvement, better business control of technical results, and better alignment of technology
spending with investment return goals of the executive office. This paper will explain the role of
reuse activity in requirement development, the constraints of reuse and future of reuse based
requirement development.
1. INTRODUCTION
Reusability can be introduced at different phases in the software development life cycle, from
requirements to design, to deployment; and at different granularity from subroutine libraries to
frameworks to application servers. The higher the level of abstraction at which reuse takes place,
the greater the benefit, as is demonstrated by the extensive use of frameworks in contemporary
development. The largest granularity of reuse incorporates a very high level of abstraction such as
the integration of complete products into a complex system. The fact that there is so much in
common among numerous applications in a domain is what led to the development of
frameworks, which embody design, implementation and the documentation for how to use
the framework. Frameworks, especially domain-specif ic ones, provide functionality that is
common to a set of applications. Thus the user of a framework is also implicitly reusing the
common requirements that led to the framework. But these common requirements are usually the
result of examining the individual requirements of a number of products, not from any
systematic effort at requirements reuse. That said, frameworks are still the most common form
of achieving requirements reuse at present. When reuse practices are integrated into the RDM
(Requirement Development Management) discipline, the result is Reuse Based RDM (RBRDM).
The RBRDM combines and augments the best practices of classic RDM, Component Based
Development (CBD), and Object Oriented Analysis and Design (OOAD).The methodology
revolves around several high-level activities shown below— Define, Refine, Reuse, and Repeat.
Define and Refine refers to the activities associated with creating requirement-related assets.
Reuse and Repeat are activities associated with reusing the previously defined assets to create
repeatable and predictable results.
Fig 1 Define, Refine, Reuse & Repeat
Requirements reuse can be defined as the process of analyzing, elicitating and managing
requirements at a suitable abstraction level so that they can be reused in new systems.
Requirements Interaction Management.(RIM) was first introduced by W. Robinson as “the set
of activities directed towards the discovery, management, and disposition of critical
relationships among a set of requirements”. One has to consider that there are parameterized
requirements that need specific values, that is, they are really “new” requirements. Therefore
the big question is how to ensure that the values that are assigned to the parameterized
requirements or the new requirements that are added to the specification will not interact with
the already existing requirements? This can only be ensured by continuously analyzing the
requirements for any interaction that might occur. Furthermore, requirements evolve over
time, so the process of interaction management must be continuous. Requirements interaction
management (RIM) addresses the question how reused requirements might interact with each
other in a common environment. Several problems caused by neglecting RIM when building a
new system using reusable requirements.
One of the challenges in the phase of forecasting of user needs is the determination of
similarity
between different SRS. Different concepts are related with each another in different ways. In
order to have precise information about RS, its state should be explicitly modeled; however it
is also not acceptable, since explicit modeling is quite difficult and time consuming activity.
Instead of that elicit only information about top most tasks (being computerized), performed
by RS and relate them to environmental constraints and tools, used in the process of execution
of tasks. There is no need to model problem domain explicitly, so the amount of efforts in
knowledge acquisition and problem domain modeling phases is reduced. The comparison of
two states can be performed just calculating the percentage of common elements of two sets,
corresponding to these states, i.e. the similarity of two states (s and sk) can be expressed
following way
P(s, s k) = # (s k ∩ s)
----------------
# (s k υ s)
Fig3:
Requirement Development Management
6. CONCLUSION:
RBRDM is a revolutionary methodology that combines and augments the best practices of
classic RDM discipline, Component Based Development, and Object Oriented Analysis and
Design, to achieve an unprecedented increase in the successful delivery of software projects
and systems that match customer intent, within budget and delivery constraints. Some of the
key concepts that are essential to RBRDM include:
1. Requirements optimization which is enabled by the Define, Refine, Reuse, and Repeat
method
2. Harvesting and populating requirements for reuse from existing requirement artifacts
3. Driving reuse throughout the SDLC and its artifacts
4. Improving the analyst role for effective requirements reuse
5. Enabling the organization to utilize a reuse repository
6. Enhancing existing RDM discipline to embrace requirements reuse .
Substantial tangible benefits to the RDM process occur when implementing the RBRDM
Methodology. They include:
1. Applications have greater success of being delivered on time, in budget, in fulfillment of the
project intent of the customer.
2. Reduces cost and time to market, while improving quality, by reusing vetted requirement
assets, which prevents errors and development rework
3. Requirement sets become usable by disparate project teams
4. Leverages subject matter expertise across the product line, development group, or enterprise
lead directly to reuse of other valuable SDLC assets such as test cases, models , and code
Further matures the RDM process by applying OOAD best practices to the RDM process
References
1. Gill N. S. (2003) “Reusability Issues in Component Based Development”, ACM SIGSOFT
Software Engineering Notes. Vol 28, Iss 4.
2. Nasib Singh Gill, “Importance of Software Component Characterization For Better
Software Reusability” ACM SIGSOFT Vol. 31 No. 1
3. Allen Paul (2001): The State of the Practice. Component Development Strategy Journal,
March 2001, Vol XI, No. 3
4. Oscar Lopez, Miguel A..Laguna , Franscisco J.Garcia “Reuse Based Analysis And
Clustering Of requirement Diagram”.
5. Stephen Brown, Mac Felsing, Process exchange, Inc. “reuse Based Requirements
Development & Management, the Reuse Revolution of RDM”.
6 Victor R. Basili “Maintenance =Reuse –Oriented Software Development”, Institute for
Advanced Computer Studies ,Department of Computer Sciences , University of Maryland.
7 Mohamed S.Shehata, Armin Eberlein, H.James Hoover “Requirement reuse and Feature
Interaction Management”..
8 Erdvinas Prednikas “Requirement Reused Based on Forecast of User Needs”,Information
system department, Kaunas University of technology.
9. Han, Jun (1998): “Characterization of Component” In proceedings of International
Workshop on Component Based Software Engineering.
10. Itkonen Juha: “Measuring Object-Oriented Software Reusability”