rect rect rect rect rect rect rect
You are viewing an archived version of CBSE 1998. This page has been archived via the Internet Archive Wayback Machine for the ICSA conference series history. Some links on this page might not work.
← return to the ICSA homepage.
General Navigation ../buttons - Home | Search | Contact Us | Site Map | Whats New
engineering graphic
engineering
COTS-Based Systems
Overview
Activity Areas
Products and Services
References
Briefings, Courses, and Workshops
CURE (COTS Usage Risk Evaluation)
EPIC
Publications
COTS_Spot Column
Integration of Software-Intensive Systems
Performance Critical Systems
About SEI|Mgt|Eng|Acq|Collaboration|Prod.& Services|Pubs
Rollover Popup Hints for Topic Navigation ../buttons above
A Validated Software Reuse Reference Model Supporting Component-Based Management


Nader Nada, PhD
Department of Computer Science
School of Information Technology and Engineering
George Mason University
MS 4A5
Fairfax, Virginia, USA 22030-4444
nnada@osf1.gmu.edu

David C. Rine, Professor
Department of Computer Science
School of Information Technology and Engineering
George Mason University
MS 4A5
Fairfax, Virginia, USA 22030-4444
drine@cs.gmu.edu

A position paper presented at the 1998 International Workshop on Component-Based Software Engineering


This paper reports on a successful Components-Based Development (CBD) approach that uses a well-defined, empirically validated software Reuse Reference Model (RRM). None of the currently existing models have considered a comprehensive software business perspective (non-technical activities) based upon reuse as an approach to design their effort and estimation models. If this developmental problem can be solved, progress will be made towards a systematic approach to software reuse. Our thesis is that CBD based upon a validated software reuse reference model proves to be a practical solution to decreased software development effort, increased software product quality, and decreased time-to-market, especially if it is applied in a systematic way across the software development life cycle, including reuse of requirements, specifications, designs, documents, codes and verification/validation plans.

The critical problem in today�s practice of software reuse is a failure to conceptualize, define and develop necessary details to support a valid software reuse process reference model. The software development industry will not be successful in utilizing and managing CBD paradigms until there is a conceptualized, well-defined and "validated empirical reference model" for software manufacturing that incorporates best software reuse practice and that can be customized for different kinds of software development enterprises. In the research reported in this paper a theoretical model of the software reuse reference model is presented, based upon prior knowledge and expertise about software reuse. Then, this model is empirically validated using three different empirical studies. The definition and validation of this model has been carried out using four steps. First, the reference model is developed based on prior work. Second, this theoretical reference model is empirically validated using both case studies and surveys. Third, the impact of the reference model on software development effort, quality, and time-to-market is empirically derived. Fourth, an initial set of successful cases based upon the software reuse reference model utilization are identified. The main contribution of this paper is a well-defined and validated reference model for the practice of software reuse for CBD. A secondary contribution is an initial set of case studies from software development enterprises having both a high success from the practice of reuse in terms of decreased effort and increased quality and a high correlation in their application of our software reuse reference model features.

One of the keys to CBDs success is a standard infrastructure for components. Infrastructures need three main elements [Kiely 98]. First, a uniform design notation is needed that provides a standard way of describing components functions and properties, which would be critical to designing collaboration between components. The industry is rapidly adopting the Uniform Modeling Language (UML), which combines several design notation, as default standard. Second, repositories are needed as a means of cataloging available components with a description of their features would let developer find the components appropriate for an application. The Object Management Group (OMG) is developing a repository specification, whose core will be the Microsoft Repository, currently the dominant specification. Third, a standardized CBD interface is needed that lets any application in any language access components features by, for example, binding to the component model or interface definition language. The OMG is trying to make both Microsoft�s Distributed Component Object Model (DCOM) and Sun Microsystem�s JavaBeans specifications interoperable with its final Common Object Request Broker Architecture (CORBA) specification.

Our study investigates the success of our software Reuse Reference Model (RRM) in predicting effort, quality, and time-to-market as well as explores additional facets of cost behavior. Process measures are defined and collected, and the use of our model as an assessment tool throughout development is tested.

