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

Transcript
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