Journal
Software – Practice and Experience
Volume 30, 2000
Pages 685-722.
‘Three Empirical Studies of a Software Reuse Reference Model'
(1) Dr. David C. Rine, Professor of Computer Science and Information & Software
Systems Engineering, Department of Computer Science, School of Information
Technology and Engineering, George Mason University, Fairfax, Virginia, 22030-4444,
(703) 993-1530, drine@cs.gmu.edu.
(2) Dr. Nader Nada, Department of Computer Science, The Naval Postgraduate School,
Monterey, California, nnada@cs.nps.navy.mil.
Address correspondence to author (1).
Key Words: Reuse, Reuse Practice, Software Reuse, Reference Model.
Abstract: The contribution of this paper is three empirical studies supporting a reference
model for the practice of software reuse. Our research thesis is that software development
based upon a software reuse reference model improves quality of products, productivity
of processes and product time-to-market for many software development enterprises. The
definition and investigation of such a model has been carried out using three steps. First,
the reference model is developed based on existing software reuse concepts. Second, this
reference model is empirically studied using three studies: one using a survey method,
one using a case studies method, and one using a legacy studies method. Third, the
impact of the reference model on software development productivity, quality, and timeto-market is empirically derived.
1. SOFTWARE REUSE REFERENCE MODEL
1.1. Introduction to Reference Models
Reference models serve as a means of comparing different systems in a domain. A
reference model provides a guide against which systems in the domain can be evaluated.
In this paper the domain is the set of software development systems such that each
system is related software engineering activities of a given enterprise incorporating assets
reuse.
The reference model presented in this paper identifies software reuse technical and
organizational factors. It is the authors’ general thesis that the lack of such a reference
model makes it difficult to design improved reuse approaches in a systematic manner.
The task of generating reference models for software development activities relies on
having 'standard' representations that satisfy established or specified criteria for
interpretation. Robertson [Robertson 94] and Sommerville [Sommerville 96] point to the
1
importance of reference models in software development, both for software products and
for software development activities.
1.2. Importance of Reuse Reference Models
Many organizations in both the private and public sectors are investing money, time, and
resources into software reuse. They hope to improve their competitive edge and time-tomarket through increased productivity (decreased effort) in the software development
process and increased quality in the software products developed [Rine 98]. For many
software organizations it will therefore become increasingly important to investigate and
measure the relationship between the level of the organization’s software reuse utilization
and management plan effectiveness in terms of effort with reuse, product quality, and
time-to-market.
The development team is another important aspect enhancing the management of any
reuse program. Failure to try to reuse assets is primarily a management problem.
According to survey respondents, the most common root cause of this failure mode is
resource constraints, followed by lack of incentive to reuse, time constraints, lack of
clarity on reuse utility, and lack of education [Frakes 94b].
Since software assets that are specified in the software product model are directly derived
from requirements specifications, it is a common practice that the decision to pick up
particular reusable assets for product development happens during various development
phases [Fonash 93, Wasmumd 93].
It is important that systematic software reuse is a key business strategy that software
mangers can employ to dramatically improve their software development processes, to
decrease time-to-market and costs, and to improve product quality [Griss 93].
The reason for identifying the activities of software Reuse Reference Model (RRM)
based on improvement factors is that the RRM provides important relationships between
the technical and organizational activities of software reuse within a software engineering
process. Utilization of an appropriate software RRM in a software development
organization allows software engineering management to identify both technical and
organizational activities needed for an improved software reuse implementation plan
[Jacobson 97, Lim 98]. Software development includes both business (organizational,
cultural) and engineering (technical) activities. Any organization, either starting or
currently practicing reuse, should review its current or intended reuse implementation
plan, compare its plan to the plans of successful leaders in the reuse industry, and revise
their plans, as necessary, based on an empirically justified software RRMs.
In this paper a model (RRM) is first presented, and then empirically studied. Defined
levels of the utilization of RRM by an organization are also developed as a qualitative
RRM Level (RRML) metric in section 2.2.3. The organizations used in this empirical
study (See section 4.1) with high RRML levels of RRM (reuse capability) practice the
2
activities described in section 3. These technological and organizational activities
presented in section 3 are shown from the data collected to be improvement factors.
We have found that past software RRM formulations [Rine 98, Nada 97] based on our
reuse research [Nada 97, Baldo 97] did not identify or measure both of the software reuse
technical and organizational factors necessary to imply reuse success. Software
developers need to achieve better evaluations and measures of software reuse and
business improvement factors, as well as the factors’ predictive relationship to software
productivity and quality.
Furthermore, our researched RRM, reported in this paper, serves as a point of reference
for groups of similar software development organizations that are interested in adopting,
utilizing, or managing software reuse. Moreover, our developed RRM implementation
Level (RRML, see section 2.2.3.) is a measure representing similar organizations’
utilization levels of the RRM activities (factors) in the given ordinal range. The ordinal
range is divided into five linearly ordered level values: L1 to L5, that represent the
amount of RRM activities utilized or practiced (examples: product-line, common
architecture, COTS components, etc.).
1.3. The General Problem and Main Contribution
Many software development organizations believe that investing in software reuse will
improve their process productivity and product quality, and are in the process of planning
for or developing a software reuse capability [Baldo 97, Frakes and Isoda 94, Tracz 8694, Troy 94, Tirso 93, McClure 92]. Unfortunately, there is still not enough data
available on the state-of-the-practice of utilizing or managing software reuse. The
majority of current information available on software RRMs comes from the literature
[Parnas76, Basili91, Cusumano91, McCain91, Gold93, Wasmund 93, Card94,
Fafchamps94, Gibbs94, Frakes 95, Nader 97, Rine and Sonnemann 98, Morisio, Ezran
and Tully 99], where reports on improved measures for successful reuse are needed. A
critical problem in today’s practice of software reuse is a failure to develop necessary
details to support valid software RRMs.
The main contribution of our research reported in this paper is an empirically studied
RRM for the practice of software reuse. The research provides evidence that using a valid
RRM among the software reuse community will help improve the competitive edge and
time-to-market of many software development enterprises through increased productivity
in the software development process and increased product quality. The research uses an
initial set of legacy studies and lessons learned studies [Zelkowitz and Wallace 98] which
we collected from software development enterprises. Our research describes activities of
those software development organizations having a high RRML. These RRM activities
are derived from their practice of reuse where there is a high correlation with reuse
utilization and management with decreased effort and increased quality.
3
2. RESEARCH METHOD AND RESEARCH HYPOTHESIS
2.1. Research Thesis
This research asserts [Nada 97] that there is need of a more effective software RRM that
incorporates both technical and organizational factors of software reuse and that
identifies impact of such factors on software development productivity, quality, and time
to market. This assertion is broken out into two specific research theses (T1, T2) that are
tested in out study:
(T1) Thesis-1. Level of Reuse (RMML) determines effectiveness improvements in
productivity, quality and time to market.
(T2) Thesis-2. Percentage of Adopted RRM Factors (PARF) is an indicator of the
implementation Level (RMML), i.e. levels of reuse success of an organization’s Reuse
program.
The results in section 4 determine the extent to which these theses are supported.
2.2. Research Method
2.2.1. Deriving the Reuse Reference Model
In this section we summarize the fifteen step research approach taken in deriving and
empirically supporting the theses about our Reuse Reference Model.
Step 1. Develop a software reuse reference model (RRM) from current knowledge.
A. Review literature on software reuse to identify reuse technical and organizational
factors and explore their relationship to software development productivity, quality, and
time to market.
B. Develop a modified version of the Sonnemann and Rine [Rine 98] model by:
i. Eliminating candidate factors that are weak or irrelevant to reuse by comparing and
contrasting software reuse lessons learned from literature search, and
ii. Utilizing results of the previous software reuse empirical studies [Bollinger91;
Cruickshank91; SER 95; QSM 94; Sonnemann 95; Patterson 95; Applied Expertise 94;
Fonash 93; Griss 93; Frakes 95; Kiely 98; Boehm 81, 87, 92].
This step includes the refining of the studies comprising different technical and
organizational activities of software reuse.
Step 2. From the RRM decompose the research problem into the following four subproblems:
- Determine if the implementation Level (RRML) of the software RRM activities of
those organizations (Org – See Tables 1a-1d) sampled is predictive of:
A. Products development productivity (effort) level
4
B. Time-to-market level
C. Product quality level
- Determine if the Percentage of adopted factors of the RRM from those organizations
(Org – See Tables 1a-1d) sampled is predictive of the implementation Level (RRML)
of the software RRM activities.
- Determine at which phase of the software life cycle organizations may get the
greatest reuse benefits.
- Determine to what extent organizations collect and utilize reuse metrics and
incorporate reuse effort estimation as part of their software development life cycle.
- Determine if a reuse process is a common practice and an integrated part of the
organizations’ software development process.
Step 3. Identify the software reuse population from which both the case studies sample
and survey sample are selected:
- Software reuse factors (Sonnemann' list, 109)
- NASA software reuse workshop (Patterson' list, 200)
- Reusable software components resources (Levine' list, 50)
- IEEE Software Reuse Group (workshop list, 90)
- Software Productivity Consortium members (list, 200 )
Limitations on Population Identification: Software reuse is still an immature function.
There is no national or international software engineering database or census bureau
representing a population of software development organizations who practice software
reuse.
Step 4. Stratify population and Identify experimental variables for the case studies and
the survey:
- Stratification (Organization type, Application type, etc.)
- Control variables (Software Reuse Reference Model implementation Level
“RRML” (See section 2.2.3.) Organization Size, Application Size)
- Dependent variables (Effort , Quality, Time-to-market)
- Independent variables (RRM factors)
Step 5. Develop a survey instrument to apply to each member of the survey sample of
industry and government projects from the software reuse population (Step 3.).
The survey instrument includes 34 questions on the RRM technical and organizational
activities, productivity (effort), quality, time-to-market Levels and Percentage of Reuse
(Step 2.).
Step 6. Identify population of 24 organizations (Org) to be sampled and to become
Reuse Case Studies.
In order to understand the specific context of each case study, an overview template is
provided based on 20 attributes that have been defined to characterize the software
applications development represented within each case study.
Step 7. Sample, contact and interview the 24 different case studies organizations (Org).
5
Limitation on Sample Data Collection: Some, but not all, of the persons interviewed
from each organization and reporting data may have been estimating the data items
supplied, and so the data may not always be applicable across the entire organization.
Step 8. Identify population of N organizations (Org) to be sampled and to become Reuse
survey participants.
Step 9. Apply the survey instrument to each of the N of organizations of the sampleSurvey industry and government reuse practices.
Step 10. Collect and analyze sampled case studies and survey data results. Apply
statistical techniques to test theses.
Step 11. Apply data from both samples to test theses [Hoel54, Pfleeger94]:
- Apply statistical techniques to test theses.
- Apply statistical tools -The statistical SAS and JMP software packages are used to
determine the survey frequencies and the correlation’s between the dependent variable
and the independent variables.
Step 12. Compare the results of both the survey and case studies.
Step 13. Interpret the results against the research theses:
Step 14. Compare sampled organizations’ (Steps 1-12) project effort, development time
(time-to-market) from different domains with previously collected software development
organizations data from the QSM (Quality Software Management Corp. Database)
software industry averages.
Step 15. Develop conclusions.
Step 16. Report the results and interpretations. Mail the summary of results to all the
survey and case studies’ participants.
2.2.2. Research Questions about our Proposed Software Reuse Reference Model
Our literature search and related theoretical work uncovered a number of possible
software reuse factors, as well as reuse relationships between these factors and
productivity, quality, and time-to-market. The goal of our research is to develop RRM
whose utilization in software development lifecycle will increase productivity and quality
and decrease time-to-market. From this goal the following five questions about RRM are
derived:
Question 1. (Thesis 1) Is the Level of Reuse (RMML) (RRML, see section 2.2.3.)
predictive of:
A. Products development productivity (effort) level
B. Time-to-market level
C. Product quality level
Question 2. (Thesis 2) Is the Percentage of Adopted RRM Factors (PARF) predictive of
the implementation Level (RRML), i.e. levels of reuse success?
Question 3. At which phase of the software life cycle may organizations get the greatest
reuse benefits?
6
Question 4. How should organizations collect and utilize reuse metrics and incorporate
reuse effort estimation models as part of their software development life cycle?
Question 5. Is a reuse process common practice an integrated part of the organizations’
software development process?
We have tried to answer these questions through interpretation of the results reported in
section 4.
2.2.3. Reuse Reference Model Levels (RRML) Analysis
The RRML levels were assigned to each project based on the following model:
Level 1 (L1), Very Low,
Level 2 (L2), Low,
Level 3 (L3), Average,
Level 4 (L4), High, and
Level 5 (L5), Very High
The linearly ordered RRML is intended to produce realistic results. Level 3 requires
neutral answers on questions Q3-Q21 and Q30-Q33 (the total median) , Levels 4, and 5
require agree or strongly agree answers on the same questions. Level 2 requires disagree
answers to these questions. Level 1 will be made up of those projects that fail the level 2.
3. The Reuse Reference Model: Technological and Organizational Factors in RRM
The software RRM incorporates both technical and organizational factors that might be
needed to establish an improved software reuse practice in the organization. Technical
factors consist of: (1) technologies (tools) that support reuse: CASE tools and common
interface, e.g., CORBA, DCOM, and COTS; and (2) software development with reuse
processes (technical procedures): domain modeling, product-line approach, common
architecture, quality control, and best development practices. (3) Organizational factors
(e.g. organizational procedures) influencing software development with reuse:
management of reuse program, market place analysis, financing and marketing forecast,
and training.
Sections 3.1, 3.2 and 3.3 identify and define each possible factor in the RRM. The
definition of each RRM factor has the following form: factor description, justification for
its inclusion, and indication as to whether of not it came from the previous model
[Rine98].
3.1. Technologies (Tools) That Support Reuse
Description: Tools that support the software reuse process, construction, testing, and
management of software components.
7
Justification: These tools need to be evaluated, assembled and integrated into a variety
of specialized environments to support the software reuse process, development and
management team.
Prior Model: No
Architects and component developers need tools to develop models, as well as coding
and testing. Managers and librarians need metrics tools, project management tools, and
tools to manage multiple versions and configurations of components. Once the software
development organization has been assessed and a plan of software reuse defined, a set of
activities that support reusable assets based methodology installation should be
incorporated. These activities include the selection and installation of appropriate
methods and tools, and the definition of evaluation criteria for these tools.
3.1.1. Software Uniform Modeling and Design Notation
Description: Unified Modeling Language (UML) furnishing syntax and semantics for
precisely describing system and business models.
Justification: UML is a key enabler using graphical and textual modeling notation that
provides a clear and precise language allowing software engineers to describe an
architecture and components that will ensure the development of robust and reusesupporting systems [Jacobson 97].
Prior Model: No
The software community has been looking for and proposing solutions to “software
problems” for many years. Until Components-Based Development (CBD), object
technology was the last “solution.” One of the keys to CBD’s success is a standard
infrastructure for components. [Kiely 98].
A uniform modeling and designing notation is needed that provides an accepted way of
describing components’ functions and properties, which would be critical in designing
collaboration between components. Much of the industry is adopting the Unified
Modeling Language (UML), which combines several prior modeling and design
notations.
3.1.2. Standardized Software Component Interfaces
Description: A vendor interoperability standard designed to allow interoperability
between different component [Fonash93, Ferrentino94, Booch96, Fichman97].
Justification: Standardized software component interfaces gives a precise description of
types, exceptions, and type declaration that permits multiple language bindings,
regardless of the platform, author, or vendor infrastructure.
8
Prior Model: No
A standardized software component 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 Org21 Microsystem’ JavaBeans
specifications interoperable with its final Common Object Request Broker Architecture
(CORBA) specification and whose infrastructure will conform to UML.
The Object Request Broker (ORB) specification is the part of CORBA from the OMG
that describes a “software bus”-- a mechanism that handles communication between
distributed objects in a system. The ORB allows for distributed, heterogeneous clientserver objects interaction over a network. The ORB makes meta information describing
object interfaces available to all objects in the system. With this objects may access other
objects as clients without prior knowledge of their locations. Any object connected to the
ORB can play the role of both a client and server object. That is, it can initiate calls to
other objects and respond to requests for services from other objects on the ORB.
3.1.3. Trends of COTS
Description: Commercial-Off-The-Shelf (COTS) software components that are procured
for integration into software system.
Justification: In some cases COTS are more cost-effective with less time-to-market than
to reusing in-house-developed software components.
Prior Model: NO
Software reuse sources may come from inside the organization and from outside the
organization. For at least some of the reused software, an organization may find it to be
more cost-effective with less time-to-market to reuse existing Commercial-Off-TheShelf (COTS) or Internet distributed software than to reuse in-house-developed software
components. This is related to the traditional buy-versus-build tradeoffs. However, even
though COTS or Internet distributed software may require less effort (greater
productivity) and less time to acquire, this externally acquired software for reuse may be
very expensive and time-consuming to port between computer systems and to integrate
between incompatible interfaces. In order to solve this problem, should one decide to
acquire instead of build, externally reusable software must be both portable/interoperable
and easily integrated. COTS components provide an excellent source of reusable
software components, that are often overlooked [Staringer 94].
Two important technical sets of problems facing the use of COTS are
design/specification interfacing problems and integration problems. Let us consider
interfacing problems in COTS components reuse. COTS components generally provide
several functions needed for software products but not necessarily all of them. As a
result of this fact, a precise mapping between specification/design and implementation
9
cannot be accomplished until the COTS components have been selected. Here, the intent
to maximize COTS introduces a number of design variables. Sometimes it is not an easy
task to integrate COTS components. In such case software developers have to find other
options to overcome such problems.
3.2. Software Development with Reuse Processes (Technical Procedures)
At this point in our presentation, it is important to point out that in our case study and
survey study participants are asked to make the following distinctions between domain
model, product line, product family and common architecture.
Domain Model. A definition of all concepts and relationships between concepts in a
domain of discourse.
The intent of a domain model is domain knowledge representation.
Product Line. A set of products sharing a common, managed set of features that satisfy
specific needs of a selected market or mission.
The intent of a product line is market and mission needs or requirements.
Product Family. A set of systems built from a common set of assets.
The intent of a product family is core capabilities of an organization.
Common Architecture. An abstract architecture comprised of abstract components and
abstract connectors such that each abstract component is a generalization of components
from specific architectures and each abstract connector is a generalization of connectors
from specific architectures.
The intent of a common architecture is reuse of an abstract engineering design
structure.
The intent of each of these four principles of reuse is usually different. Take, for
example, the domain of accounting. Representing the domain of accounting may be for
the purpose of establishing an area of study, a professional discipline, standards for the
practice of accounting or understanding problems in accounting. Knowledge is the intent.
Representing sets of tools to help solve accounting problems of small businesses is for
the purpose of doing business and meeting small business needs. Requirements is the
intent. Acquiring and representing basic resources, personnel, expertise and infrastructure
is for the purpose of an organization to be able to do its work. Capabilities is the intent.
Systems are not reliable, maintainable, dependable or available if they are not constructed
with good engineering design principles. Quality structure is the intent.
So, a total reuse capability needs to include all four of this different principles. These
principles are (1) reuse of correct common knowledge, (2) reuse of correct common
10
requirements, (3) reuse of correct common capabilities, and (4) reuse of correct common
structure.
We assume in our study that these four principles of reuse are different.
3.2.1. Domain Modeling
Description: A domain modeling activity represents a semantically closed abstraction of
any system, used to model an appropriate range of commonality and variability of
application(s) or system(s) domain.
Justification: Finding a systematic way of identifying a domain model, commonality and
variability, potentially reusable knowledge, and a knowledge representation will highly
enable software reuse.
Prior Model: Yes.
Domain modeling is a systematic approach for identifying the knowledge commonalties,
similarities, and variabilities necessary to characterize and standardize any product-line
within a domain. While domain knowledge can be represented using domain modeling, a
domain is often realized for product-lines or product families, and its associated process
for producing instances of those families. Domain engineering (procedure) can be an
ongoing activity for defining, implementing, and evolving a domain and its domain
model. Domain engineering uses business objectives and domain knowledge to create
and standardize the product-line that the domain model supports. Domain engineers can
later be used to help specify correct common architectures. On the basis of business
objectives the domain manager creates a "master plan" for the development and evolution
of the domain [O'Connor 94].
Domain analysis and modeling are concerned with understanding the domain so that
domain abstraction can be modeled as reusable requirements, design patterns, or code
component [Sommerville 96]. A domain-specific, architecture-driven approach to reuse
will yield the greatest reuse impact and, thus, is important to address from both an
engineering and a management perspective
[STARS 95].
3.2.2. Product-Line Approach
Description: A product-line is a group or family of closely related products made by the
same process and for the same purpose, differing only in style, model, or size.
Justification: A product-line approach groups related systems into application families
and applies commonality and applies reuse across the family.
Prior Model: Yes.
Organizations that have developed similar products have a higher probability of success
in developing new products in the same area or domain. Organizations whose strategy is
11
to continually enter new areas (pop up businesses), and who are not associated with a
given area or application domain, are not likely to be able to fully leverage reuse.
Because products in a product-line are related (have similar functionality or user
requirements), there is usually a degree of high commonality across a given product-line
[Sonnemann 95]. Moreover, product-line have a sufficiently market lifetime so that an
organization can make a profit from it.
3.2.3. Common Architecture
Description: Common architecture is a description of subsystems and components of a
software family of systems and the relationships between them [Lamb88, Withey93,
Kogut94, Leary94].
Justification: A common architecture across a product-line it structurally supports
should allow an organization to more quickly develop a critical mass of reusable software
components and leverage reuse.
Prior Model: Yes
A common architecture provides standard interfaces and data formats, as well as common
experience leveraged from earlier developments. The architecture defines the rules for
developing software components. This aids in the interchangeability of reusable software
components across the product-line. Just as important, a common architecture lessens the
need to make reusable software components highly generic or flexible because the
environment in which they will be used is well defined and fixed. The architecture links
developed and reusable software components to the physical problem space (hardware,
operating system, and application packages such as database or graphics).
A common architecture makes a solid base on which to build systems [O'Connor
94]. A standard architecture can lessen the impact of major changes in end-user
requirements. [Staringer 94]
3.2.4. Software Component Quality Based upon Reuse
Description: Quality is a measure of how the system fitness for use and meeting the
users satisfaction and expectation [Lim94].
Justification: Reused components have been tested in operational systems.
Prior Model: Yes
Based on the results of the software industry practices, the system quality is increased
when it is developed from previously developed components. Reused components from
working systems, should be more reliable than newly developed components. These
components have been already tested and exposed to an actual operational environment.
Component generalization for reuse should meet certain quality metrics and may be
certified as having reached the required quality standards.
12
The effect of software component reuse is positive, principally because of the higher
opportunity that reuse provides for fault reduction [Sonnemann 95].
Software reusability can be used to achieve much higher levels of software reliability by
amortizing the debugging costs among products incorporating the reusable component.
3.2.5. Improved Practices
Description: The process of collecting quality (improved) current practices for software
reuse as adopted and employed technology by software developers.
Justification: Making these reuse experience and knowledge available will provide the
software engineers and managers with a realistic and practical models and lessons
learned on how to analyze, predict, estimate, measure, adopt, manage, improve, and
extend software reuse.
Prior Model: NO
Applying a certain technology, such as reuse, requires a change in attitude and needs to
allow sufficient time for development team members to mature in their roles. Every
developer must have the time to reach some level of maturated experience. Most
developers need to be able to reuse their existing assets to build new ones and to learn
something useful from their past experience.
Some valid experiences with preferred parts and group technology approaches in
manufacturing can also be applied to software. For software, this suggests that we
introduce design methods (or models) based on preferred (qualified) software parts.
Commonality and standardized requirements lead to preferred parts. The most effective
reuse programs concentrate on the identification and development of a small, highquality set of needed and useful components. In fact, as the amount of a new product
made from existing components increases, we observe corresponding improvements in
costs, time, and quality [Griss 93].
3.2.6. Reuse Metrics
Description: A software reuse metric is any measurement that relates to a software
system, process, or related documentation.
Justification: Estimates and measurements of these metrics can be used in the
refinement of the software reuse projects and predict an associated products reusability.
Prior Model: No.
Metrics play an important role in the determination of quality for both the technical and
organizational reuse factors. Metrics are distinguishing traits, characteristics, or
13
attributes. These attributes are both static and dynamic. Metrics fall into two classes: (1)
Control metrics are used by management to control the software process and (2)
Predictor metrics are measurements of a product attribute.
Considering the use of metrics for technical factors, for example, Fonash [Fonash93]
grouped the software component reuse metrics into five major categories: general,
quality, parameterization, coupling, and cohesion. Quality, parameterization, coupling,
and cohesion are software engineering principles that correspond to the reuse attributes.
The general category is for attributes that are not in the four software engineering
categories.
The following are suggested control reuse metrics:
- Reuse team size (persons)
- Reuse percentage (Size)
[Levels: 25% Low, 26-60% Average, 61-90% High]
- Reuse percentage may consist of the following categories:
Reused percentage of developed components from other projects, Reused
percentage of commercial off-the-shelf components, Developed percentage of
components for reuse by other projects; and Developed percentage of components
unique to the identified projects. Total = 100 %.
- Decreased level of development effort (Man-Month)
[Levels: 25% Low, 26-60% Average, 61-90% High]
- Decreased level of development time (Month)
[Levels: 25% Low, 26-60% Average, 61-90% High]
- Decreased level of time-to-market (Month)
[Levels: 25% Low, 26-60% Average, 61-90% High]
- Increased level of product quality (Reliability = errors/KSLOC)
[Levels: < = 2 High, 3-5 Average, > 5 Low]
- Maintenance cost reduction (Man-Month)
[Levels: 3 times Low, 4-6 times Average, 7-up times High]
- Overall software development cost reduction (Man-Month)
[Levels: 20% low, 21-50% Average, 51-up% High]
- Return-On-Investment (ROI= $)
[Levels: 2-5 times Low, 6-10 times Average, 11-up High].
The following are other reuse metrics [McClure 92]:
Commonality of a Component: is used to measure how frequently a component recurs
across a set or family of systems.
Reuse Threshold of a Component: is used to indicate the minimum number of times a
reusable component must be reused to pay back the investment in creating/preparing it
for reuse.
Reuse Merit of a Component: is used to measure the reusability of a component relative
to the average reusability of a component of the same type.
14
Reuse Creation Cost of a Component: is used to measure the cost of creating/preparing
a component for reuse. This includes the costs of purchasing the component, identifying
it via domain analysis, and preparing it for reuse (i.e., generalization, standardization,
certification, classification, documentation).
Reuse Usage Cost of a component: is used to measure the reuse-related costs incurred
each time the component is reused. This includes the costs of finding, understanding,
modifying/specializing and integrating the reusable component.
Reuse Maintenance Cost of a Component: is used to measure the costs of supporting a
reusable component.
Degree of Commonality of a system (or Business Area): is used to measure the
proportion of a system's (or Business Area's) components that are common.
Degree of Reusability of a system (or Business Area or corporation): is used to
measure the proportion of a system's (or Business Area's) components that are reusable.
Note that the Degree of Reusability is probably less the Degree of Commonality because
it is not cost-effective to create and support for reuse all common components.
Reuse Target Level of a system (or Business Area or corporation): is used to indicate
the minimum proportion of a system (or for a Business Area, the minimum proportion for
systems in that Business Area) or (for a corporation, the minimum proportion for all
systems in the corporation) that is reusable.
3.3. Organizational Factors Influencing Software Development with Reuse
3.3.1. Management of Reuse
Description: Software reuse program management is an essential activity to make sure
that software development based upon reuse is consistent with the organization's policies,
goals, and requirements.
Justification: Successful reuse management is essential if a software project is to be
supported by top management and to be developed on schedule and within budget
Prior Model: Yes.
In 1995 Sonnemann [Sonnemann 95] conducted an exploratory study of software reuse
success factors. His research investigated the relationship between software reuse and
many of the theories proposed by literature to provide greater reuse capability (success
factors). Sonnemann identified several leading indicators of software reuse capability
(success factors) including management commitment, investment strategy, business
strategy, organizational structure, reuse process maturity, management that understands
reuse issues, and software reuse advocate(s) in senior management.
15
3.3.2. Financial and Market Forecasting Factors
Description: Reuse technology must satisfy the organization’s financial ground rules and
impact the market forecasting strategy.
Justification: Financial constraints limit the range of opportunities for reuse within the
organization and forces iteration in the market forecasting process.
Prior Model: No
The funding profile for reuse projects is quite different from conventional software
projects. Typically, several years of up-front investment are needed before payoff is
realized. Managers are reluctant to make long-term investment without some guarantee
of success. They must consider market opportunities versus investment risks. The
solution may be to develop return-on-investment (RoI) models. For example, given an
initial investment cost (Io) in a corporate reuse program, an enterprise would expect to
break even at some point in time of its product-line life cycle phase.
Software reuse is not a new strategy; however, the current emphasis on systematizing
reuse and focusing such efforts toward narrow, well-defined application areas, or product
lines is novel. This restricted focus enables reuse of large-scale components, such as
software architectures and entire subsystems, that best leverage the knowledge, expertise
and resources within an organization, thereby enabling greater future payoff after initial
investment in software reuse.
If software developers do market analysis and forecast user needs, they should be able to
predict user needs [Griss 93]. Software reuse programs require significant investment
and substantial time to mature. Middle managers have been reluctant to adopt software
reuse because of the up-front costs and slow return on investment (three to four years)
[Joos 94].
A certain number (N) of reuses of components are necessary to break even on any reuse
investment (I).
3.3.3. Market Place Factors
Description: The future of the software-intensive-systems marketplace belongs to
organizations that can profitably deliver high-quality products in shorter time with less
cost in response to diverse or rapidly changing customer needs.
Justification: Shorter production cycles, higher quality, and cost reduction can have
great impact on overall profit and competitive advantage and market place than nonreuse development, or even cost-focused reuse-based development.
16
Prior Model: No.
Market place, domain modeling, and product-line approach are related and all are
required to enhance and support the software engineering business strategy based on
reuse. Although, these are potential factors that influence both software productivity and
quality, many of the previous software cost or quality estimation models did not take
them into consideration. Yet, one of the important motives of reuse is the potential for
leveraging valuable assets as part of the effort in developing quality products, as well as
leveraging time to introduce products to markets.
Prior to entering the software reuse market, a business should perform a reuse capability
analysis. The objective is to maximize the actual reuse within an identified target for
reuse opportunities with respect to business capabilities. The software asset producer,
broker, and consumer roles are important, separable aspects of reuse that form distinctive
patterns of activity within the reuse engineering idiom [STARS 94].
If a software developer’s products are of a higher quality and produced at a lower cost
than its competitors, it should be able to gain a larger share of the market or at least
increase profit [Frakes 93] [O'Conner 94].
Software reuse will help software developers to have better, more accurate, and early bid
estimates, because they know more about the system because a significant portion will
be built from reusable components. Software development and building new systems
out of reusable components will bring systems to market faster [Frakes 92].
3.3.4. Training Factors
Description: Classroom training supplemented by literature and additional courseware
tools are essential educational vehicles for reuse technology success.
Justification: Training is a way of insuring that engineers have the necessary software
reuse skills to work on a particular project.
Prior Model: Yes.
An organization with a corporate reuse education program has significant higher median
levels of code reuse [Sonnemann 95]. Technical, organizational, and educational
infrastructure is essential to reuse, and must be designed and managed to support it
[STARS 94]. As technology and business culture changes, it is essential that a continual
program of training about evolving technological and organizational factors be
instituted for software organizations. Often, the press of current project schedules and
pre-existing "fire-fighting mentality" cause attempts at training to be short-circuited.
Most software professionals recognize the need for training, but subordinate it to the
need to "get projects out the door."
17
For example, the object-oriented technology insertion stage of transition defines the
development environment and allocate the required resources. The critical activities
during this stage include defining techniques, selecting tools, and training the
development team. [Fayad 96]
Software engineering requires: three kinds of education should be conducted:
- Generic methods and concepts, directed toward both management and technical staff to
focus on generic software engineering concepts and methods;
- Tools and technologies, provided for practitioners and focusing on a specific software
tools and its use; and
- General business practices, intended for all business professionals, management, and
staff to improve their skills and communication [Pressman 88, 92].
4. RESULTS
This section begins in Section 4.1 by describing the results of the 1997 software reuse
case studies and survey. These results are used in Sections 4.2 and 4.3 to answer the five
research questions listed in the previous section 2.2.2.
4.1. Summary of Case Studies Empirical Results.
Our case studies research was comprised of examining data collected from 27 cases. Of
these 27, we were able to collect complete data in 25 of the cases, but data from 2 of the
27 cases (Orga, Orgb in Table 1) was not complete. Of the 25 cases completed, for 1
organization we performed 2 cases. Hence, there were 24 organizations (Org1 to Org24).
Considering our research [Nada 97] using the sample 27 case studies' results summarized
in Table 1(a, b, c) we found the following to be true: (Interpretation of Case Studies
Results)
1. The Software Reuse Reference Model (RRM) implementation levels RRML, derived
from technical and organizational features, are predictive of effort, quality, and timeto-market.
2. The fact that reuse is still not a common practice in many companies is due to three
factors. First, companies considering the introduction of reuse have to face
economical and financial problems. Second, companies considering the introduction
of reuse have to face organization-culture change impacts the software development
life-cycle. Third, companies considering the introduction of reuse have to face
assessment and evaluation of the actual benefits of reuse in terms of time and cost
savings, improvement in the quality of products, and decreased effort.
3. When software is reused multiple times, the defects fixed from each reuse
accumulate, resulting in higher quality. Furthermore, reuse reduces the time-tomarket and effort needed to develop and maintain a software product, and increases
the RoI.
Furthermore, Table 1-d summarizes the data presented in detail in Tables 1-a, 1-b, and 1c. The survey sampled the population from four types of organizations with type
identifiers as follows:
18
i. Small organizations with small projects (G11)
ii. Small organizations with large projects (G12)
iii. Large organizations with small projects (G21)
iv. Large organizations with large projects (G22).
4. From Table 1-d we see that large organizations sampled tend to use metrics, quality
control and management of reuse processes more than small organizations sampled.
Considering the RRM factors and the corresponding case studies' results we conclude the
following:
1. RRM Factors: Improved Development Practices, Management of Reuse Process.
Results: We found that software reuse at Org1, Org2, Org9, Org10, , Org11, Org12,
Org15, Org18, and Org21 is more systematic compared to the practices at Org5, Org16,
Orga, Org20, Org23 and Org24. The former have relatively higher investments in
resources than the latter. We found that this is especially true when reuse is planned and
implemented at the enterprise level, such as in the case of Org2, and Org11, Org12,
(Table 1. Exp. Yr. and Team Size).
As an aside, these former organizations’ reuse investments emphasize how a strong
commitment on the management side is essential to reach reuse break even thresholds
[Tracz86, 89, 94; Tirso 93; Troy 94; Sonnemann 95; SER 96].
2. RRM Factors: Reuse Metrics, Quality Control and Effort Models.
Results: We found that identifying and tracking certain reuse metric measurements at
Org1, Org2, Org3, Org9, Org10, Org11, Org12, Org13, Org15, Org17, Org18, Org19,
Org20, Org21 and Org24 gave them advantages over other organizations such as Org1,
Org7, and Org8 in the formers’ ability to assess and evaluate the actual benefits of reuse
in terms of reduced time-to-market, improvement in products quality, increased
productivity, and costs savings [Nada 97].
3. RRM Factors: Domain Model, Common Architecture, Product-line Approach, Best
Development Practices and Experiences.
Results: We found that pilot projects carried out at Org1, Org2, Org9, Org10, Org11,
Org12, Org15, Org16, and Org18 were successful in terms of the following:
a. achievement of the objectives set at the beginning of the projects;
b. identification of guidelines and methods for the development of reusable
components (development FOR reuse);
c. identification of guidelines and methods for the development of new applications from
reusable components (development WITH reuse);
d. construction of domain model, common architecture, or product-line approach [SER
96].
19
Table 1-a. Case Studies Summary
Organization
Domain
SW Type
Size KLOC
600 ESLOC
Team
Exp.
7
Team
Size
84
Focus
Org1 *
Laser Printers
Embedded
Org2
Avionics, C&C
Embedded
30
10
enterprise Single Product-line
Org3
CASE Tools
Client/server
200
10
3
Org4
Synthesis
Tools
up to 100
6
enterprise Family of Products
Org1 *
SW Generators
Tools
6
7
5
Vertical SW
Org5
Avionics/C&C
Embedded/RT
25
4
5
Family of Products
Org6
Healthcare
Real-time
NA
2
4
Single Product-line
Org7
Telecomm.
Client/server
8
3
NA
Single Product-line
Org8
Telecomm.
Embedded
256
19
NA
Family of Products
Embedded
15-30
2
2-5
Single Product-line
Family of Products
Family of Product
Family of Products
Org9
Avionics
Org10
Avionics
Embedded
15-30
10-11
3
Org11
Telecomm.
Data intensity
5-1000
10
enterprise Family of Products
Org12
Banking
Client/server
2000 Classes 4
enterprise Family of Products
Org13
MIS/Web Tools
Client/server
20-46
5
2
Vertical/Horizontal
Orga
Avionics
Embedded
135
5
15
Vertical
Org14
SW Tools
Client/server
250-300
4
5-8
Single Product-line
Org15
Avionics
Embedded
150-500
20+
4
Single Product-line
Org16
SWTools/Control Client/server/RT 10-1000
1
6-10
Vertical/Horizontal
Org17
SW /Web Tools
Client/server
500-1000
5
12
Horizontal
Org18
Reuse Tools
Client/server
> 100
16
NA
Horizontal
Org19
Avionics
Embedded
88
5
8
Org20
Command and
Control
Avionics/Gyro
Client/server
532
2
30
Vertical (Prod.Line)
Single Product-line
10-20
25
1-12
Group of Products
1000+/>80
Classes
50
4
<5
Vertical/Horizontal
Org22
System Software Distributed
Objects
Avionics/Control Embedded
15
~6
Family of Products
Org23
Cellular Network Embedded
30-5000
3-4
5
Org24
Command and
Control
20-88
4
Org21
Orgb
Embedded/RT
Embedded/RT
20
Vertical (Prod.Line)
enterprise Family of Products
Table 1-b. Case Studies Summary
Organization
Reuse %
Org1 *
50-70%
Less Effort Less
Schedule
Average
Average
NA
Low
Less T-T-M Better
Quality
LowHigh
Average
Low
Average
Org2
Average
Low
Org3
Average
Org4
High >
60%
Average
High
Org1 *
High
High
Org5
High
Average
Org6
High
Average
Org7
low
Low
High
Yes
High
High
Average
FRITS
Average
Average
NA
Transformers
Low
Average
NA
Domain Model
Low-Avg.
Average
NA
UML, CORBA
Avg. 45% Avg. 40%
Avg. 40%
NA
High
Org8
50-90%
50-90%
50-90%
50-90%
NA
Domain/OLE/CO
M
Domain Model
Org9
85%
Average
Average
Average
Avg.-High
EPICS
Org10
High
High
Average
Low
High
Repository
Org11
Avg.-High Avg.-High
Average
Average
Avg.-High
Yes
Org12
High
High
High
High
NA
Repository
Org13
Average
Average
Average
Average
Average
Yes
Orga
High
High
Average
NA
NA
Domain Model
Org14
Low
Low
Low
Low
Average
Repository
Org15
NA (50+)
NA (50%)
NA (50%)
NA(60%)
High
Domain Model
Org16
30/80
30/75
Avg.-High
Avg.-High
NA-High
Transformers
Org17
Low
High
High
High
Average
Yes
Org18
High
High (84%) High
High
Average
Frame
Org19
Avg.-High
High (70%)
High (80%)
Average
NA
Org20
High
(73%)
Average
High (65%) Avg. (28%)
Avg. (28%)
Low-Avg.
Yes
Org21
Average
High
Average
Average
Average
NA
Orgb
Low
Average
Average
Average
NA
Repository/UML
Org22
Avg.
(30%)
NA
NA
NA
NA
Low
NA
NA
NA
NA
NA
NA
Avg. (33%)
High (0.05)
NA
Org23
Org24
High
(67%)
High (61%) Avg. (33%)
Reuse Tech.
Repository
Table 1-c. Case Studies Summary
Organization
Reuse Metrics Less Maintenance Cost Reduction ROI
Org1 *
Yes
Average
NA
2-4
2
Org2
Yes
Low (complex)
Low
Low
2-5
Org3
Yes
Average
Average
High
NA
Org4
NA
Average
Average
Average
NA
Org1 *
Yes
Average
Average
Average
2-3
Org5
Yes
Low
Average
Low
NA
Org6
NA
Low
Low
NA
2-3
Org7
NA
NA
NA
NA
3
21
CMM L.
Org8
NA
Average
Average
Low
1-4
Org9
Yes
TBD (Avg.)
TBD (Avg.)
TBD
NA
Org10
NA
Low
High
Average
NA
Org11
NA
NA
Avg.-High
NA
NA
Org12
NA
Avg.-High
High
NA
2
Org13
Yes
Average
Average
Average
NA
Orgas
Yes
NA
Average
NA
NA
Org14
NA
NA
Low
Low
2
Org15
NA
Average
NA
Average
3
Org16
NA
Low
High
High
NA
Org17
Yes
Low
Average
Low
NA
Org18
Yes
High
High
High
NA
Org19
Yes
High
Avg.-High
Average
NA
Org20
Yes
Avg.-High
High
Avg.-High
3
Org21
NA
NA
High
Average
1-2
Orgb
NA
NA
NA
NA
2-3
Org22
NA
NA
NA
NA
2
Org23
NA
NA
NA
NA
NA
Org24
Yes
NA
High (61%)
NA
3-5
Table 1-d. Organizations and RRM and Factors.
Org1
Org2
Org3
Org4
Org1
Org5
Org6
Org7
Org9
Org9
Org10
Org11
Org 12
COTS
DM
MRP
BP
Training
FM
Tools
PL
CA
Metrics
MP
CQ
QC
Org. Type
X
--X
-X
-X
X
------
--X
X
X
X
-X
X
---X
X
X
X
X
X
--X
X
---X
--X
X
X
-------X
-X
X
-----X
--X
X
-X
X
-X
X
X
X
X
---X
X
----X
X
-X
-X
X
--
X
----X
X
-X
-X
X
--
----X
--X
------
X
-X
X
-----X
X
---
X
X
X
X
X
X
X
X
-X
X
X
--
--X
-X
--X
------
11
12
22
12
22
22
22
21
22
21
21
11
21
X
X
X
X
22
Org 13
Org 4
Org 15
Org 16
Org 17
Org 18
Org 19
Org 20
Org 21
Org 22
Org 23
Org 24
X
X
X
X
X
X
X
X
----X
X
----X
X
X
--X
X
X
-X
-X
X
--
---X
X
X
-X
X
-X
--
---X
---------
----X
X
-X
X
-X
--
X
-X
X
X
X
X
-X
X
X
--
X
---X
X
X
X
X
X
---
X
---X
X
X
X
X
X
---
---X
---------
---X
X
X
--X
--X
X
-X
-X
-X
-X
----
X
--------X
-X
Table 1 (d) . Entry Definitions.
X: Agree and
Strongly Agree
FM: Financing and
Marketing
--': Disagree and
Strongly Disagree
COTS: Commercial
Off The Shelf
DM: Domain Modeling
MRP: Management of
Reuse Process
BP: Best Practices
and Experience
PL: Product Line
CA: Common
Architecture
MP: Market Place
CQ: Component
Quality
QC: Quality
Control
4. RRM Factors: Management of Reuse Process and Best Development Practices and
Experiences.
Results: We found that pilot reuse project results at Org1, Org2, Org9, Org10, Org11,
Org12, Org15, Org16 and Org18 convinced top management of the validity of reuse
introduction on a larger scale. We also found that top management became more
committed to support further efforts to widen the reuse culture and to spread reuse across
the company [Sonnemann 95; SER 95].
5. RRM Factors: Reuse Metrics and Effort (Productivity) Models, Best Development
Practices and Experiences and Management of Reuse Process.
Results: We found that pilot projects in Org1, Org2, Org9, Org10, Org11, Org12,
Org15, Org16 and Org18 are monitored to determine the strengths and weaknesses in
the adopted reuse implementation process to identify possible areas for improvement
before introduction in more wide spread projects throughout the enterprise. At the same
time cost saving trends are identified and the basis for a future Return-On-Investment
(RoI) expectations is established.
As an aside, this incremental approach to reuse introduction is very sensible and usually
recommended, but as far as the objective data that can be obtained from the pilot
applications should always consider that they are usually only partial results. In other
23
22
22
22
22
11
22
22
22
21
22
22
21
words, real savings may be obtained only in the long term and there is no quick silver
bullet that can lead to fully appreciate the benefits of software evolution and reuse
programs for minimal costs, and create order of magnitude improvements in less than
several years (3-5 years based on the SER experiences) [SER 95].
6. RRM Factors: Training, Management of Reuse Process, Market Place and Demands,
Product-line approach, Common Architecture, Financing and Marketing Forecast.
Results: We found that reuse culture establishments within Org1, Org2, Org9, Org10,
Org11, Org12, Org16, Org18 and Org24 required the following:
a. Training of development team members,
b. Management involvement in selecting pilot projects and development teams,
c. Management commitment and support,
d. Identification of future software product markets to leverage reuse.
7. RRM Factors: Management of Reuse Process, Financing and Marketing Forecast,
Best Development Practices and Experiences, Reuse Metrics and Effort Models, Market
Place and Demands, Case-Tools.
Results: We found that in Org1, Org2, Org9, Org10, Org11, Org12, Org15, Org18 and
Org24 systematic reuse requires accurate analysis of organizational needs, management
support, implementation of reuse measurements, identification of expected key benefits,
and adequate technological support. Once the necessary organizational, methodological
and technical issues related to reuse have been identified and put into practice, their reuse
programs need appropriate automated support, especially when the number of the
reusable assets grows over the threshold of few components and/or when the
organization is geographically distributed.
8. RRM Factors: Use of Software Standards CORBA and DCOM, Reuse Metrics and
Effort Models, Best Development Practices and Experiences, Case-Tools.
Results: We found that experiences in Org3, Org4, Org5, Org6, Org7, Org8, Org9,
Org10, Org13, Org15, Org16, Org17, Org20, Org21, Orga and Org23 and demonstrated
that the following problems are among the major inhibitor causes:
a. Difficulties in properly managing software components databases.
b. Lack of comprehensive standards and reuse metrics.
c. Immaturity of reuse technologies, and a lack of enough empirical data on effectiveness
and efficiency improvements.
9. RRM Factors: Domain Modeling, Product-Line, Market Place and Demands,
Management of Reuse Process.
Results: We found that in Org1, Org3, Org6, Org7, Org8, Org9, Org10, Org11, Org12,
Orgb, Org16, Org18, Org20, ORP, and Org24 high achieved reuse rates are related to the
following high potential reuse incentives:
a. Domain stability.
b. Market focus.
24
c. High products commonality, e.g. Product line or family.
d. Non volatile or highly constrained performance requirements.
10. RRM Factors: Management of Reuse Process, Domain Modeling, and Case-Tools.
Results: From the diversity of domain and size of the organizations studied we found no
real influence in using certain methodologies over others.
11. RRM Factors: Management of Reuse Process, and Case-Tools.
Results: From the organizations studied we found that success in choosing certain reuse
technologies or tools in the organizations studied depends on:
a. Organizational culture.
b. Use of pilot projects to evaluate technologies and tools.
c. Suitability and customizability of technologies or tools to the organization’s
environment.
d. Planned transition for the usage of the adopted technologies or tools.
12. RRM Factors: Management of Reuse Process and Quality Control.
Results: We found that Org1, Org12, Org18, Org20 and Org21 achieved a higher level
of reduction in software maintenance effort by incorporating reuse in their managed
software development life-cycle.
13. RRM Factors: Common Architecture, Domain Modeling, and Management of
Reuse Process.
Results: We found that Org6, Org7, Org8, Org14 and Orgb develop their software
products based on ad-hoc reuse approaches without any organized or planned attempt to
exploit commonalties between applications, although significant overlaps in requirements
between applications in the same domain usually exist. We found that ad hoc reuse of
parts from existing applications occurred, even reuse of an entire application by adapting
it to satisfy a slightly different set of requirements.
14. RRM Factors: Common Architecture, Domain Modeling, and Product-Line.
Results: We found that in Org1, Org2, Org9, Org10 Org11, Org12 and Org16
applications form part of an informal application family, and could have been created
from common architecture, with a set of reusable components providing the tailoring for
specific product requirements and platforms.
As an aside, this common architecture approach offers many benefits in terms of:
- Reduced development effort, owing to the fact that development work which has
already been carried out elsewhere will not be repeated;
- Reduced development time, i.e. time-to market because there is less to do;
- Better quality, because new applications is built from proven parts;
- Consistency of applications' content because they are sharing the same
components.
15. RRM Factors: Domain Modeling, Common Architecture, and Product-Line.
25
Results: We found that Org1, Org2, Org9, Org10, Org11, Org12 and Org16 used the
domain engineering method to analyze and model the requirements in the domain, to
identify what were stable and what were varied and assessed the applicability of the
common architecture approach to the domain. The analysis of existing applications
provided major input to this analysis. The analysis convinced these organizations that the
common architecture approach would fulfill their needs. Also the models that were
produced proved useful as a means to conciliate the views of different product teams.
16. RRM Factors: Common Architecture, Domain Modeling, Product-Line, Software
Standards CORBA or DCOM, and Market Place and Demands.
Results: We found that Org1, Org4, Org9, Org10, Org11, Org12, Org15, Org16, Org17,
Org18 and Org24 achieved faster time to market and/or improved quality, because they
decided to base future development on common architecture and product-line
approaches. Their objectives were to develop one common architecture for several types
of applications, and in have it to comply with the standards of more than one market.
4.2. Summary Interpretation of Corresponding Survey Results
The survey of industry, academia, and government software developers was carried out
to collect supporting data for two theses about the software RRM and to determine
whether or not the RRM factors are applicable across organizations and are predictors of
software reuse capability such as ‘improvement.’ It has been asserted that incorporation
of such a RMM would promise three things:
1. Decreased products development effort;
2. Decreased time-to-market;
3. Increased product quality.
The survey examined 34 questions about the software RRM that incorporates both the
technical and organizational elements that might be needed to establish improved
software reuse practice in the organization.
A. Technical Factors by Question Number:
1. Technologies (or Tools e.g., Software Standards CORBA, DCOM, COTS), metrics,
effort models that support reuse and Case-Tools.
Survey Questions: SQ14, SQ18, SQ21, SQ22, SQ34
2. Software development with reuse elements (technical procedures) such as: Domain
Modeling, Product-line Approach, Common Architecture, Quality Control, and Best
Development Practices experience.
Survey Questions: SQ3, SQ4, SQ5, SQ8, SQ11, SQ12, SQ15, SQ16, SQ17, SQ23-SQ25,
SQ32, SQ33
B. Organizational Factors (Organizational Procedures) by Questions Number:
26
Management of Reuse Program, Market place, Financing Marketing Forecast and
Training.
Survey Questions: SQ6, SQ7, SQ9, SQ10, SQ13, SQ19, SQ20, SQ21, SQ23-SQ25,
SQ27-SQ31.
We also divided the survey population into four groups (types) as follows:
1. Small organizations with small projects (G11)
2. Small organizations with large projects (G12)
3. Large organizations with small projects (G21)
4. Large organizations with large projects (G22)
Ninety-three responses were received. Most of them were sent by on-line web site
submission forms. Some other forms were submitted by personal interview, mail, or fax.
We tried to avoid having more than one project from the same organization. We
sometimes accepted more than one project from the same organization if they each
belonged in different categories (G11, G12, G21 and G22).
4.2.1. Technologies (or Tools e.g., Software Standards CORBA, DCOM, COTS),
Metrics, Effort Models that Support Reuse and Case-Tools.
In this section and in section 4.2.2. that follows, for every survey question (SQ) we have
placed following it in parentheses the RRM Factor (RRMF) or Factors that was/were
used to categorize each SQ. The key words in each survey question were used from the
definition of each RRMF as presented in section 3. Hence, let us turn to the first set of
survey questions based on this correspondence.
Survey Questions: SQ14, SQ18, SQ21, SQ22, SQ34.
SQ14. We have an efficient requirements analysis tool that links our most common enduser requirements with the reusable software component(s) that satisfy them.
(CASE Tools)
Findings: 62% of the projects ‘do not use requirements analysis tool’ that links their
most common end-user requirements with the reusable software component(s)
SQ18. Our architecture has proved at least one of the following: CORBA/OLE/DCOM...,
etc., to be useful means in standardizing interfaces and data formats. (Use of Standards
CORBA, DCOM..., etc.)
Findings: about 50% of the projects did consider or approve at least one of the
following:
(CORBA/OLE/DCOM...,etc.) to be a useful means of standardizing interfaces and data
formats.
SQ21. Our configuration management system does an exceptional job keeping track of
the projects that use each reusable software component.
(Management of Reuse Process, Reuse Metrics, Effort Models, and Case Tools)
Findings: 57% of the projects keep track of the projects that use each reusable software
component.
27
SQ22. Identify the percentage of reusable and unique software components used in the
identified project.
____ % Reused developed components from other projects.
____ % Reused Commercial Off-The-Shelf components.
____ % Developed components for reuse by other projects.
____ % Developed components unique to the identified projects.
Total = 100 %.
Findings: 59% of the projects reuse about 41-80% from other projects and COTS
according to the following percentage reuse of assets:
Level 1, 0-20,
Level 2, 21-40,
Level 3, 41-60,
Level 4, 61-80, and
Level 5, Greater Than 80.
SQ34. My organization uses an effort estimation model that incorporates SW reuse as a
factor.
(Metrics and Effort Estimation Models)
Findings: 34% of the projects are using an effort estimation model that incorporates
software reuse as a factor
4.2.2. Software Development With Reuse Activities (Technical Procedures)
including: Domain Modeling, Product-line Approach, Common Architecture,
Quality Control and Best Development Practices Experience.
Again, for every survey question (SQ) we have placed following it in parentheses the
RRM Factor (RRMF) or Factors that was/were used to categorize each SQ. The key
words in each survey question were used from the definition of each RRMF as presented
in section 3. Hence, let us turn to this second set of survey questions based on this
correspondence.
Survey Questions: SQ3, SQ4, SQ5, SQ8, SQ11, SQ12, SQ15, SQ16, SQ17, SQ23-SQ25,
SQ32, SQ33.
SQ3. If you have a domain engineering section supporting the identified project, do you
believe that the section support is (was) very effective and efficient. (Domain Modeling
and Product Line)
Findings: 42% of the projects do not have a domain engineering section supporting the
identified project at all. (No Domain Modeling) 38% of do have a domain engineering
section.
SQ4. If you have software reuse repository support to the identified project do you think
that the repository support is (was) effective and efficient. (Domain Modeling and
Product-line)
28
Findings: 25% of the projects do not have software reuse repository, 41 % of the
respondents who do have software reuse repositories think that the repository support is
(was) effective and efficient.
SQ5. The organization has developed similar products in the past (in context of the
identified project) and they are well understood by project team members. (Best
Development Practices Experience.)
Findings: 47% of the projects have developed similar products in the past (in context of
the identified project) and they are well understood by project team members.
SQ8. Pilot projects were used effectively to refine software reuse "best practices" prior
to adopting them for routine use. (Best Development Practices Experience.)
Findings: 45% of the projects have used pilot projects effectively to refine software
reuse "best practices" prior to adopting them for routine use. This confirms RQ5 and
supports our findings from the case studies. (Best Development Practices Experience.)
SQ11. Projects document their software reuse lessons learned, which in turn are used to
improve the organization's software reuse process. (Best Development Practices
Experience and Management of Reuse Process)
Findings: 35% of the projects document their software reuse lessons learned, which in
turn are used to improve the organization's software reuse process. 10% do not practice
any documentation about reuse lessons leaned at all.
SQ12. Our software reuse efforts are concentrated on the identification and development
of a small, high-quality set of needed and useful components. (Reuse Quality and
Quality Control)
Findings: 59% of the projects considered reuse of a high-quality set of needed and
useful components.
SQ15. Our software development process is built around a core set of reusable software
components as the foundation for our products. (Common Architecture, Domain
Modeling, Product line, Marketing Forecast, Management of Reuse Process)
Findings: 76% of the projects considered a core set of reusable software components as
the foundation for their products in their development process. Many of the projects
(57%) considered that during the requirement analysis phase, 43 % during the design
phase, and 38% during coding phase (SQ26 - SQ28).
SQ16. We have done a thorough domain analysis of our products. (Domain Modeling)
Findings: 39% of the projects do practice a thorough domain analysis, 40% do not.
*** This confirms the SQ3 findings about Domain Modeling
SQ17. We rely heavily on a common architecture across our product line. (Common
Architecture and Product-Line)
Findings: 59% of the projects rely heavily on a common architecture across their
product line. 25% do not use the common architecture or product-line approach.
•
Software reuse promises numerous benefits. Rank your organization top
29
three motives for implementing software reuse. Please select from the list
of available choices.
1. Better bid estimates.
2. Reduce development effort and costs.
3. Faster time to market
4. Better predict user needs.
5. Increase market share.
6. Successfully enter new markets.
7. Increased commonality across projects.
8. Better understanding of customer requirements
9. Improved quality.
10. Decreased product maintenance.
SQ23. Primary
Motives ___
SQ24. Secondary Motives ___
SQ25. Tertiary
Motives ___
(Common Architecture, Quality Control, Market Place, Marketing Forecast, Reuse effort
Models, Management of Reuse Process)
SQ23. Findings: 59% of the projects considered the development effort and costs
reduction as their primary reuse motive. 10% considered the faster time to market their
primary reuse motive. 8% of the projects considered the better bid estimates their primary
reuse motive.
SQ24. Findings: 29% of the projects considered the faster time-to-market the as their
secondary reuse motive. 25% considered the increased commonality across projects as
their secondary reuse motive. 18% considered the development effort and costs
reduction as their secondary reuse motive. 9% of the projects considered the improved
quality their secondary reuse motive.
SQ25. Findings: 19% of the projects the increased commonality across projects as their
tritary reuse motive. 17% of the projects considered the improved quality their tritary
reuse motive. 16% of the projects considered the decreased product maintenance their
tritary reuse motive. 15% considered the faster time to market as their tritary motive
14% considered the improved quality their tritary motive
SQ23, SQ24, and SQ25 findings: the projects main reuse motives are:
- Development effort and costs reduction;
- Faster time-to-market;
- Increased commonality across projects;
- Improved quality.
SQ26. We have seen significant improvement in these areas (reference your three highest
priorities identified in questions 23, 24, and 25). (Common Architecture, Quality
30
Control, Market Place, Marketing Forecast, Reuse effort Models, Management of Reuse
Process)
Findings: 51% of the projects achieved significant improvement in the above mentioned
areas.
*** This confirms our findings from the case studies
SQ27. During (after) the project requirements phase we realized high commonality with
the requirements of previous project(s). (Common Architecture, Domain Modeling,
Product-line, and Management of Reuse Process)
Findings: 57% of the projects realized high commonality with the requirements of
previous project(s) during (after) the project requirements phase.
SQ28. During (after) the project design phase we realized high commonality with the
design of previous project(s). (Common Architecture, Domain Modeling, Product-line,
and Management of Reuse Process)
Finding: 43% of the projects realized high commonality with the design of previous
project(s) during (after) the project design phase.
SQ29. During (after) the project coding phase we realized high commonality with the
code (documentation) of previous project(s) during (after) the project coding phase.
(Common Architecture, Domain Modeling, Product-line, and Management of Reuse
Process)
Finding: 38% of the projects realized high commonality with the code (documentation)
of previous project(s).
*** SQ27, SQ28, and SQ29 finding: the projects tried to get most of reuse benefits by
considering the reuse approach during the early phases of the software development
life cycle.
SQ31. Our decisions to bid on new projects or enter new markets are based heavily on
our software reuse capabilities. (Market Place, and Financing and Marketing Forecast)
Finding: 36% of the project teams think that their decisions to bid on new projects or
enter new markets are based heavily on their software reuse capabilities. (Market Place
and Marketing Forecast)
SQ32. Our reusable software components have proven through operational use to be
highly reliable.
(Quality Control and Reuse Quality)
Findings: 60% of the projects reusable software components have proven through
operational use to be highly reliable.
*** this confirms the case studies' findings.
SQ33. We have a valuable process for certifying reused software components. (Quality
Control and Management of Reuse Process)
Finding: 45% of the projects do not have a process for certifying the reused software
components.
31
4.2.3. Organizational
Activities (Organizational Procedures) by Questions
Including: Management of Reuse Program, Market place, Financing Marketing
Forecast, and Training.
Again, for every survey question (SQ) we have placed following it in parentheses the
RRM Factor (RRMF) or Factors that was/were used to categorize each SQ. The key
words in each survey question were used from the definition of each RRMF as presented
in section 3. Hence, let us turn to this third set of survey questions based on this
correspondence.
Survey Questions: SQ6, SQ7, SQ9, SQ10, SQ13, SQ19, SQ20, SQ21, SQ23-SQ25,
SQ27-SQ31.
SQ6. Senior management has demonstrated a strong support for software reuse by
allocating funds and personnel over a number of years. (Management of Reuse
Program, Financing Reuse)
Findings: 56% of the projects senior management has demonstrated a strong support for
software reuse by allocating funds and personnel over a number of years.
SQ7. There is a strong influential individual(s) in senior management who actually
advocates and supports developing a software reuse capability. (Management of Reuse
Program)
Finding: 52% of the projects agreed that there is a strong influential individual(s) in
senior management who actually advocates and supports developing a software reuse
capability.
*** SQ6 and SQ7 support each other
SQ9. Our staff has a very competent software reuse education and training courses
(internal and/or commercial). (Training)
Finding: 29% of the staff in the projects have a very competent software reuse education
and training courses (internal and/or commercial).
*** Lack of training
SQ10. Education for senior management is a very important aspect of our software reuse
education and training program. (Training and Management of Reuse Program)
Finding: 51% of the project teams believe that the education for senior management is a
very important aspect of their software reuse education and training program.
SQ13. We conduct market analysis of our products market place to effectively determine
what domains to be modeled (or what COTS to be used) in order to develop reusable SW
components to be placed in our software reuse repository. (Market Place, Market
Forecast, Domain Model, COTS, Product-line)
Findings: only 29% of the projects conducts market analysis of our products market
place to effectively determine what domains to be modeled (or what COTS to be used) in
order to develop reusable software components
*** SQ13 finding confirms SQ3 finding.
32
*** Low level of Domain modeling achieved
SQ19. Software developers and maintainers precisely follow a software reuse process
that is defined and integrated with the organization's software development process.
(Management of Reuse Program)
Finding: 33% of the projects' developers and maintainers precisely follow a software
reuse process that is defined and integrated with the organization's software development
process.
*** Reuse process is not common and integrated part of most of the organizations’
software development process.
SQ20. Performance of the software reuse process is carefully measured and analyzed to
identify weaknesses, and plans are established to address the weakness. (Management of
Reuse Program, Best Practices and Experiences)
Findings: 24% of the projects measure and analyze the software reuse process carefully
to identify weaknesses, and plans are established to address these weaknesses.
*** Lack of software reuse metrics
*** This also confirms SQ19 finding about the lack of integrating the software reuse
with the organizations’ software development process.
SQ30. Management has created new business opportunities that take advantage of the
organization's software reuse capability and reusable assets.
(Management
of
Reuse Program, Financing and Marketing Forecast, Market Place)
Findings: 34% of the projects Management has created new business opportunities that
take advantage of the organization's software reuse capability and reusable assets.
*** Limited success of market forecasting based on reuse
*** This confirms the findings of SQ24, and SQ31.
Table 2 (a, b). represents the survey summary in terms of percentages of responses
supporting RRM elements. High percentages (well above 50%) support the perceived
importance of senior management support (Q6), reliance on a common architecture
(Q17), importance of tracking and reliability of reusable components (Q21, Q32),
reliance on common requirements (Q27), and the reliance of reuse in development effort
and costs reduction.
33
Table 2.a. Survey Summary
Question #
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Results
67% considered the problem addressed by the project to be difficult/very difficult
42% of the projects do not have a domain engineering section
25% of the projects do not have software reuse repository
47% developed similar products in the past (Best Practices and Experiences)
56 senior management has demonstrated a strong support for software reuse
52% strong influential individual(s) in senior management advocates software reuse
45% have an effective pilot project (s), this result matches with the case studies findings and RQ5
29% have a very competent software reuse education and training (* lack of training)
51% believe that the education for senior management is a very important issue
10% do not practice any documentation about reuse lessons leaned.
51% high quality products is one of primary motives of software reuse
29% projects do market analysis of their products market place and domain models
25% only use requirements analysis tool for reuse (the vast majority do not)
see SQ26-SQ28
40% do not practice domain analysis, see also SQ3
59% rely heavily on a common architecture
50% considered or approved (use of Standards/ CORBA, DCOM, ..etc.)
33% precisely follow a software reuse process as part of their software life-cycle
24% precisely follow a software reuse process to identify weekness and plans
57% projects keep track of each reusable software component.
59% projects reuse about 41-80% from other projects and COTS
59% The primary motive of reuse is development effort and costs reduction
29% the secondary motive of reuse is faster time-to-market
17% the tritary motive of reuse is improved quality product
51% achieved significant improvement in the above mentioned areas. SQ23-SQ25
57% realized high commonality with the requirements of previous project(s) (Req's)
43% realized high commonality with the design of previous project(s) (Design)
38% realized high commonality with the code (documentation) of previous project(s).
34% created new business opportunities that take advantage of their software reuse
36% decisions to bid on new projects or enter new markets are based on reuse
60% projects reusable software components have proven to be highly reliable
45% do not have a process for certifying the reused software components
34% adopting reuse effort models and metrics ( lack of reuse effort models and metrics)
34
Table 2.b. Survey Summary
Level 1
Level 2
Level 3
Level 4
Level 5
Percentage of the Survey Replies
5
21
45
24
5
Table 2.b. Translating Responses into Levels.
Level 5
Level 4
Level 3
Level 2
Level 1
Strongly Agree (Q3-21, 30-33)
Agree (Q3-21, 30-33)
Neutral (Q3-21, 30-33)
Disagree (Q3-21, 30-33)
Strongly Disagree (Q3-21, 30-33)
4.3. Research Questions
In this section five research questions stated in section 2.2.2 will be answered.
Research question 1. Is the implementation level of the software reuse reference model
elements predictive of:
A. Products development productivity (effort) level
B. Time-to-market level
C. Product quality level
Based on the survey data analysis there is a correlation between the RRML (See section
2.2.3) and the organization improvement level of their software development effort, timeto-market, and quality. (Questions 23-26) This supports Thesis 1.
Of the 93 software development organizations in the survey sample 63 organizations
reported one of the following three primary motives (See SQ23 of section 4.2.2):
•
•
•
Reduce development effort and costs.
Improved quality.
Faster time to market.
The remaining 30 organizations reporting primary motives as being other than these
three.
Of those organizations having as their primary motivation (goal) to increase software
development productivity (reduced effort and costs) analysis of variance reported in
Figure 1 shows a very high F value of 28 and a very low Prob > F value in comparing
Reduced Effort to RRML.
35
Of those organizations having as their primary motivation (goal) to decrease (faster)
time-to-market of developed software analysis of variance reported in Figure 2 shows a
very high F value of 23 and a very low Prob > F value in comparing Less-Time-ToMarket to RRML.
Of those organizations having as their primary motivation (goal) to increase developed
software product quality analysis of variance reported in Figure 3 shows a more modest F
value of 6 and a somewhat higher Prob > F value in comparing Increased Quality to
RRML.
Because of the smaller sample sizes, it was decided to include statistical methods that do
not require the assumption of larger samples. Hence, we included F-test values to justify
the assumption of the equality of variances, which is needed in the t-test where the t-test
is applied to test the differences between the means [Hoel 54] of the variables in our
study.
This analysis leads to support of Thesis 1 and an affirmation of Research question 1.
Research question 2. Is the reuse percentage predictive of the implementation level of
the software reuse reference model elements?
Based on the survey data analysis there is no correlation between the reuse percentage
and the implementation level of the software reuse reference model activities
Research question 3. At which phase of the software life cycle organizations get the
greatest reuse benefits?
Based on the following results:
- 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).
We concluded that considering the reuse approach during the early phases of the software
development life cycle organizations get the greatest reuse benefits. (Questions 27-29)
Research question 4. How should organizations collect and utilize reuse metrics and
incorporate reuse effort estimation models as part of their software development life
cycle?
Considering the survey data analysis we found that here is a lack of collecting reuse
metrics and using effort estimation models with reuse.
Only 24% of the projects measure and analyze the software reuse process carefully to
identify weaknesses, and have plans established to address these weaknesses.
36
Research question 5. Is a reuse process common practice and an integrated part of the
organizations' software development process?
Considering the survey data analysis only 33% of the projects developers and maintainers
precisely follow a software reuse process that is defined and integrated with the
organizations’ software development process.
4.4. Summary Interpretation of Corresponding QSM Study
Recall that a sample of 93 organizations were surveyed. Out of these 93 organizations 27
organizations agreed to be a sample for more in depth case studies. Out of these 27 case
studies 19 were found to have features matching features in a related Quality Software
Management (QSM), Inc. database of over 4000 software development projects collected
Worldwide over a period of 15 years.
QSM helped us to compare these 19 selected organizational projects out of the George
Mason University (GMU) data set with their database to further quantify benefits of
software reuse. The data analysis demonstrated evidence of improvements realized
through application of reuse.
With the QSM database we have carried out the following:
A. Determined schedule change and “industry average” Productivity Index (PI).
B. Determined schedule change and “average of the selected projects” Productivity
Index (PI)
C. Compared the results in (1.) and (2.) above.
D. Found the schedule reduction for each industry domain
E. Found the effort reduction for each industry domain.
For example, in the Business domain the GMU with RRM projects average PI (19.6) is
higher than the QSM industry wide average PI (17.3), and the schedule time to complete
development has decreased.
The QSM study results are summarized in Table 3.
From the QSM study results we conclude that Thesis 1 is supported and that the software
RRM implementation level is a predictor of (a) Products development effort (b) Time-tomarket.
37
Table 3. Summary of the QSM Study Results
Industry Domain
Project
Productivity
Index
Industry
Productivity
Index
Schedule
Change
Development
Effort
Change
Project
Productivity
Index Change
Business
19.6
17.3
Decreased
Increased
System Software
13.9
13.6
Even
Increased
Telecomm.
Command & Ctrl
Real-time
12.0
11.3
9.4
11.8
11.3
7.5
Decreased
Decreased
Decreased
Decreased
Even
Increased
Avionics
12.3
8.3
Decrease
d
Decrease
d
Even
Even
Decrease
d
Decrease
d
Decreased
Increased
Also, through this QSM analysis we found that the RRM is domain independent,
meaning that the reference model benefit does not depend on any particular applications
software domains.
5. SOFTWARE REUSE
CONTRIBUTIONS
REFERENCE
MODEL
CONCLUSION
AND
This section contains summary interpretations of the research results presented in the
previous section (Section 4).
The objectives of this research are: 1. The developing of a software RRM, 2.
Empirically supporting the RRM, 3. Providing the empirical impact of the software RRM
implementation level on the software effort, quality, and time-to-market.
To empirically support the model we used three different research approaches:
1. Carrying out 27 case studies of industry and government software developers;
2. Surveying the industry and government software developers;
3. Carrying out Quality Software Management (QSM) study of 19 selected GMU
projects.
The organizations used in the empirical part of this reported research with the highest
software reuse capability use the elements in RRM.
The empirical part of this research also supports RRM as domain independent in that the
model does not seem to depend on any particular applications software domains.
The research results support the 1995 [Sonnemann 95] early study thesis that there is a
set of improvement factors (software reuse leading indicators) that are common across
38
organizations and have some predictability relationships to software reuse. Based on the
case studies and survey results, we confirm that the leading indicators of software reuse
capability areas follows: product-line approach, architecture which standardizes
interfaces and data formats, common software architecture across the product-line, design
for manufacturing approach, domain engineering, management which understands reuse
issues, software reuse advocate(s) in senior management, state-of-the-art 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 that
support them.
This research also investigated to see if software reuse had a predictive relationship to
productivity, time-to-market and quality.
Based on the survey and the case studies' results we concluded that Thesis 1 is supported
and that software RRML (See section 2.2.3) in the organization is predictive of products
development process productivity, time-to-market, and product quality. So the
organizations that scored high RRML achieved the following:
- Increased level of process productivity
- Increased level of product quality
- Decreased level of development time
- Decreased level of time-to-market.
These findings will help software developers in the implementation of the RRM. These
findings will also serve as guidance for systematic improvement of reuse practices in an
organization.
REFERENCES
Applied Expertise, Inc., Software Reuse Benchmarking Study: Learning from Industry
and Government Leaders, Report for the US Department of Defense Software Reuse
Initiative, January, (1996).
Baldo, J.; Moor, J. and Rine, D., Software Reuse Standards, Standard Views: ACM
Perspectives on Standardization, 5(2), 50-57 (1997).
Booch, G., Object Solutions, Managing the Object-Oriented Project, Addison-Wesley,
(1996).
Basili, V. and J. Musa, The Future Engineering of Software: a Management Perspective,
COMPUTER, September, 90-96 (1991).
Bell Canada, Software reuse case study - TRILLIUM, ARPA Report, 13 September
1993.
Boehm, B., Software Engineering Economics, Englewood Clifs, Prentice-Hall, NJ., 1981.
Boehm and P. Papaccio, 'Understanding and controlling software costs', IEEE
Transactions on Software Engineering, October, 14(10), (1987).
Boehm, B., and W. Scherlis, Megaprogramming (preliminary version), ARPA Paper,
(1992).
39
Bollinger, T., and S. Pfleeger, Economics of Reuse: Issues and Alternatives, INFO
SOFT, December, 643-653 (1991).
Card, D., and E. Comer, Why do so Many Reuse Programs Fail?', IEEE Software,
September, 114-115 (1994).
Cruickshank, R., and Gaffney, J., The Economics of Software Reuse, REUSE-ECONMODEL- 91128-MC, Software Productivity Consortium, Herndon, Virginia, (1991).
Cusumano, M., Japan’s Software Factories: A Challenge to U.S. Management, NY,
Oxford University Press, (1991).
Fafchamps, D., Organization Factors and Reuse, IEEE Software, September, 31-41
(1994).
Fayad, M., Tsai, W., and Fulghum, M., Transition to Object-Oriented Software
Development, Communication of the ACM, February, 39(2), 109-121(1996).
Fichman, R., Kemerer, C., Object Technology and Reuse: Lessons from Early Adopters,
IEEE Computer, October, 47-59(1997).
Fonash, P., Characteristics of Reusable Software Code Components, Ph.D. Dissertation,
George Mason University, 1993.
Frakes, W., and Isoda, S., Success Factors of Systematic Reuse, IEEE software,
Septmber, 15-191(994).
Ferrentino, A., SNAP: The Use of Reusable Templates to Improve Software Productivity
and Quality, Template Software, Inc., Herndon, Virginia, 1994.
Fonash, P., Metrics for Reusable Software Code Components, Ph.D.
Dissertation,
George Mason University, Fairfax, Virginia, Fall 1993.
Frakes, W., Software Reuse Empirical Studies, Virginia Polytechnic Institute and State
University, Department of Computer Science, Blacksburg, Virginia, 11 October 1992.
Frakes, W., and W. Riddle, Instituting and Maturing a Practical Reuse
Program,
International Perspectives in Software Engineering, Summer 2nd Quarterly, 18-26
(1993).
Frakes, W., and Isoda, S., Success Factors of Systematic Reuse, IEEE Software,
September 15-19 (1994a).
Frakes, W., and C. Fox, Sixteen Questions about Software Reuse, Software Engineering
Guide Draft Paper, November, 1-25 (1994b).
Frakes,W., and Fox, C., Quality Improvement Using a Software Reuse Failure Modes
Model, Software Engineering Guild Draft Paper, November, 1-13 1(994c).
Frakes, W., and Fox, C., Sixteen Questions about Software Reuse, Communications of
the ACM, 38(6), 75-87 and 112, June (1995).
Gibbs, W., Software's Chronic Crisis, Scientific American, September, 86- 95 (1994).
Gold, J., Reusabilty Promise Hinges on Libraries, IEEE Software,
13(1), January 86-92(1993).
Griss, M., Software Reuse: from Library to Factory, IBM Systems Journal, 32(4), 548566 (1993).
Hoel, P., Introduction to Mathematical Statistics, John Wiley and Sons, New York,
(1954).
Jacobson, I., Griss, M., Jonsson, P., Making the Reuse Business Work, IEEE Computer,
October, 36-42(1997).
Joos, R., Software Reuse at Motorola, IEEE Software, September, 42-47 (1994).
40
Kiely, D., Are Components the Future of Software?, IEEE Computer, February, 10-11
(1998).
Kogut,P., and K. Wallnau, Software Architecture and Reuse: Senses and
Trends,
Tutorial for Tri-Ada Conference, 7 November (1994).
Lamb,D., Software Engineering: Planning for Change, Prentice Hall, (1988).
Leary, J., Information Architecture - an Architectural Basis for Evolution of Large Scale
Software Systems, Software Engineering Institute (SEI) Paper for NPGS Workshop, 2
February, 1994a.
Leary, J., Information Architecture Notions, briefing slides presented to Defense
Simulation and Modeling Office Meeting, 19 October 1994b.
Lim, W., Effects of Reuse on Quality, Productivity, and Economics, IEEE Software,
September, 11(5), 23-30, (1994).
Lim, W., Managing Software Reuse’, Englewood Cliffs, NJ. Prentice-Hall, (1998).
McCain, R., Introduction to Reuse Technology and Application, slides - Defense Systems
Management College, September (1991).
McClure, C., The Three Rs of Software Engineering: Reengineering - Repository - and
Reusability , Englewood Cliffs, NJ. Prentice-Hall, (1992).
Morisio, M., Ezran, M. and Tully, C., Introducing Reuse in Companies: a Survey of
European Experiences, Proceedings of the 1999 Symposium on Software Reuse, ICSE99, IEEE and ACM (1999)
Nada, N., Software Reuse-Oriented Functional Framework, Ph.D. Dissertation, George Mason
University, Fall (1997).
O'Connor, J., et al., Reuse in Command-and-Control Systems, IEEE Software,
September, 70-79 (1994).
Parnas, D., On the Design and Development of Program Families, IEEE Transactions on
Software Engineering, SE-2, 1-9 (1976).
Patterson, F., Reengineerability: Metrics for Software Reengineering for Reuse, Ph.D.
Dissertation, George Mason University, Fall (1995).
Pfleeger, S., Design and Analysis in Software Engineering, Part 1: The Language of Case
Studies and Formal Experiments, Software Engineering Notes , (19) 4, 18-19 (1994).
Pfleeger, S., Design and Analysis in Software Engineering, Part 3: Types of
Experimental Design, Software Engineering Notes, 20 (2), 14-16 (1994).
[Pfleeger, S., Design and Analysis in Software Engineering, Part 5 Analyzing the Data,
Software Engineering Notes, (20) 5, 14-16 (1994).
Pressman, R., Making Software Engineering Happen: A Guide for Instituting the
Technology, Prentice Hall, (1988).
Pressman, R., Software Engineering: A Practitioner’s Approach, McGraw-Hill, (1992).
Quality Software Management (QSM), Inc., Report on Independent Research Study of Software
Reuse: Using Frame Technology, September (1994).
Rine, D., Supporting Reuse With Object Technology, Special Issue on Software Reuse
Processes and Products, October, Computer, 43-45, IEEE Computer Society (1997).
Rine, D., Development of Reusable Software for the World Wide Earth Observing and
Earth Information System : EOEIS, October, Internet News, (1997).
Rine, D., and Sonnemann, R., Investments in Reusable Software: A Study of Software
Reuse Investment Success Factors., The Journal of Systems and Software, 41, 17-32
(1998).
41
Robertson, P., and De Ferrari, Systematic approaches to visualization: is a reference
model needed?, Scientific Visualization, Academic Press Ltd., Ch.18, 287-305 (1994).
SER, Software Evolution and Reuse Consortium (SER), Solutions for Software
Evolution and Reuse, SER Deliverable SER-D2-A, (1995).
Sonnemann, R., Exploratory Study of Software Reuse Success Factors, Ph.D.
Dissertation, George Mason University, Fairfax, Virginia, Spring (1995).
Sommerville, I., Software Engineering, 5th Edition, Addison-Wesley, New York, (1996).
Software Productivity Consortium (SPC), Reuse Adoption Guidebook, SPC-92051CMC, Ver 02.00.05, Software Productivity Consortium, Herndon, Virginia, November
(1993).
Staringer, W., Constructing Applications from Reusable Components, Software, IEEE
Computer Society, September, 61-68 (1994).
STARS, Loral Federal Systems, Air Force/STARS demonstration project experience
report, ARPA Report, July (1994).
STARS, Unisys Corporation, Army STARS Demonstration Project Experience Report,
ARPA Report, 25 August 1994.
Tirso, J., and H. Gregorious, Management of Reuse at IBM', IBM Systems Journal,
32(4), 612-615 (1993).
Tracz, W., Software Reuse: Motivators and Inhibitors, Stanford University
paper
presented at the Workshop on Future Directions in Computer Architecture and Software,
5-8 May (1986).
Tracz, W., Where does Reuse Start?, transcript - keynote address for the Reuse in
Practice Workshop sponsored by IDA, SEI, and SIGAda at Software Engineering
Institute, Pittsburgh, Pennsylvania, 11-13 July (1989).
Tracz,W., Domain-specific Software Architecture Frequently Asked Questions, ACM
SIGSOFT Software Engineering Notes, 19(2), 52-56, April (1994).
Troy, R., Software Reuse: Making the Concept Work, Engineering Software, Special
Editorial Supplement, 16-20, 13 June (1994).
Wasmund, M., Implementing Critical Success Factors in Software Reuse, IBM Systems
Journal, 32(4), 595-611 (1993).
Withey, J., Implementing Model Based Software Engineering in Your Organization: an
Approach to Domain Engineering, technical report, CMU/SEI-93-TR, Software
Engineering Institute, Pittsburgh, Pennsylvania, November 1993.
Zelkowitz, M. and Wallace, D. Experimental Models for Validating Technology,
Computer, 31(5), 23-31, IEEE Computer Society (May 1998).
42