Reusing Requirements in Global Software Engineering [chapter]

Juan Manuel Carrillo de Gea, Joaquín Nicolás, José Luis Fernández Alemán, Ambrosio Toval, A. Vizcaíno, Christof Ebert
2013 Managing Requirements Knowledge  
Knowledge sharing and reuse in global software engineering (GSE) are challenging issues. Knowledge management (KM) is specifically impacted because on top of distance, culture and language mismatches, there is also the perceived risk of sharing something which could mean that others could take over some work. Mistrust and protectionism are often the consequence, leading to insufficient reuse. This is visible specifically in requirements engineering (RE), where all reuse should start. In this
more » ... icle we will look to reuse in RE with a detailed look on how to improve knowledge sharing and collaboration in distributed environments. We first look into the state of the practice. Then we present a lightweight, reuse-based, global RE method called PANGEA (Process for global re-quiremeNts enGinEering and quAlity), based on natural language requirements and software engineering standards. Based on this method we also build a prototypical tool, called PANTALASA (PANgea Tool And Lightweight Automated Support Architecture) which provides automated support for PANGEA. Its features are drawn from PANGEA and the state of the practice commercially available RE tools. A prototype of PANTALASA was developed by using Semantic MediaWiki and Facebook, and applied to a case study in the domain of hotel management. We could show with this method and prototype that collaboration and thus KM and reuse in RE is improved. Introduction Brooks stated more than twenty years ago [11] that there are approaches in software engineering (SE) that target the accidental complexity of software, while others are targeted at its essential complexity. As regards this difficulty, and discussing the role of requirements engineering (RE) in software development, Brooks considered the refinement of requirements and rapid prototyping. Among the SE strategies which attack the conceptual essence of the problem, he also mentions the idea of buy versus build: in other words, he stated the need for software reuse. Software reuse is for Meyer [53] "the ability of software elements to serve for the construction of many different applications". Meyer summarises the bene-fits of reusability: (1) improved timeliness, in the sense of decreased time to market, (2) reduced software maintenance efforts, (3) improved reliability, efficiency and consistency of the developed software, and (4) enhanced investment, through the preservation of the know-how. Mili et al. [55] affirm that software reuse is "the (only) realistic approach to bring about the gains of productivity and quality that the software industry needs". There is a line of thinking within software reuse that considers as reusable every software artefact (asset) produced during the development process, including system or product specifications, design, source code, test cases, project plans, quality plans, etc. Since the mid-90s, specifications and requirements reuse are postulated by a number of authors as a promising path towards quality and productivity in software development, a way that has been less-explored than reuse of source code or designs. There is some consensus, in that the higher the abstraction level, and the more not only source code but also design and specifications are reused, the greater the reusability benefits are [20, 69] . In this respect, Favaro [30] affirms that "a well-formulated, measurable, reusable requirement [...] is every bit as valuable as a reusable software module". In addition, Robertson and Robertson [64] claim that if the development starts with a set of requirements that were specified for other projects or domains, the accuracy of the requirements specification is improved and the time to develop this specification is reduced. Cheng and Atlee [16] also consider the identification of sets of reusable requirements for particular domains or types of applications to be of interest. To the best of our knowledge, Rine and Nada [63] are the first authors who demonstrated empirically that the reusability level determines the effectiveness of improvements in productivity, quality and development time, concluding that greater benefits are obtained when reusability is applied during the initial processes of the software development life cycle. Cheng and Atlee [16] highlighted globalisation and requirements reuse as two of the more urgent needs and grand challenges in RE research, and expected the solutions to these issues to produce a great impact on both research and practice in SE. Globalisation arises from growing and relatively new software needs, while requirements reuse focuses on extending and maturing existing technologies. Global software engineering (GSE) implies a paradigm shift towards globallydistributed development teams [34] and it has become a business need for various reasons: to decrease costs, capitalise on global resource pools owing to the scarcity of resources, locate development closer to the customers, exploit around-theclock development to achieve cycle-time acceleration, and cater to local markets [22] . In contrast, GSE leads to an increased risk of communication gaps, given the temporal, geographic, cultural and linguistic nature of the distance imposed by GSE [59], which might hinder collaborative activities that require stakeholders to share a mental model of the problem and requirements [16] . Indeed, due to its collaboration-intensive nature, RE presents several specific challenges and difficulties when the stakeholders are distributed [21, 68] . are convinced that the success of a software product depends on the proper understanding of requirements among stakeholders. Herbsleb [34] , for his part, emphasised that "getting the requirements right, and dealing with unstable requirements" are notoriously difficult problems to address, even in a traditional, collocated environment. A shared understanding of the requirements is even more difficult to achieve in a GSE context, "both because of loss of context and loss of communication". As well as this, Herbsleb pointed out that research on eliciting and communicating requirements has made substantial progress in addressing the issues posed by globalisation, although impediments still exist. Knowledge is considered to be one of the major resources of an organisation, and this is further emphasised in organisations dedicated to software development. SE and RE are knowledge-intensive activities [31, 51] . Hence, the growing interest of software development organisations in providing methods to help with its appropriate management [5] . By means of knowledge management (KM), software development organisations might obtain certain potential benefits: decrease the development time and cost of software projects, avoid mistakes and reduce rework, increase productivity through repetition of successful processes, increase quality, and make better decisions [65] . Thus, achieving good KM is very important if competitive levels are to be maintained in an increasingly globalised and demanding world. Nevertheless, challenges to KM increase when the development activities are geographically distributed [51] . According to Ebling et al. [28], proposals related to KM challenges in the field of RE in distributed software development are needed; they encourage further research on these issues. Both GSE and requirements reuse are therefore relevant approaches for the software industry. As far as we know, however, there are no proposals which tackle both GSE and requirements reuse together. Since one of the current problems in GSE is the existence of knowledge which is not properly shared and reused, KM and awareness in distributed settings is a challenging task [8] which might be addressed by reusing, sharing and collaboration mechanisms in GSE. The proposal which is presented here treats knowledge in the form of natural language requirements and aims at laying out the basis for a reuse-based RE method for GSE environments, named PANGEA (Process for globAl requiremeNts enGinEering and quAlity). It also includes PANTALASA (PANgea Tool And Lightweight Automated Support Architecture), the automated support for the PANGEA method. The rest of the chapter is organised as follows: Section 8.2 provides an overview of the field. Current and relevant challenges for both RE and KM in GSE are studied in Section 8.3. Section 8.4 includes our proposal for a method to address these issues. Section 8.5 focuses on the tool architecture supporting this method. Section 8.6 reports on a preliminary evaluation of both method and tool. Finally, our conclusions and future work are presented in Section 8.7. Foundations At this point, and in the context of this chapter, a brief description of KM, architectural knowledge management (AKM) and KM as the basis for RE is provided.
doi:10.1007/978-3-642-34419-0_8 fatcat:vxrd2eykvbbqblk6kibvbh4taa