Requirements Engineering Concepts | Komputasi | Suatu Permulaan

J.E.D.I 3 Requirements Engineering Designing and building a computer system is challenging, creative and just plain fun. However, developing a good software that solves the wrong problem serves no one. It is important to understand users needs and requirements so that we solve the right problem and build the right system. In this chapter, we will be discussing the concepts and dynamics of requirements engineering. It is a software development phase that consists of seven distinct tasks or activities which has a goal of understanding and documenting stakeholders requirements. Two important models will be built, namely, requirements model which is the system or problem domain model, and the analysis model which serves as the base model of the software solution model. The Requirements Traceability Matrix RTM will be introduced to help software engineers manage requirements, and the requirements metrics and its significance will also be discussed.

3.1 Requirements Engineering Concepts

Requirements Engineering allows software developers to understand the problem they are solving. It encompasses a set of tasks that lead to an understanding of what the business impact of the software will be, what the customer wants, and how end-user will interact with the software. It provides an appropriate mechanism for understanding stakeholders needs, analyzing requirements, determining feasibility, negotiating a reasonable solution, specifying the solutions clearly, validating specification and managing requirements as they are transformed into a software system. Significance to the Customer, End-users, Software Development Team and Other Stakeholders Requirements Engineering provides the basic agreement between end-users and developers on what the software should do. It is a clear statement on the scope and boundaries of the system to be analyzed and studied. It gives stakeholders an opportunity to define their requirements understandable to the development team. This can be achieved through different documents, artifacts or work products such as use case models, analysis models, features and functions list, user scenarios etc. Designing and building an elegant computer program that solves the wrong problem is a waste. This is the reason why it is important to understand what customer wants before one begins to design and build a computer-based system. Requirements Engineering builds a bridge to design and construction. It allows the software development team to examine: • the context of the software work to be performed • the specific needs that design and construction must address • the priorities that guide the order in which work is to be completed • the data, functions and behaviors that will have a profound impact on the resultant design Requirements Engineering, like all other software engineering activities, must be adapted Software Engineering 61 J.E.D.I to the needs of the process, projects, products and the people doing the work. It is an activity that starts at inception until a base model of the software can be used at the design and construction phase.

3.2 Requirements Engineering Tasks