Goal modeling

Goal modeling is a technique used in software engineering, requirements engineering, and systems analysis to represent, analyze, and reason about the objectives and motivations of a system, its stakeholders, and the environment in which it operates. It focuses on why a system is needed and what it aims to achieve, rather than just how it will achieve it. By explicitly articulating goals, it helps to understand the strategic rationale behind a system's development and design.

Overview

Goal modeling aims to bridge the gap between high-level business objectives and concrete system requirements. It provides a structured way to:

  • Elicit and analyze requirements: By starting with high-level goals and systematically decomposing them into sub-goals and tasks.
  • Understand stakeholder intentions: Capturing the motivations and expectations of various actors involved with the system.
  • Identify conflicts and dependencies: Revealing areas where goals might clash or where the achievement of one goal depends on another.
  • Evaluate design alternatives: Assessing how different system designs contribute to achieving desired goals.
  • Ensure traceability: Linking system functionalities back to the original business objectives.

Key Concepts

Several core concepts are common across different goal modeling frameworks:

  • Goal: A high-level, desired state of affairs or objective that an agent wants to achieve. Goals can be functional (describing what the system should do) or non-functional (describing how well the system should do it, often called softgoals).
    • Hard Goal: A precise, verifiable objective (e.g., "The system shall process payments within 2 seconds").
    • Softgoal: A non-functional requirement or quality attribute that is often subjective and difficult to fully verify, typically pursued to a satisfactory extent (e.g., "The system should be user-friendly," "The system should be secure").
  • Agent: An active entity (human, organizational unit, or software component) responsible for achieving goals. Agents have capabilities and responsibilities.
  • Task/Plan: A specific course of action or sequence of steps that an agent can perform to achieve a goal. Tasks represent how goals are achieved.
  • Resource: An entity or item that is needed by an agent to perform a task or achieve a goal.
  • Dependency: A relationship between agents, indicating that one agent depends on another for the fulfillment of a goal, task, or resource. This is crucial for understanding collaboration and division of labor.
  • Means-Ends Analysis: A fundamental technique in goal modeling where a high-level goal is broken down into sub-goals or alternative tasks that contribute to its achievement. This can be iterative until executable tasks or verifiable requirements are identified.

Common Frameworks and Notations

Several prominent frameworks have been developed for goal modeling:

  • i (i-star) Framework:* One of the most widely used frameworks, comprising two main models:
    • Strategic Dependency (SD) Model: Focuses on the dependencies among actors (agents) within an organizational context, showing who depends on whom for goals, tasks, or resources.
    • Strategic Rationale (SR) Model: Delves into the internal motivations of individual actors, showing how their goals are decomposed into sub-goals and tasks, and how softgoals are handled.
  • KAOS (Knowledge Acquisition in automated Specification): A goal-oriented requirements engineering method that provides a formal language and methodology for identifying, elaborating, and analyzing goals, agents, objects, and operations. It supports formal verification of requirements.
  • NFR Framework (Non-functional Requirements Framework): Primarily designed for modeling and analyzing non-functional requirements (softgoals). It uses goal graphs to represent how softgoals are refined and operationalized, and how design choices contribute to or hinder their achievement.
  • Tropos: An agent-oriented software development methodology that integrates i* goal modeling into the entire software lifecycle, from early requirements to architectural design.
  • UML Use Case Diagrams: While not a dedicated goal modeling technique, use cases can be viewed as simplified goal models, representing system-level goals from the perspective of external actors.

Applications

Goal modeling finds applications in various domains:

  • Requirements Engineering: Eliciting, analyzing, specifying, and validating functional and non-functional requirements for software systems.
  • Business Process Modeling: Understanding the objectives behind business processes and identifying opportunities for improvement.
  • Service-Oriented Architecture (SOA) Design: Defining services based on business goals and their decomposition.
  • Enterprise Architecture: Aligning IT strategy with business strategy by mapping high-level organizational goals to IT capabilities.
  • Privacy by Design: Incorporating privacy and security goals into system design from the outset.
  • Risk Management: Identifying risks associated with goal achievement and developing mitigation strategies.

Benefits

  • Improved Requirements Quality: Leads to more complete, consistent, and understandable requirements by focusing on underlying motivations.
  • Better Stakeholder Communication: Provides a common language and visual representation for discussing system objectives among diverse stakeholders.
  • Enhanced Design Decisions: Helps evaluate design alternatives against explicit goals and softgoals.
  • Increased Traceability: Facilitates tracing requirements back to business objectives, ensuring alignment.
  • Early Conflict Detection: Identifies potential conflicts between goals or agents early in the development lifecycle.
  • Support for Change Management: Provides a framework to analyze the impact of changes on goals and requirements.

See Also

  • Requirements Engineering
  • Software Engineering
  • Agent-Oriented Software Engineering
  • UML (Unified Modeling Language)
  • Business Process Modeling Notation (BPMN)
Browse

More topics to explore