A Reference Model for Software Reuse Adoption in Companies Vinicius Cardoso Garcia1,2 , Eduardo Santana de Almeida3 , and Silvio Romero de Lemos Meira1 1
Informatics Center Federal University of Pernambuco RiSE Reuse in Software Engineering {vcg,srlm}@cin.ufpe.br 2 FACITEC University of Pernambuco & 3 Federal University of Bahia
[email protected]
The growing interest for software reuse by organizations makes adoption and evaluation of reuse an essential activity. Many organizations struggle in their attempt to select appropriate reuse practices (methods, techniques and tools support) in their processes. In this way, this thesis proposes a reuse reference model to aid the introduction of software reuse practices based on the organization software reuse capability. The reference model is composed of a maturity levels, its process areas, goals, key practices and work products. Abstract.
1
Introduction
For many organizations, systematic, large-scale reuse of software artifacts seems to be an intuitively promising concept for meeting some critical needs such as, to reduce cost, eort and time-to-market of software products. The development eort is reduced by building new application on the basis of pre-existing elements instead of developing everything from scratch [1]. Nevertheless, implementing systematic reuse4 involves risk and not doing it is also risky. Trying systematic reuse unsuccessfully can cost an organization precious time, resources, and may make management skeptical of trying it again. On the other hand, if the competitors do it successfully someones do not, it may mean the loss of market share and possibly the loss of an entire market [2]. The ability to successfully implement a reuse program, which implies a careful, strategic balancing of reuse risks and costs, can result in eective qualitative benets [24], such as: reduce process and product risks, accelerate development, increase the products quality among others. Existing reuse adoption processes [4] present crucial problems such as, strong dependence of such tecnologies and start with a high investment; besides, they 4
Systematic software reuse is a paradigm shift in software engineering from building single systems to building families of related systems [2].
do not clearly dene activities, tasks, assessment rules, constraints, roles, inputs, outputs of each step incrementally towards a systematic reuse performance. Although software reuse community does not present a well-dened, standardized and well-known set of software reuse practices to guide organizations to achieve such systematic reuse level. Thus, the goal of the work described in this thesis can be stated as:
This work denes a staged reuse reference model, called RiSE-RM, to perform software reuse adoption, which includes a set of capability levels with respectives process areas, its goals, key practices and work products. The RiSE-RM is in accordance with the requirements of the reference process models of International Standard ISO/IEC 15504-2 [5]. Moreover, the refrence model is based on the state-of-the-art in the area and its foundations and elements are discussed in details. 2
The RiSE Reference Model (RiSE-RM)
RiSE5 project aims at the industrialization of software reuse by providing the necessary instruments to ensure its successful adoption. Among these instruments, there is a structured set of reuse practices, which organizations may integrate with their development processes. The RiSE-RM practices, proposed in this work, are one of the cornerstones of RiSE project. The purpose of the RiSE-RM is determining which process areas, goals and key practices should be considered, intended to advise organizations on how to carry out the technology change management when adopting the reuse approach, including a group of techniques, guidelines and tools. The goals for the RiSE-RM are: (i) assess the current organization situation (maturity level) in software reuse practices; and, (ii) aid the organization in the improvement of their productivity, quality and competitiveness through the adoption of software reuse practices. The model was dened in accordance with International Standard ISO/IEC 12207:2008 [6], adapting it to the needs of the community of interest. The RiSERM was also dened in accordance with CMMI-DEV [7] and MPS.BR6 [8]. It contains the denitions of maturity levels, processes areas, key pratices and work products. The RiSE-RM is in accordance with the requirements of the reference process models of the International Standard ISO/IEC 15504-2 [5]. RiSE-RM consists of the following structural elements: maturity levels, process areas, goals, key practices and work products. Seven maturity levels reect a degree of the reuse process maturity in RiSE-RM. As can be stated (mainly be the integration with the Brazillian software process model, MPS.BR), the main focus of this work is the Brazilian software sector. In order to give to Brazil a competitive software industry, nationally and internationally, it is essential that organizations of the sector raise eciency and eectiveness of its processes in focus. 5 http://labs.rise.com.br 6
A Brazillian initiative in order to increase their software development capabilities
3
Concluding remarks
The RiSE-RM proposed in this thesis was developed to complement existing process reference models by putting the focus on how to execute software engineering activities (such as planning, requirements elicitation, architecture design, implementation, tests and maintenance) applying the reuse practices. The RiSE-RM process areas was specied according to the International Standards ISO/IEC 12207:2008 [6] and ISO/IEC 15504-2 [5] to allow its integration with other reference models (e.g. CMMI-DEV [7] and MPS.BR [8]) The main objective of the RiSE-RM is to support organizations in dening and improving their system development processes aligned with the reuse practices. It has been initially validated in some pilot projects at C.E.S.A.R and their partners. The long term plan is, clearly, to achieve a degree of maturity that could be used as a reuse capability assessment standard for Software Factories, making it possible to create, soon, a Reuse Capability Assessment Center.
4
Acknowledgments
This work was partially supported by the National Institute of Science and Technology for Software Engineering (INES7 ), funded by CNPq and FACEPE, grants 573964/2008-4 and APQ-1037-1.03/08 and Brazilian Agency (CNPq process number 475743/2007-5).
References 1. Muthig, D.: A Light-weight Approach Facilitating an Evolutionary Transition Towards Software product Lines. Ph.d. thesis, Universität Kaiserslautern and Fraumhofer-Institut für Experimentelles Software Engineering (2002) 2. Frakes, W.B., Isoda, S.: Success factors of systematic software reuse. IEEE Software 11(01) (1994) 1419 3. Krueger, C.: Software reuse. ACM Computing Surveys 24(02) (1992) 131183 4. Lim, W.C.: Managing software reuse: a comprehensive guide to strategically reengineering the organization for reusable components. Prentice-Hall, Inc., Upper Saddle River, NJ, USA (1998) 5. ISO/IEC: ISO/IEC 15504-2: Information Technology - Process Assessment - Part 2 - Performing an Assessment. International Standard 15504-2, ISO/IEC (2003) 6. ISO/IEC: ISO/IEC 12207 Systems and Software Engineering - Software Life Cycle Processes. International Standard 12207, ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) (2008) 7. SEI/CMU: CMMI for Development (CMMI-DEV), Version 1.2. Technical Report CMU/SEI-2006-TR-008, Software Engineering Institute and Carnegie Mellon University (2006) 8. SOFTEX: MPS.BR Ocial web site (hosted by Association for Promoting the Brazilian Software Excellence - SOFTEX) (2009) 7
INES - http://www.ines.org.br