We expanded Rine�s model [Rine-Sonneman 97] and have incorporated additional important technical and non-technical activities such as: Reuse Quality Characteristics, Quality Control, Best Development Practices Experience , Software Standards (CORBA, DCOM, etc.), Trends of COTS, Case-Tools, Training, Market Place, Financing Marketing Forecast, and Reuse Metrics and Effort Estimation Models.

From the case studies, survey, and QSM study results Nada [Nada 97] concluded that the software reuse reference model implementation level (RRML) is a predictor of decreased software development effort and decreased time-to-market.



A. The Survey

1. Problem Statement

"There does not exist an effective and validated CBD RRM which incorporate both the technical and non-technical facets of software reuse and showing its impact on software development effort, quality, and time to market.


2. Empirical Research Validates the Model (Survey Results)

The survey examined 34 questions about the software manufacturing RRM that incorporates both the technical and non-technical activities that might be needed to establish a successful software reuse program in the organization. The survey data analysis answered the following questions (Q1-Q5):


Q1. Is the software RRM implementation Level (RRML) a predictor of:

    a. products development effort

    b. time-to-market

    c. product quality?

A1. Yes, there is a correlation between the RRML and the organization improvement level of their software development effort, time-to-market, and quality. (SQ23-SQ26 )


Q2. Is the reuse percentage a predictor of the RRML?

A2. No, there is no correlation between the reuse percentage and the RRML?


Q3: At which phase of the software life cycle do organizations get the greatest benefits from software reuse?

A3: By considering the reuse approach during the early phases of the software development life cycle. (SQ27-SQ29)

  • 57% of the projects realized high commonality with the requirements of previous project(s) at requirements phase.
  • 43% of the projects realized high commonality with the design of previous project(s) at design phase.
  • 38% of the projects realized high commonality with the code (documentation) of previous project(s).

Q4. How much do projects collect and utilize reuse metrics and use effort estimation models with reuse as part of their software development life cycle?

A4. There is a lack of collecting reuse metrics and using effort estimation models with reuse.

  • 24% of the projects measure and analyze the software reuse process carefully to identify weaknesses, and have plans established to address these weaknesses.

Q5: Is the reuse process common practice and an integrated part of the organizations software development process?

A5. No, 33% of the projects developers and maintainers precisely follow a software reuse process which is defined and integrated with the organization's software development process.



B. The Case Studies

1. Introduction

Software reuse is incorporated by establishing a RRM. The RRM would contain those activities that are common to software development organizations whose software reuse success is high. Incorporation of such a software RRM would promise four things:

  1. Decreased products development effort;
  2. Increased product quality;
  3. Potential decreased in time of product to market;
  4. Overhead in establishing and maintaining the RRM that would eventually be offset by 1. through 3. above.

Companies today are faced with new and more challenging market pressures. In response, they have to reduce the time-to-market with new or enhanced products, increase the diversity of products available to the customers, and enhance the standardization and interoperability of the products. Reuse is a means to achieve such objectives.

Drawing from the results of these applications as well as analyzing the reports of experiences in the same field available in the literature, this research addresses the challenge of providing managers with qualitative and quantitative indications about the potential benefits of software development with reuse.

That means we looked closer at reuse programs in several organizations and analyzed the dimensions of software reuse in them . We tried to identify the following:

  • The reuse level (%)
  • The decreased level of development effort (or increased productivity)
  • The increased level of product quality
  • The decreased level of development time
  • The decreased level of time-to-market

Finally, the Software Reuse experiences concerning 27 different organizations is reported in the form of case studies to let the reader into the detailed description of their background, application contexts, organization software reuse peculiarities, technologies, metrics, achievements as well as some specific problems and adopted technical solutions.



2. Software Reuse Case Studies Strategy

Many software development organizations believe that investing in software reuse will improve their product and process productivity and quality, and are in the process of planning for or developing a software reuse capability. Unfortunately, there is still little data available on the state-of-the-art-practice of investing in software reuse. A 1991 study of Japanese Software Factories stated that in 1991 the Japanese software factories were the only organizations successfully applying software reuse [McCain 91]. This 1991 study and a second 1992 study of U.S. software developers covering 29 organizations [Frakes-Fox 95], are, until now, the only few major studies involving a large number of organizations. The majority of current information available on software reuse investment comes from the literature, which contains unproved theories or theory applied in a limited way to a few pilot projects or case studies. [Rine-Sonneman 97]

