Jump to content

Goal modeling

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Chiswick Chap (talk | contribs) at 16:18, 17 December 2011 (External links: KAOS tutorial). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A Goal Model is an element of Requirements Engineering that may also be used more widely in Business analysis. Related elements include Stakeholder analysis, Context analysis, and Scenarios,[1] among other business and technical areas.

Notations

There are several notations for goal models in software development, including:

Goal modeling in i*

The i* goal modeling notation provides two kinds of diagram:[5]

  • "Strategic Dependency" (SD), defining relationships between roles in terms of specific goals that one role depends on the other role to provide.
  • "Strategic Rationale" (SR), analyzing the goals identified on the SD model into subsidiary goals and tasks.

i* shows each role as a large circle containing the goals which that goal owns. Goals may be accompanied by "Obstacles" (negative goals) to be surmounted. Non-functional goals can be modeled as "soft goals" in i*: they are diagrammed as clouds or indented ovals.

Goal modeling in KAOS

The KAOS goal modeling notation provides a way of defining goals, underpinned by a formal (mathematical) method of analysis.[6]

Goal modeling in UML

UML's Use case diagram provides a simple goal modeling notation. The bubbles name functional goals,[7] so a Use case diagram forms a simple functions-only goal model: as Cockburn writes, use cases cover only the behavioral requirements.[8] Roles are shown as actors (stickmen on the diagram), linked to the use cases in which they take part. The use cases are drawn as elliptical bubbles, representing desired behavioral goals.[9]

With the addition of "Misuse cases", the notation can model both desired goals and active threats. The misuse case notation shows negative (possibly hostile) stakeholders as the primary actors for the misuse cases; these may be grouped on the right-hand side of the diagram. The notation may assist in discovering suitable mitigating or preventative goals, shown as subsidiary use cases. These often have the aim of improving security, safety, or reliability, which are non-functional goals. Non-functional requirements can to some extent be described in use case style using Misuse cases to define negative goals; but the (positive) goals thus discovered are often functional. For example, if theft is a threat to security, then fitting locks is a mitigation; but that a door can be locked is a functional requirement.[10]

Bibliography

  • Alexander, Ian and Beus-Dukic, Ljerka. Discovering Requirements: How to Specify Products and Services. Wiley, 2009.
  • Alexander, Ian F. and Maiden, Neil. Scenarios, Stories, Use Cases. Wiley, 2004.
  • Cockburn, Alistair. Writing Effective Use Cases. Addison-Wesley, 2001.
  • Fowler, Martin. UML Distilled. 3rd Edition. Addison-Wesley, 2004.
  • van Lamsweerde, Axel. Requirements Engineering: from system goals to UML models to software specifications. Wiley, 2009.
  • Yu, Eric, Paolo Giorgini, Neil Maiden and John Mylopoulos. (editors) Social Modeling for Requirements Engineering. MIT Press, 2011.

References

  1. ^ Alexander and Beus-Dukic, 2009. Pages 17-18
  2. ^ Yu et al, 2011.
  3. ^ van Lamsweerde, 2009.
  4. ^ Fowler, 2004. Pages 99-105
  5. ^ Yu, Eric (September 6, 2011). "i*". i*: an agent- and goal-oriented modelling framework. University of Toronto. Retrieved December 17, 2011.
  6. ^ van Lamsweerde, 2009.
  7. ^ Alexander and Beus-Dukic, 2009. Page 121
  8. ^ Cockburn, 2001. Page 62
  9. ^ Cockburn, 2001. Page 221
  10. ^ Alexander and Maiden, 2004. Chapter 7. Pages 119-139.