Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned...

18
Goal-Oriented Requirements Engineering (GORE) Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring, specifying, analyzing, negotiating, documenting, and modifying requirements.” (van Lamsweerde 2001) Goals can be viewed as the earliest/highest-level requirements artefacts Can form the organizing locus for all subsequent RE activities

Transcript of Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned...

Page 1: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

Goal-Oriented Requirements Engineering

(GORE)“Goal-oriented requirements engineering is

concerned with the use of goals for eliciting, elaborating, structuring, specifying, analyzing, negotiating, documenting, and modifying requirements.” (van Lamsweerde 2001)

• Goals can be viewed as the earliest/highest-level requirements artefacts

• Can form the organizing locus for all subsequent RE activities

Page 2: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

GORE: Key issues

• Goal modeling• Obtaining downstream artefacts from goal models

• Maintaining consistency of goal models

• Incorporating NFRs into goal models

• Using goals as requirements rationale

Page 3: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

A goal graph

Page 4: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

KAOS: Outline

• KAOS: Knowledge Acquisition in autOmated Specification

• A comprehensive GORE framework• Four models:

– Goal model– Object model– Agent model– Operation model

• Constructs:– Graphical and a textual syntax– Defined using the real-time temporal logic

Page 5: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

KAOS Ontology (1/3)• Objects: Can be: entity (autonomous object), relationship (subordinate object), event (instantaneous object)

• Actions/Operations: – Input/output relations over objects– Operation application defines a state transition– Have pre-conditions, post-conditions and trigger conditions

– Distinguish between:• Domain pre-, post-conditions (domain specific, defined by the domain)

• Required pre-, post-condition (application-specific, required to achieve goals)

Page 6: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

KAOS Ontology (2/3)

• Agents: Processors of operations – An agent performs an operation allocated to it

– Monitors an object whose states can be observed by it

– Controls an object whose states can be controlled by it

• Goals: Related to other goals via AND-refinement or OR-refinement links

Page 7: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

KAOS Ontology (3/3)• Requisite: A goal that can be formulated in terms of states controllable by an agent– Goals end up via a sequence of AND/OR refinements as requisites assigned to agents

– Requisites are AND/OR operationalized by operations and objects (may require strengthening of pre-, post- and trigger conditions)

– Alternative means of assignment of requisites to agents captured by responsibility links

– Actual assignment of a requisite to an agent captured by performance link

• Requirement: Requisite assigned to a software agent• Assumption: Requisite assigned to an environment agent

• Scenario: Sequence of operation applications by relevant agent (additional details ommitted)

Page 8: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

KAOS: Operation/Agent Model

Page 9: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

KAOS: Real-time Temporal Logic

• Assumes linear time

Page 10: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

KAOS: Real-time Temporal Logic

As opposed to branching time

Now

Page 11: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

KAOS: Real-time Temporal Logic

(H, i) |= Pdenotes that a history H (a linear time structure, assumed to be discrete), satisfies assertion P at time point i

Page 12: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

KAOS: Real-time Temporal Logic

• Temporal operators

Page 13: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

KAOS: Real-time Temporal Logic

Page 14: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

KAOS: Real-time Temporal Logic

Page 15: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

KAOS: Goal Representation

Page 16: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

KAOS: Goal Representation

Page 17: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

KAOS: Agent/Relationship Representation

Page 18: Goal-Oriented Requirements Engineering (GORE) “Goal-oriented requirements engineering is concerned with the use of goals for eliciting, elaborating, structuring,

KAOS: Agent/Relationship Representation