The goal-driven approach

 

Goal-driven requirements engineering takes the view that requirements should initially focus on the why and how questions rather than on the question of what needs to be implemented.

 

"Traditional" analysis and design methods focused on the functionality of the system to be built and its interactions with users. Instead of asking what the system needs to do, goal-driven methods ask why a certain functionality is needed and how it can be implemented. Thus goal-driven methods give a rationale for system functionality by answering why certain functionality is needed while also tracking different implementation alternatives and the criteria for the selection among these alternatives.

 

Goals are important in several respects. They lead to the incorporation of requirements which should support them. They justify and explain the presence of requirements which are not necessarily comprehensible to clients. They may be used to assign the respective responsibilities of agents in the system; more precisely, they may provide the basis for defining which agents should best perform which actions to fit prescribed constraints (according to their capabilities, reliability, cost, load, motivation, and so forth). Finally, they provide basic information for detecting and resolving conflicts that arise from multiple viewpoints among human agents.

 

Goals are targets for achievement which provide a framework for the desired system. Goals are high level objectives of the business, organization, or system. They express the rationale for proposed systems and guide decisions at various levels within the enterprise. "Maximize corporate profits" is an example of a high-level enterprise goal.

 

Goals can be broken down into sub-goals and allocated to individual parts of the business (such as processes).

 

An important aspect of a goal is to know whose goal it is: the owner of a goal. Goals can be assigned to individual agents (private or personal goals) or to the system as a whole (system or corporate goals).

 

The advantage of goal-driven methods over standard OOAD is in the explicit search for sub-goals, super-goals and alternative goals. A goal model is built hierarchically starting with the ultimate goal (usually) at the top of the diagram. For each goal the question “How do I achieve this goal” is asked. The answer is decomposed into sub-goals that must be achieved or events that must occur in order to achieve that goal. This decomposition is iterated until all goals can be satisfied or denied. Goal-driven methods will explicitly attempt to define:

·         sub-goals by asking how a goal can or should be implemented

·         super-goals by asking why a goal is necessary or needed

·         alternatives by asking what different ways of satisfying the super-goal exist

·         conflicting goals by asking what obstacles can be found for a goal and what goals may conflict with one another