Article Preview
TopIntroduction
Requirement engineering (RE) according to (Harmsen & Brinkkemper, 1994) is “…a sub discipline of systems engineering and software engineering that is concerned with determining the goals, functions, and constraints of hardware and software systems.” Studies have shown that RE does not receive more than 2-4%of the total effort applied in the entire project (Firesmith, 2004), thus making it a time-bound phase. Weak requirement analysis may lead to software failure (Hofmann & Lehner, 2001), which in turn results in customer dissatisfaction and risk of inflation in cost of the project. Therefore, developers must ensure that all business requirements are captured correctly (with clear vision and scope) and the solution is designed to meet its requirements by focusing on delivering value to the customer. To achieve this, it becomes essential to increase customer involvement in requirement gathering process to understand the interest of all project stakeholders. Various parameters have been considered such as importance, business value, stakeholder preference, cost of development, requirement quality, development risk and requirement dependencies into consideration as stakeholder involvement. The stakeholder might present a vague, incomplete or ambiguous requirement but only (s)he will be able to help in clearly defining the business objective, as (s)he represents that face of organization. Thus, stakeholder involvement in turn, will help the development team to stay focused on delivering value to the business.
Hence, there is a need to adopt efficient and cost-effective ways of requirement gathering which will help in a) minimizing disagreements between stakeholders and developers b) increasing stakeholder and developer collaboration c) understanding stakeholders and developers responsibilities in the requirements engineering process d) providing a platform for developers to learn how to effectively collaborate with stakeholders to certify whether the requirements are thorough, clear, feasible and testable e) minimizing the overall risk associated with development f) connecting project objectives to business requirement g) acting as a platform to negotiate all disagreements to a position of agreement h) decreasing the amount of changing requirement requests i) reduction in time and cost of delivery j) increase in stakeholder satisfaction.
In this paper, we present an interactive and collaborative approach among stakeholders and developers for requirement reusability using the concept of method engineering (ME). Method engineering is the engineering discipline to design, construct and adapt methods, techniques and tools for the development of information systems (Kumar & Welke, 1992), (Heym & Österle, 1993), (Slooten & Brinkkemper, 1993). Methods are generic in nature and are never followed literally. Rather they are tuned to specific situation, as one development process strategy cannot be effectively applied to all project contexts and situations. Determining the correct selection of methods from the method repository requires experience and knowledge of the project team. This led to the development of method engineering domain and more particularly of situational method engineering (Harmsen & Brinkkemper, 1994) which assumes existence of a method repository from where method (s) of interest are retrieved, modified or assembled into a new method that is subsequently stored in repository. Brinkkemper defines the SME as “…the discipline to build project-specific methods, called situational methods, from parts of the existing methods, called methods fragments…” (Brinkkemper, 1996). Hence, the objective of the SME is to provide rapid method engineering techniques based on the reuse of the existing method parts in the construction of new methods, more flexible and better adaptable to the situation.