There are also some independent research studies such as:

  • Software Reuse Using Frame Technology, by QSM Associates, Inc. 1994
  • Software Evolution & Reuse (SER), The SER Experience Book, 1996


3. Case Studies Research Method

Only a thorough analysis of the specific organizational, managerial and technological context pertaining to the company can lead to the appropriate definition of a competitive company strategy and to the choice of the best suited approach. Nevertheless, the experience collected in the case studies offers useful hints as to which different conditions lead to the selection of different strategies, which are the most common problems encountered and which are the subsequent corrective actions to be taken.

It is our believe, though, that there exists general software RRM which establishes software reuse guidelines that were effective in our experience through these case studies and that could trigger and help new experiments.



C. Summary

The objectives of this research are: 1. the developing of a theoretical model of software RRM; 2. empirically validating the model; 3. providing the empirical impact of the software RRM implementation level on the software effort, quality, and time-to-market.

For validating the theoretical model we used three different research approaches:

  1. Carrying out 27 case studies of industry and government software developers;
  2. Surveying the industry and government software developers (93 projects);
  3. Carrying out Quality Software Management (QSM) study of 19 selected projects.

The organizations used in the empirical validation of the RRM with the highest software reuse capability measures use the following components: product-lines, architectures which standardize product interfaces and data formats, common software architecture across the product-line, design for manufacturing, domain engineering, reuse process, management which understands reuse issues, software reuse advocate(s) in senior management, state-of-the-art reuse tools and methods, precedence of reusing high level software artifacts such as requirements and design versus just code reuse, and trace end-user requirements to the components (systems, subsystems, data sets, algorithms and/or software modules) which support them.

Therefore, software reuse solutions take two major steps. First, the RRM is integrated into the engineering and business functions of CBD. Second, software domains and product-lines are instantiated to the RRM. Another result is a RRM incorporating the extended international Object Management Group (OMG) UML/CORBA/DCOM. This specific development RRM, will itself be a reusable RRM from which one starts when developing what has previously been coined 'generic software tool kits' of various kinds, useful software industry.

From the case studies, survey, and QSM study results Nada [Nada 97] concluded that the software reuse reference model implementation level (RRML) is a predictor of decreased software development effort and decreased time-to-market.



References

[Frakes-Fox 96] Frakes, W., and Fox, C. (1996). Reuse failure modes. IEEE Transactions on Software Engineering , 22(4) April.
[Frakes-Fox 95] Frakes, W., and Fox, C. (1995). Sixteen questions about software reuse. Communications of the ACM, 38(6), 75-87 and 112, June.
[Kiely 98] Are Components the Future of Software?, IEEE Computer, February, 10-11 (1998).
[Lim 94] Lim, W. (1994). Effects of reuse on quality, productivity, and economics. IEEE Software September, 11(5), 23-30.
[McCain 91] Introduction to Reuse Technology and Application, slides - Defense Systems Management College, September (1991).
[Nada 96] Nada, N. (1996). Progress Report for the Earth Science System Fellowship Program.
[Nada 97] Nada, N. (1997). Software Reuse-Oriented Functional Framework, Ph.D. Dissertation, George Mason University.
[Patterson 96] Patterson, F. (Editor 1996). A NASA Approach to Reuse. Proceedings of the NASA International Workshop on Software Reuse, George Mason University, Fairfax, Virginia, USA, September.
[Rine-Sonneman 97] Rine, D., and Sonneman, R. (1997). Investments in reusable software: a study of software reuse investment success factors. The Journal of Systems and Software. 1-18, Spring.
[SPC 93] Software Productivity Consortium (SPC). (1993). Reuse Adoption Guidebook, SPC-92051-CMC, Ver 02.00.05, Software Productivity Consortium, Herndon, Virginia, November.
[Sonneman 95] Sonneman, R. (1995) "Exploratory Study of Software Reuse Success Factors", Ph.D. Dissertation, George Mason University.





[papers] [presentations] [program] [next] [prev]
[contact the author] contact the organizers [report errors]
[report in pdf format]


The Software Engineering Institute (SEI) is a federally funded research and development center sponsored by the U.S. Department of Defense and operated by Carnegie Mellon University.

Copyright 2004 by Carnegie Mellon University
Terms of Use
URL: http://www.sei.cmu.edu/papers/p13.html
Last Modified: 11 August 2004