Nader Nada, PhD
Department of Computer Science
School of Information Technology and Engineering
George Mason University
MS 4A5
Fairfax, Virginia, USA 22030-4444
nnada@osf1.gmu.edu
David C. Rine, Professor
Department of Computer Science
School of Information Technology and Engineering
George Mason University
MS 4A5
Fairfax, Virginia, USA 22030-4444
drine@cs.gmu.edu
A position paper presented at the 1998 International Workshop
on Component-Based Software Engineering
This paper reports on a successful Components-Based Development (CBD)
approach that uses a well-defined, empirically validated software Reuse
Reference Model (RRM). None of the currently existing models have considered a
comprehensive software business perspective (non-technical activities) based
upon reuse as an approach to design their effort and estimation models. If
this developmental problem can be solved, progress will be made towards a
systematic approach to software reuse. Our thesis is that CBD based upon a
validated software reuse reference model proves to be a practical solution to
decreased software development effort, increased software product quality, and
decreased time-to-market, especially if it is applied in a systematic way
across the software development life cycle, including reuse of requirements,
specifications, designs, documents, codes and verification/validation plans.
The critical problem in today�s practice of software reuse is a failure
to conceptualize, define and develop necessary details to support a valid
software reuse process reference model. The software development industry will
not be successful in utilizing and managing CBD paradigms until there is a
conceptualized, well-defined and "validated empirical reference model" for
software manufacturing that incorporates best software reuse practice and that
can be customized for different kinds of software development enterprises. In
the research reported in this paper a theoretical model of the software reuse
reference model is presented, based upon prior knowledge and expertise about
software reuse. Then, this model is empirically validated using three
different empirical studies. The definition and validation of this model has
been carried out using four steps. First, the reference model is developed
based on prior work. Second, this theoretical reference model is empirically
validated using both case studies and surveys. Third, the impact of the
reference model on software development effort, quality, and time-to-market is
empirically derived. Fourth, an initial set of successful cases based upon
the software reuse reference model utilization are identified. The main
contribution of this paper is a well-defined and validated reference model for
the practice of software reuse for CBD. A secondary contribution is an initial
set of case studies from software development enterprises having both a high
success from the practice of reuse in terms of decreased effort and increased
quality and a high correlation in their application of our software reuse
reference model features.
One of the keys to CBDs success is a standard infrastructure for
components. Infrastructures need three main elements [Kiely 98]. First, a uniform design notation is
needed that provides a standard way of describing components functions and
properties, which would be critical to designing collaboration between
components. The industry is rapidly adopting the Uniform Modeling Language
(UML), which combines several design notation, as default standard. Second,
repositories are needed as a means of cataloging available components with a
description of their features would let developer find the components
appropriate for an application. The Object Management Group (OMG) is
developing a repository specification, whose core will be the Microsoft
Repository, currently the dominant specification. Third, a standardized CBD
interface is needed that lets any application in any language access
components features by, for example, binding to the component model or
interface definition language. The OMG is trying to make both Microsoft�s
Distributed Component Object Model (DCOM) and Sun Microsystem�s JavaBeans
specifications interoperable with its final Common Object Request Broker
Architecture (CORBA) specification.
Our study investigates the success of our software Reuse Reference Model
(RRM) in predicting effort, quality, and time-to-market as well as explores
additional facets of cost behavior. Process measures are defined and
collected, and the use of our model as an assessment tool throughout
development is tested.
We expanded Rine�s model [Rine-Sonneman 97] and have incorporated
additional important technical and non-technical activities such as: Reuse
Quality Characteristics, Quality Control, Best Development Practices
Experience , Software Standards (CORBA, DCOM, etc.), Trends of COTS,
Case-Tools, Training, Market Place, Financing Marketing Forecast, and Reuse
Metrics and Effort Estimation Models.
From the case studies, survey, and QSM study results Nada [Nada 97]
concluded that the software reuse reference model implementation level (RRML)
is a predictor of decreased software development effort and decreased
time-to-market.
A. The Survey
1. Problem Statement
"There does not exist an effective and validated CBD RRM which incorporate
both the technical and non-technical facets of software reuse and showing its
impact on software development effort, quality, and time to market.
2. Empirical Research Validates the Model (Survey Results)
The survey examined 34 questions about the software manufacturing RRM that
incorporates both the technical and non-technical activities that might be
needed to establish a successful software reuse program in the organization.
The survey data analysis answered the following questions (Q1-Q5):
Q1. Is the software RRM implementation Level (RRML) a predictor of:
A1. Yes, there is a correlation between the RRML and the organization
improvement level of their software development effort, time-to-market, and
quality. (SQ23-SQ26 )
Q2. Is the reuse percentage a predictor of the RRML?
A2. No, there is no correlation between the reuse percentage and the
RRML?
Q3: At which phase of the software life cycle do organizations get the
greatest benefits from software reuse?
A3: By considering the reuse approach during the early phases of the
software development life cycle. (SQ27-SQ29)
- 57% of the projects realized high commonality with the requirements of
previous project(s) at requirements phase.
- 43% of the projects realized high commonality with the design of
previous project(s) at design phase.
- 38% of the projects realized high commonality with the code
(documentation) of previous project(s).
Q4. How much do
projects collect and utilize reuse metrics and use effort estimation models
with reuse as part of their software development life cycle?
A4. There
is a lack of collecting reuse metrics and using effort estimation models with
reuse.
- 24% of the projects measure and analyze the software reuse
process carefully to identify weaknesses, and have plans established to
address these weaknesses.
Q5: Is the reuse process common practice and an integrated part of the
organizations software development process?
A5. No, 33% of the projects developers and maintainers precisely follow a
software reuse process which is defined and integrated with the organization's
software development process.
B. The Case Studies
1. Introduction
Software reuse is incorporated by establishing a RRM. The RRM would contain
those activities that are common to software development organizations whose
software reuse success is high. Incorporation of such a software RRM would
promise four things:
- Decreased products development effort;
- Increased product quality;
- Potential decreased in time of product to market;
- Overhead in establishing and maintaining the RRM that would eventually be
offset by 1. through 3. above.
Companies today are faced with new and more
challenging market pressures. In response, they have to reduce the
time-to-market with new or enhanced products, increase the diversity of
products available to the customers, and enhance the standardization and
interoperability of the products. Reuse is a means to achieve such
objectives.
Drawing from the results of these applications as well as
analyzing the reports of experiences in the same field available in the
literature, this research addresses the challenge of providing managers with
qualitative and quantitative indications about the potential benefits of
software development with reuse.
That means we looked closer at reuse
programs in several organizations and analyzed the dimensions of software
reuse in them . We tried to identify the following:
- The reuse level (%)
- The decreased level of development effort (or increased
productivity)
- The increased level of product quality
- The
decreased level of development time
- The decreased level of
time-to-market
Finally, the Software Reuse experiences concerning 27
different organizations is reported in the form of case studies to let the
reader into the detailed description of their background, application
contexts, organization software reuse peculiarities, technologies, metrics,
achievements as well as some specific problems and adopted technical
solutions.
2. Software Reuse Case Studies Strategy
Many software development organizations believe that investing in software
reuse will improve their product and process productivity and quality, and are
in the process of planning for or developing a software reuse capability.
Unfortunately, there is still little data available on the
state-of-the-art-practice of investing in software reuse. A 1991 study of
Japanese Software Factories stated that in 1991 the Japanese software
factories were the only organizations successfully applying software reuse
[McCain 91]. This 1991 study and a second 1992 study of U.S. software
developers covering 29 organizations [Frakes-Fox 95], are, until now, the only
few major studies involving a large number of organizations. The majority of
current information available on software reuse investment comes from the
literature, which contains unproved theories or theory applied in a limited
way to a few pilot projects or case studies. [Rine-Sonneman 97]
There
are also some independent research studies such as:
- Software Reuse Using Frame Technology, by QSM Associates, Inc. 1994
- Software Evolution & Reuse (SER), The SER Experience Book, 1996
3. Case Studies Research Method
Only a thorough analysis of the specific organizational, managerial and
technological context pertaining to the company can lead to the appropriate
definition of a competitive company strategy and to the choice of the best
suited approach. Nevertheless, the experience collected in the case studies
offers useful hints as to which different conditions lead to the selection of
different strategies, which are the most common problems encountered and which
are the subsequent corrective actions to be taken.
It is our believe, though, that there exists
general software RRM which establishes software reuse guidelines that were
effective in our experience through these case studies and that could trigger
and help new experiments.
C. Summary
The objectives of this research are: 1. the developing of a theoretical
model of software RRM; 2. empirically validating the model; 3. providing the
empirical impact of the software RRM implementation level on the software
effort, quality, and time-to-market.
For validating the theoretical model we used three
different research approaches:
- Carrying out 27 case studies
of industry and government software developers;
- Surveying the
industry and government software developers (93 projects);
- Carrying out Quality Software Management (QSM) study of 19 selected
projects.
The organizations used in the empirical validation of the RRM with the
highest software reuse capability measures use the following components:
product-lines, architectures which standardize product interfaces and data
formats, common software architecture across the product-line, design for
manufacturing, domain engineering, reuse process, management which understands
reuse issues, software reuse advocate(s) in senior management,
state-of-the-art reuse tools and methods, precedence of reusing high level
software artifacts such as requirements and design versus just code reuse, and
trace end-user requirements to the components (systems, subsystems, data sets,
algorithms and/or software modules) which support them.
Therefore,
software reuse solutions take two major steps. First, the RRM is integrated
into the engineering and business functions of CBD. Second, software domains
and product-lines are instantiated to the RRM. Another result is a RRM
incorporating the extended international Object Management Group (OMG)
UML/CORBA/DCOM. This specific development RRM, will itself be a reusable RRM
from which one starts when developing what has previously been coined 'generic
software tool kits' of various kinds, useful software industry.
From the case studies, survey, and QSM study results Nada [Nada 97] concluded that the software reuse
reference model implementation level (RRML) is a predictor of decreased
software development effort and decreased time-to-market.
References
[Frakes-Fox 96] |
Frakes, W., and Fox,
C. (1996). Reuse failure modes. IEEE Transactions on Software Engineering ,
22(4) April. |
[Frakes-Fox 95] |
Frakes, W., and Fox, C. (1995). Sixteen questions about
software reuse. Communications of the ACM, 38(6), 75-87 and 112, June. |
[Kiely 98] |
Are Components the Future of Software?, IEEE Computer,
February, 10-11 (1998).
|
[Lim 94] |
Lim, W. (1994). Effects of reuse on quality, productivity, and economics.
IEEE Software September, 11(5), 23-30.
|
[McCain 91]
|
Introduction to Reuse Technology and Application, slides -
Defense Systems Management College, September (1991).
|
[Nada 96] |
Nada, N. (1996). Progress Report
for the Earth Science System Fellowship Program. |
[Nada 97] |
Nada, N. (1997).
Software Reuse-Oriented Functional Framework, Ph.D. Dissertation, George Mason
University. |
[Patterson 96] |
Patterson, F. (Editor 1996). A NASA Approach to Reuse.
Proceedings of the NASA International Workshop on Software Reuse, George Mason
University, Fairfax, Virginia, USA, September. |
[Rine-Sonneman 97] |
Rine, D., and Sonneman,
R. (1997). Investments in reusable software: a study of software reuse
investment success factors. The Journal of Systems and Software. 1-18,
Spring. |
[SPC 93] |
Software Productivity Consortium (SPC). (1993). Reuse Adoption
Guidebook, SPC-92051-CMC, Ver 02.00.05, Software Productivity Consortium,
Herndon, Virginia, November. |
[Sonneman 95] |
Sonneman, R. (1995) "Exploratory Study
of Software Reuse Success Factors", Ph.D. Dissertation, George Mason
University.
|
[papers]
[presentations]
[program]
[next]
[prev]
[contact the author]
contact the organizers [report errors]
[report in pdf format]
The Software
Engineering Institute (SEI) is a federally funded research and
development center sponsored by the U.S. Department of Defense
and operated by Carnegie Mellon University.
Copyright
2004
by Carnegie Mellon University
Terms of Use
URL: http://www.sei.cmu.edu/papers/p13.html
Last Modified: 11 August 2004
|