Advanced Methodology for Requirements Engineering Technique Solution (AMRETS) Daniel Siahaan, Firli Irhamni
Advanced Methodology for Requirements Engineering Technique Solution (AMRETS) *1
1
Daniel Siahaan, 2 Firli Irhamni Magister Manajemen Teknologi, Instiut Teknologi Sepuluh Nopember, Surabaya, Indoensia 2 Teknik Informatika, Universitas Trunojoyo, Bangkalan, Indoensia 1,2 Teknik Informatika, Institut Teknologi Sepuluh Nopember Gedung T.Informatika Kampus ITS Sukolilo, Surabaya 60111, Indonesia
[email protected]
Abstract One of the big issues of software development project is overspent and delays. Thus added to the equation is unsuficient quality of expected deliverables due to bad selection of requirements engineering techniques. There has been a method introduced for selecting requiremnets engineering techniques based on the given project attributes. But it produced a list of techniques, which left the engineers to figure out which set of techniques that should be selected to ensure that the proper deliverables can be produced. This paper proposed a solution of the existing method by adding deliverable parameter to the project attribute and implement single solution, that reduce the task of selecting the proper set of requirements engineering techniques. The new method, Advance MRETS (AMRETS) shows a promising results. It reduces the number of recommended techniques list from the previous method into a single alternative set of techniques. It ensures that the single alternative produces all required deliverables and minimizes the number of unnecessary deliverables. This method helps the project manager to do a better planning, especially for the requirements phase.
Keywords: Requirements Engineering, Mrets, Technique Selection, Single Solution. 1. Introduction It has been known that requirements identification plays a major role in the successful of a software development. In term of activity, Boehm [1] noted that within first 20% of the project time, 8% of total resources were consumed for requirements phase. Thus, Forsberg [2] shows that most success projects in use 7% to 15% of their total project resources for requirements phase. This means that requirements identification is a critical phase in software development process. According to the report from Standish Group [3], the use of appropriate practices of requirements engineering contributes 42% of the total success factors of a software development. Furthermore, 43% of root causes of project failure were initiated from the use of requirements engineering techniques and methods that are not suitable with the project characteristics. Furthermore, Standish Group in 2009 [4] shows that from 1994 until 2009, only less than 32% IT projects are considered successful in delivering the product as specified and planned. The study also reveals incomplete requirements and specifications as one of the primary reasons of their failure for delevering specified functionalities. As aforementioned, one of the main factors to a successful requirements specification is a high quality requirements specification proces, which is charged by methods and techniques which suit to a given project characteristics. Mashkoor and Jacquot [5] recomends utilizing of formal methods, especially Event-B, for specification process of critical system. Other research [6] claimed that use case patterns-driven approach for requirement engineering could save up to 30% of the total software development project time, yet maintain the quality of requirements models high. Asside from some concerns that are raised from users, this approach is considered suitable for agile software development processes. Furthermore, Maiden and Wever [7] suggest that ubiquitous computing, total connetivity, emergence of massive computing power, and widespread availability of complete and accurate user profiles with detail personal information will be the major factors that influence the course of future requirements processes changes. More advance techniques, which may be an advancement of existing techniques, are introduced to fit with specific attributes of project and application. For instance, Gacitua et al [8] proposed relevance-based abstraction identification (RAI) technique which is an
International Journal of Advancements in Computing Technology(IJACT) Volume4, Number5, March 2012 doi: 10.4156/ijact.vol4.issue5.9
75
Advanced Methodology for Requirements Engineering Technique Solution (AMRETS) Daniel Siahaan, Firli Irhamni
advancement of abstraction identification technique. This elicitation technique is considered outperformed existing techniques and best suited for unfamiliar domain of requirements document. The rich alternatives of methods and techniques may raise perplexity on developers to which method(s) or technique(s) should they employ in their requirements specification process, considering the scarce of resources. Jiang et al [9] has proposed a method to solve this problem. The method uses the requirements engineering processes developed by Kotonya and Sommerville [10], which comprises of four basic phases, i.e. requirements elicitation, requirements analysis and negotiation, requirements documentation, and requirements verification and validation. The method allows the combinatory selection of a set of requirements engineering techniques. The method was tested over software development cases in software engineering industries. This method is called Methodology for Requirements Engineering Techniques Selection (MRETS). The output of MRETS is a list of possible requirements engineering techniques that can be used further as a basis for selecting a set of preferred techniques, which is carried out by the requirements engineer. This leads to the possibility of overlap and redundancy activities and output and also unnecessary output due to the wrong selection by the requirements engineer. This paper proposes an enhancement of MRETS by implementing single solution as the output of MRETS and adding a new MRETS’s input attribute, i.e. deliverables. The new method is called Advance MRETS (AMRETS).
2. Selecting Combination of requirements engineering techniques The last few years there have been many techniques in requirements engineering developed to improve the process of requirements engineering. Those techniques were developed for various purposes, domain problems, and software development approaches. Therefore, there is a need to find a good combination of techniques that can ensure that the product of requirements engineering is indeed aligned with the user’s needs and stakeholder’s requirements. Thus, due to the lack of resources, the selection of the combination also has to ensure that the requirements engineering process can be carried out in an efficient and effective manner. There are a number of reasons for the requirements engineering technique combination selection is necessary. First, different domain problems need different techniques. For example, a real-time system requires accurate analytical and verification techniques, where formal and state-handling techniques are required. Second, different software development project requires different techniques. Some project is required to produce an in-time running system to get quick feedback from users, while other projects require a high-level complexity and have a very broad risk and impact. The first and the second types of project suit with prototyping technique and ethnography technique, respectively. Third, different stakeholder means different preferences on the techniques being used. The stakeholders have different background, both work and education. Each stakeholder is familiar with certain techniques. Therefore, a stakeholder may prefer a certain technique rather than the others. This also impacts the required deliverables, which also may vary among the stakeholders. Finally, there are no single techniques that suit to all problems in requirements engineering. Therefore, there is always a need to combine several techniques to ensure that all aspect of the system have been covered and all requirements from all stakeholders have been identified and stated in a clear, specific, unambiguous, measurable, realizable, and traceable manner. In the next section, this paper presents the necessary information required from a software project in order to do the techniques selection. After that, this paper explains about the list of techniques in requirements engineering that has been introduce widely.
2.1 Requirements engineering techniques and processes There are around 46 techniques have been developed and introduced for requirements engineering. These techniques cover one or more phases of requirements engineering that has been introduced by Kotonya and Sommerville [10], i.e. requirements elicitation, requirements analysis and negotiation, requirements documentation, and requirements verification and validation. Table 1 shows the mapping between the techniques and processes of requirements engineering.
76
Advanced Methodology for Requirements Engineering Technique Solution (AMRETS) Daniel Siahaan, Firli Irhamni
2.2 Project attributes Project attribute is a description of characteristic that relevant to software engineering project. There are 7 attributes from the previous method, i.e. project size, project complexity, volatility requirement, project category, degree of safety critically, time constraint, and cost constraint. Each attribute has a number of predefined inputs. For example, project size attribute has a range of value very big (>4000 requirements), big (between 1000 and 4000 requirements), medium (between 500 and 1000 requirements), small (between 100 and 500 requirements), dan very small (