Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities...

237
Requirements Requirements Engineering RE Activities Conclusion How to Make a Tree Swing? Picture from projectcartoon.com Introduction to Requirements Engineering 1/62 Matthieu Vergne [email protected] NAIST

Transcript of Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities...

Page 1: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

How to Make a Tree Swing?

Picture from projectcartoon.comIntroduction to Requirements Engineering 1/62Matthieu Vergne [email protected] NAIST

Page 2: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Introduction to Requirements Engineering

Matthieu Vergne

Nara Institute of Science and Technology

March 1st , 2017

Introduction to Requirements Engineering 2/62Matthieu Vergne [email protected] NAIST

Page 3: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Seminar Objectives

Understand what is a requirement

Understand what is Requirements Engineering (RE)Understand how RE impacts/is impacted by software projectsGet a broad overview of existing RE techniques

This course is inspired from:RE course of Anna Perini, University of Trento, Italy (2014)Guide to the Software Engineering Body of Knowledge v3(Bourque et al. [2014])

Slides available on the Web:https://www.matthieu-vergne.fr/?page=teaching

Introduction to Requirements Engineering 3/62Matthieu Vergne [email protected] NAIST

Page 4: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Seminar Objectives

Understand what is a requirementUnderstand what is Requirements Engineering (RE)

Understand how RE impacts/is impacted by software projectsGet a broad overview of existing RE techniques

This course is inspired from:RE course of Anna Perini, University of Trento, Italy (2014)Guide to the Software Engineering Body of Knowledge v3(Bourque et al. [2014])

Slides available on the Web:https://www.matthieu-vergne.fr/?page=teaching

Introduction to Requirements Engineering 3/62Matthieu Vergne [email protected] NAIST

Page 5: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Seminar Objectives

Understand what is a requirementUnderstand what is Requirements Engineering (RE)Understand how RE impacts/is impacted by software projects

Get a broad overview of existing RE techniques

This course is inspired from:RE course of Anna Perini, University of Trento, Italy (2014)Guide to the Software Engineering Body of Knowledge v3(Bourque et al. [2014])

Slides available on the Web:https://www.matthieu-vergne.fr/?page=teaching

Introduction to Requirements Engineering 3/62Matthieu Vergne [email protected] NAIST

Page 6: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Seminar Objectives

Understand what is a requirementUnderstand what is Requirements Engineering (RE)Understand how RE impacts/is impacted by software projectsGet a broad overview of existing RE techniques

This course is inspired from:RE course of Anna Perini, University of Trento, Italy (2014)Guide to the Software Engineering Body of Knowledge v3(Bourque et al. [2014])

Slides available on the Web:https://www.matthieu-vergne.fr/?page=teaching

Introduction to Requirements Engineering 3/62Matthieu Vergne [email protected] NAIST

Page 7: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Seminar Objectives

Understand what is a requirementUnderstand what is Requirements Engineering (RE)Understand how RE impacts/is impacted by software projectsGet a broad overview of existing RE techniques

This course is inspired from:RE course of Anna Perini, University of Trento, Italy (2014)Guide to the Software Engineering Body of Knowledge v3(Bourque et al. [2014])

Slides available on the Web:https://www.matthieu-vergne.fr/?page=teaching

Introduction to Requirements Engineering 3/62Matthieu Vergne [email protected] NAIST

Page 8: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Seminar Objectives

Understand what is a requirementUnderstand what is Requirements Engineering (RE)Understand how RE impacts/is impacted by software projectsGet a broad overview of existing RE techniques

This course is inspired from:RE course of Anna Perini, University of Trento, Italy (2014)Guide to the Software Engineering Body of Knowledge v3(Bourque et al. [2014])

Slides available on the Web:https://www.matthieu-vergne.fr/?page=teaching

Introduction to Requirements Engineering 3/62Matthieu Vergne [email protected] NAIST

Page 9: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Outline

1 Requirements

2 Requirements Engineering

3 RE ActivitiesRequirements ElicitationRequirements ModellingRequirements AnalysisRequirements PrioritisationRequirements Management

4 Conclusion

Introduction to Requirements Engineering 4/62Matthieu Vergne [email protected] NAIST

Page 10: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Outline

1 Requirements

2 Requirements Engineering

3 RE ActivitiesRequirements ElicitationRequirements ModellingRequirements AnalysisRequirements PrioritisationRequirements Management

4 Conclusion

Introduction to Requirements Engineering 5/62Matthieu Vergne [email protected] NAIST

Page 11: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

DefinitionsIEEE Standards Board [1990]:

1 A condition or capacity needed by a user to solve a problem orachieve an objective.

2 A condition or capability that must be met or possessed by asystem or system component to satisfy a contract, standard,specification, or other formally imposed documents.

3 A documented representation of a condition or capability as in(1) or (2).

SWEBOK v3 [2014]:A software requirement is a property that must beexhibited by something in order to solve some problem inthe real world.

(user? document?)

Introduction to Requirements Engineering 6/62Matthieu Vergne [email protected] NAIST

Page 12: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

DefinitionsIEEE Standards Board [1990]:

1 A condition or capacity needed by a user to solve a problem orachieve an objective.

2 A condition or capability that must be met or possessed by asystem or system component to satisfy a contract, standard,specification, or other formally imposed documents.

3 A documented representation of a condition or capability as in(1) or (2).

SWEBOK v3 [2014]:A software requirement is a property that must beexhibited by something in order to solve some problem inthe real world.

(user? document?)

Introduction to Requirements Engineering 6/62Matthieu Vergne [email protected] NAIST

Page 13: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

DefinitionsIEEE Standards Board [1990]:

1 A condition or capacity needed by a user to solve a problem orachieve an objective.

2 A condition or capability that must be met or possessed by asystem or system component to satisfy a contract, standard,specification, or other formally imposed documents.

3 A documented representation of a condition or capability as in(1) or (2).

SWEBOK v3 [2014]:A software requirement is a property that must beexhibited by something in order to solve some problem inthe real world.

(user? document?)

Introduction to Requirements Engineering 6/62Matthieu Vergne [email protected] NAIST

Page 14: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

DefinitionsIEEE Standards Board [1990]:

1 A condition or capacity needed by a user to solve a problem orachieve an objective.

2 A condition or capability that must be met or possessed by asystem or system component to satisfy a contract, standard,specification, or other formally imposed documents.

3 A documented representation of a condition or capability as in(1) or (2).

SWEBOK v3 [2014]:A software requirement is a property that must beexhibited by something in order to solve some problem inthe real world.

(user? document?)

Introduction to Requirements Engineering 6/62Matthieu Vergne [email protected] NAIST

Page 15: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

DefinitionsIEEE Standards Board [1990]:

1 A condition or capacity needed by a user to solve a problem orachieve an objective.

2 A condition or capability that must be met or possessed by asystem or system component to satisfy a contract, standard,specification, or other formally imposed documents.

3 A documented representation of a condition or capability as in(1) or (2).

SWEBOK v3 [2014]:A software requirement is a property that must beexhibited by something in order to solve some problem inthe real world. (user? document?)

Introduction to Requirements Engineering 6/62Matthieu Vergne [email protected] NAIST

Page 16: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Classifications

Various kinds of requirements:Product Need or constraint on the product to be developed.

The software shall verify that a student meets all pre-requisitesbefore he or she registers for a course.

Process Constraint on the development of the product.The software shall be developed using Agile methods.

Functional Functions that the product is to execute.formatting some text, modulating a signal

Quality Constrain the solution.performance, reliability, safety, security, maintainability, etc.

System Requirements for the whole system.Software + hardware + people + information + etc.

Software Reqs for the software part, derived from the system reqs.Etc. ...

Introduction to Requirements Engineering 7/62Matthieu Vergne [email protected] NAIST

Page 17: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Classifications

Various kinds of requirements:Product Need or constraint on the product to be developed.

The software shall verify that a student meets all pre-requisitesbefore he or she registers for a course.

Process Constraint on the development of the product.The software shall be developed using Agile methods.

Functional Functions that the product is to execute.formatting some text, modulating a signal

Quality Constrain the solution.performance, reliability, safety, security, maintainability, etc.

System Requirements for the whole system.Software + hardware + people + information + etc.

Software Reqs for the software part, derived from the system reqs.Etc. ...

Introduction to Requirements Engineering 7/62Matthieu Vergne [email protected] NAIST

Page 18: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Classifications

Various kinds of requirements:Product Need or constraint on the product to be developed.

The software shall verify that a student meets all pre-requisitesbefore he or she registers for a course.

Process Constraint on the development of the product.The software shall be developed using Agile methods.

Functional Functions that the product is to execute.formatting some text, modulating a signal

Quality Constrain the solution.performance, reliability, safety, security, maintainability, etc.

System Requirements for the whole system.Software + hardware + people + information + etc.

Software Reqs for the software part, derived from the system reqs.Etc. ...

Introduction to Requirements Engineering 7/62Matthieu Vergne [email protected] NAIST

Page 19: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Classifications

Various kinds of requirements:Product Need or constraint on the product to be developed.

The software shall verify that a student meets all pre-requisitesbefore he or she registers for a course.

Process Constraint on the development of the product.The software shall be developed using Agile methods.

Functional Functions that the product is to execute.formatting some text, modulating a signal

Quality Constrain the solution.performance, reliability, safety, security, maintainability, etc.

System Requirements for the whole system.Software + hardware + people + information + etc.

Software Reqs for the software part, derived from the system reqs.Etc. ...

Introduction to Requirements Engineering 7/62Matthieu Vergne [email protected] NAIST

Page 20: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Classifications

Various kinds of requirements:Product Need or constraint on the product to be developed.

The software shall verify that a student meets all pre-requisitesbefore he or she registers for a course.

Process Constraint on the development of the product.The software shall be developed using Agile methods.

Functional Functions that the product is to execute.formatting some text, modulating a signal

Quality Constrain the solution.performance, reliability, safety, security, maintainability, etc.

System Requirements for the whole system.Software + hardware + people + information + etc.

Software Reqs for the software part, derived from the system reqs.Etc. ...

Introduction to Requirements Engineering 7/62Matthieu Vergne [email protected] NAIST

Page 21: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Classifications

Various kinds of requirements:Product Need or constraint on the product to be developed.

The software shall verify that a student meets all pre-requisitesbefore he or she registers for a course.

Process Constraint on the development of the product.The software shall be developed using Agile methods.

Functional Functions that the product is to execute.formatting some text, modulating a signal

Quality Constrain the solution.performance, reliability, safety, security, maintainability, etc.

System Requirements for the whole system.Software + hardware + people + information + etc.

Software Reqs for the software part, derived from the system reqs.

Etc. ...

Introduction to Requirements Engineering 7/62Matthieu Vergne [email protected] NAIST

Page 22: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Classifications

Various kinds of requirements:Product Need or constraint on the product to be developed.

The software shall verify that a student meets all pre-requisitesbefore he or she registers for a course.

Process Constraint on the development of the product.The software shall be developed using Agile methods.

Functional Functions that the product is to execute.formatting some text, modulating a signal

Quality Constrain the solution.performance, reliability, safety, security, maintainability, etc.

System Requirements for the whole system.Software + hardware + people + information + etc.

Software Reqs for the software part, derived from the system reqs.Etc. ...

Introduction to Requirements Engineering 7/62Matthieu Vergne [email protected] NAIST

Page 23: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Classifications Usage

Requirements classifications are:Supports for identifying relevant requirements.

Not strict rules to be followed.

An example:(Glinz [2007])

All do not applyto every projects.

Introduction to Requirements Engineering 8/62Matthieu Vergne [email protected] NAIST

Page 24: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Classifications Usage

Requirements classifications are:Supports for identifying relevant requirements.Not strict rules to be followed.

An example:(Glinz [2007])

All do not applyto every projects.

Introduction to Requirements Engineering 8/62Matthieu Vergne [email protected] NAIST

Page 25: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Classifications Usage

Requirements classifications are:Supports for identifying relevant requirements.Not strict rules to be followed.

An example:(Glinz [2007])

All do not applyto every projects.

Introduction to Requirements Engineering 8/62Matthieu Vergne [email protected] NAIST

Page 26: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Classifications Usage

Requirements classifications are:Supports for identifying relevant requirements.Not strict rules to be followed.

An example:(Glinz [2007])

All do not applyto every projects.

Introduction to Requirements Engineering 8/62Matthieu Vergne [email protected] NAIST

Page 27: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Various Dimensions to Consider

What is needed (requirement per se)Register participants for an event

Who needs itEvent organisers

Why it is neededIdentify participantsStore contact informationMeasure event interestEvaluate food requirements

How it is fulfilledRegistration form on a websiteRegistration phone callOn-site registration desk

Introduction to Requirements Engineering 9/62Matthieu Vergne [email protected] NAIST

Page 28: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Various Dimensions to Consider

What is needed (requirement per se)Register participants for an event

Who needs itEvent organisers

Why it is neededIdentify participantsStore contact informationMeasure event interestEvaluate food requirements

How it is fulfilledRegistration form on a websiteRegistration phone callOn-site registration desk

Introduction to Requirements Engineering 9/62Matthieu Vergne [email protected] NAIST

Page 29: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Various Dimensions to Consider

What is needed (requirement per se)Register participants for an event

Who needs itEvent organisers

Why it is neededIdentify participantsStore contact informationMeasure event interestEvaluate food requirements

How it is fulfilledRegistration form on a websiteRegistration phone callOn-site registration desk

Introduction to Requirements Engineering 9/62Matthieu Vergne [email protected] NAIST

Page 30: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Various Dimensions to Consider

What is needed (requirement per se)Register participants for an event

Who needs itEvent organisers

Why it is neededIdentify participantsStore contact informationMeasure event interestEvaluate food requirements

How it is fulfilledRegistration form on a websiteRegistration phone callOn-site registration desk

Introduction to Requirements Engineering 9/62Matthieu Vergne [email protected] NAIST

Page 31: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Many Challenges

What is needed (requirement per se)Could be ambiguous ("track" instead of "register")Could be subjective (no reliable test procedure)

Who needs itCould focus on irrelevant people (not directly involved)Could forget important people (some organisers)Could forget authorities (regulators, law)

Why it is neededCould be unknown (no access to the decision team)Could be wrong (failed guess)Could be conflictual (disagreements)

How it is fulfilledCould be unknown (lack expertise)Could be inadapted (lack alternatives)Could be infeasible (conflicts, law restrictions)

Introduction to Requirements Engineering 10/62Matthieu Vergne [email protected] NAIST

Page 32: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Many Challenges

What is needed (requirement per se)Could be ambiguous ("track" instead of "register")Could be subjective (no reliable test procedure)

Who needs itCould focus on irrelevant people (not directly involved)Could forget important people (some organisers)Could forget authorities (regulators, law)

Why it is neededCould be unknown (no access to the decision team)Could be wrong (failed guess)Could be conflictual (disagreements)

How it is fulfilledCould be unknown (lack expertise)Could be inadapted (lack alternatives)Could be infeasible (conflicts, law restrictions)

Introduction to Requirements Engineering 10/62Matthieu Vergne [email protected] NAIST

Page 33: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Many Challenges

What is needed (requirement per se)Could be ambiguous ("track" instead of "register")Could be subjective (no reliable test procedure)

Who needs itCould focus on irrelevant people (not directly involved)Could forget important people (some organisers)Could forget authorities (regulators, law)

Why it is neededCould be unknown (no access to the decision team)Could be wrong (failed guess)Could be conflictual (disagreements)

How it is fulfilledCould be unknown (lack expertise)Could be inadapted (lack alternatives)Could be infeasible (conflicts, law restrictions)

Introduction to Requirements Engineering 10/62Matthieu Vergne [email protected] NAIST

Page 34: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Many Challenges

What is needed (requirement per se)Could be ambiguous ("track" instead of "register")Could be subjective (no reliable test procedure)

Who needs itCould focus on irrelevant people (not directly involved)Could forget important people (some organisers)Could forget authorities (regulators, law)

Why it is neededCould be unknown (no access to the decision team)Could be wrong (failed guess)Could be conflictual (disagreements)

How it is fulfilledCould be unknown (lack expertise)Could be inadapted (lack alternatives)Could be infeasible (conflicts, law restrictions)

Introduction to Requirements Engineering 10/62Matthieu Vergne [email protected] NAIST

Page 35: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Outline

1 Requirements

2 Requirements Engineering

3 RE ActivitiesRequirements ElicitationRequirements ModellingRequirements AnalysisRequirements PrioritisationRequirements Management

4 Conclusion

Introduction to Requirements Engineering 11/62Matthieu Vergne [email protected] NAIST

Page 36: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

What is RE?

Several detailed definitions depending on emphasis, but in short:

Requirements EngineeringSystematic handling of requirements. (SWEBOK v3 [2014])

More precisely, we can speak about systematic methods todiscover, model, improve, and exploit requirements.

Introduction to Requirements Engineering 12/62Matthieu Vergne [email protected] NAIST

Page 37: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

What is RE?

Several detailed definitions depending on emphasis, but in short:

Requirements EngineeringSystematic handling of requirements. (SWEBOK v3 [2014])

More precisely, we can speak about systematic methods todiscover, model, improve, and exploit requirements.

Introduction to Requirements Engineering 12/62Matthieu Vergne [email protected] NAIST

Page 38: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

What is RE?

Several detailed definitions depending on emphasis, but in short:

Requirements EngineeringSystematic handling of requirements. (SWEBOK v3 [2014])

More precisely, we can speak about systematic methods todiscover, model, improve, and exploit requirements.

Introduction to Requirements Engineering 12/62Matthieu Vergne [email protected] NAIST

Page 39: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

RE in Software Projects - In Theory

After first step,requirements don’tchange anymore.The rest of thework is aboutsatisfying them asbest as possible.

Diagram by Peter Kemp & Paul Smith (Wikimedia).

Introduction to Requirements Engineering 13/62Matthieu Vergne [email protected] NAIST

Page 40: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

RE in Software Projects - In Theory

After first step,requirements don’tchange anymore.The rest of thework is aboutsatisfying them asbest as possible.

Diagram by Peter Kemp & Paul Smith (Wikimedia).

Introduction to Requirements Engineering 13/62Matthieu Vergne [email protected] NAIST

Page 41: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

RE in Software Projects - Wake up!

Assumptions:All requirements are known after the first phase

Requirements are perfectly documentedIf tests do not pass, the developer is at fault

Reality:

New requirements discovered duringimplementation/verificationAll requirements cannot be clarified immediatelyChanges in requirements impact the rest of the chainLater the change, higher the cost

Introduction to Requirements Engineering 14/62Matthieu Vergne [email protected] NAIST

Page 42: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

RE in Software Projects - Wake up!

Assumptions:All requirements are known after the first phaseRequirements are perfectly documented

If tests do not pass, the developer is at fault

Reality:

New requirements discovered duringimplementation/verificationAll requirements cannot be clarified immediatelyChanges in requirements impact the rest of the chainLater the change, higher the cost

Introduction to Requirements Engineering 14/62Matthieu Vergne [email protected] NAIST

Page 43: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

RE in Software Projects - Wake up!

Assumptions:All requirements are known after the first phaseRequirements are perfectly documentedIf tests do not pass, the developer is at fault

Reality:

New requirements discovered duringimplementation/verificationAll requirements cannot be clarified immediatelyChanges in requirements impact the rest of the chainLater the change, higher the cost

Introduction to Requirements Engineering 14/62Matthieu Vergne [email protected] NAIST

Page 44: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

RE in Software Projects - Wake up!

Assumptions:All requirements are known after the first phaseRequirements are perfectly documentedIf tests do not pass, the developer is at fault

Reality:

New requirements discovered duringimplementation/verificationAll requirements cannot be clarified immediatelyChanges in requirements impact the rest of the chainLater the change, higher the cost

Introduction to Requirements Engineering 14/62Matthieu Vergne [email protected] NAIST

Page 45: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

RE in Software Projects - Wake up!

Assumptions:All requirements are known after the first phaseRequirements are perfectly documentedIf tests do not pass, the developer is at fault

Reality:New requirements discovered duringimplementation/verification

All requirements cannot be clarified immediatelyChanges in requirements impact the rest of the chainLater the change, higher the cost

Introduction to Requirements Engineering 14/62Matthieu Vergne [email protected] NAIST

Page 46: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

RE in Software Projects - Wake up!

Assumptions:All requirements are known after the first phaseRequirements are perfectly documentedIf tests do not pass, the developer is at fault

Reality:New requirements discovered duringimplementation/verificationAll requirements cannot be clarified immediately

Changes in requirements impact the rest of the chainLater the change, higher the cost

Introduction to Requirements Engineering 14/62Matthieu Vergne [email protected] NAIST

Page 47: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

RE in Software Projects - Wake up!

Assumptions:All requirements are known after the first phaseRequirements are perfectly documentedIf tests do not pass, the developer is at fault

Reality:New requirements discovered duringimplementation/verificationAll requirements cannot be clarified immediatelyChanges in requirements impact the rest of the chain

Later the change, higher the cost

Introduction to Requirements Engineering 14/62Matthieu Vergne [email protected] NAIST

Page 48: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

RE in Software Projects - Wake up!

Assumptions:All requirements are known after the first phaseRequirements are perfectly documentedIf tests do not pass, the developer is at fault

Reality:New requirements discovered duringimplementation/verificationAll requirements cannot be clarified immediatelyChanges in requirements impact the rest of the chainLater the change, higher the cost

Introduction to Requirements Engineering 14/62Matthieu Vergne [email protected] NAIST

Page 49: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

RE in Software Projects - In Practice

In iterative andincrementalsoftwaredevelopment, REruns through thewhole project.

Diagram by Dutchguilder (Wikimedia).

Introduction to Requirements Engineering 15/62Matthieu Vergne [email protected] NAIST

Page 50: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

RE in Software Projects - In Practice

In iterative andincrementalsoftwaredevelopment, REruns through thewhole project.

Diagram by Dutchguilder (Wikimedia).

Introduction to Requirements Engineering 15/62Matthieu Vergne [email protected] NAIST

Page 51: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Successful RE is Knowledge-Intensive

Having requirements is not enough:Unclear requirements → Plan discussions

Few requirements → Expect new requestsLot of requirements → Prioritise themConflicts may occur → Agree on priority criteriaEtc.

RE needs a lot of domain knowledge: find a balance betweencertainty and flexibility.

Introduction to Requirements Engineering 16/62Matthieu Vergne [email protected] NAIST

Page 52: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Successful RE is Knowledge-Intensive

Having requirements is not enough:Unclear requirements → Plan discussionsFew requirements → Expect new requests

Lot of requirements → Prioritise themConflicts may occur → Agree on priority criteriaEtc.

RE needs a lot of domain knowledge: find a balance betweencertainty and flexibility.

Introduction to Requirements Engineering 16/62Matthieu Vergne [email protected] NAIST

Page 53: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Successful RE is Knowledge-Intensive

Having requirements is not enough:Unclear requirements → Plan discussionsFew requirements → Expect new requestsLot of requirements → Prioritise them

Conflicts may occur → Agree on priority criteriaEtc.

RE needs a lot of domain knowledge: find a balance betweencertainty and flexibility.

Introduction to Requirements Engineering 16/62Matthieu Vergne [email protected] NAIST

Page 54: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Successful RE is Knowledge-Intensive

Having requirements is not enough:Unclear requirements → Plan discussionsFew requirements → Expect new requestsLot of requirements → Prioritise themConflicts may occur → Agree on priority criteria

Etc.

RE needs a lot of domain knowledge: find a balance betweencertainty and flexibility.

Introduction to Requirements Engineering 16/62Matthieu Vergne [email protected] NAIST

Page 55: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Successful RE is Knowledge-Intensive

Having requirements is not enough:Unclear requirements → Plan discussionsFew requirements → Expect new requestsLot of requirements → Prioritise themConflicts may occur → Agree on priority criteriaEtc.

RE needs a lot of domain knowledge: find a balance betweencertainty and flexibility.

Introduction to Requirements Engineering 16/62Matthieu Vergne [email protected] NAIST

Page 56: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Successful RE is Knowledge-Intensive

Having requirements is not enough:Unclear requirements → Plan discussionsFew requirements → Expect new requestsLot of requirements → Prioritise themConflicts may occur → Agree on priority criteriaEtc.

RE needs a lot of domain knowledge: find a balance betweencertainty and flexibility.

Introduction to Requirements Engineering 16/62Matthieu Vergne [email protected] NAIST

Page 57: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Certainty/Flexibility Depends on ProjectsSome projects are more flexible by nature:

Agile methods on a game is feasible (e.g. extension packs)

But costly for a critical aircraft or hospital device

Some projects are more certain by nature:

An aircraft is constrained by physics and regulationWhile a game is a fully creative process

But it also depends on decision makers:

Is it really necessary?For how much cost/benefice in money/time/...?With which impact on our image?Etc.

Introduction to Requirements Engineering 17/62Matthieu Vergne [email protected] NAIST

Page 58: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Certainty/Flexibility Depends on ProjectsSome projects are more flexible by nature:

Agile methods on a game is feasible (e.g. extension packs)But costly for a critical aircraft or hospital device

Some projects are more certain by nature:

An aircraft is constrained by physics and regulationWhile a game is a fully creative process

But it also depends on decision makers:

Is it really necessary?For how much cost/benefice in money/time/...?With which impact on our image?Etc.

Introduction to Requirements Engineering 17/62Matthieu Vergne [email protected] NAIST

Page 59: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Certainty/Flexibility Depends on ProjectsSome projects are more flexible by nature:

Agile methods on a game is feasible (e.g. extension packs)But costly for a critical aircraft or hospital device

Some projects are more certain by nature:

An aircraft is constrained by physics and regulationWhile a game is a fully creative process

But it also depends on decision makers:

Is it really necessary?For how much cost/benefice in money/time/...?With which impact on our image?Etc.

Introduction to Requirements Engineering 17/62Matthieu Vergne [email protected] NAIST

Page 60: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Certainty/Flexibility Depends on ProjectsSome projects are more flexible by nature:

Agile methods on a game is feasible (e.g. extension packs)But costly for a critical aircraft or hospital device

Some projects are more certain by nature:An aircraft is constrained by physics and regulation

While a game is a fully creative process

But it also depends on decision makers:

Is it really necessary?For how much cost/benefice in money/time/...?With which impact on our image?Etc.

Introduction to Requirements Engineering 17/62Matthieu Vergne [email protected] NAIST

Page 61: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Certainty/Flexibility Depends on ProjectsSome projects are more flexible by nature:

Agile methods on a game is feasible (e.g. extension packs)But costly for a critical aircraft or hospital device

Some projects are more certain by nature:An aircraft is constrained by physics and regulationWhile a game is a fully creative process

But it also depends on decision makers:

Is it really necessary?For how much cost/benefice in money/time/...?With which impact on our image?Etc.

Introduction to Requirements Engineering 17/62Matthieu Vergne [email protected] NAIST

Page 62: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Certainty/Flexibility Depends on ProjectsSome projects are more flexible by nature:

Agile methods on a game is feasible (e.g. extension packs)But costly for a critical aircraft or hospital device

Some projects are more certain by nature:An aircraft is constrained by physics and regulationWhile a game is a fully creative process

But it also depends on decision makers:

Is it really necessary?For how much cost/benefice in money/time/...?With which impact on our image?Etc.

Introduction to Requirements Engineering 17/62Matthieu Vergne [email protected] NAIST

Page 63: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Certainty/Flexibility Depends on ProjectsSome projects are more flexible by nature:

Agile methods on a game is feasible (e.g. extension packs)But costly for a critical aircraft or hospital device

Some projects are more certain by nature:An aircraft is constrained by physics and regulationWhile a game is a fully creative process

But it also depends on decision makers:Is it really necessary?

For how much cost/benefice in money/time/...?With which impact on our image?Etc.

Introduction to Requirements Engineering 17/62Matthieu Vergne [email protected] NAIST

Page 64: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Certainty/Flexibility Depends on ProjectsSome projects are more flexible by nature:

Agile methods on a game is feasible (e.g. extension packs)But costly for a critical aircraft or hospital device

Some projects are more certain by nature:An aircraft is constrained by physics and regulationWhile a game is a fully creative process

But it also depends on decision makers:Is it really necessary?For how much cost/benefice in money/time/...?

With which impact on our image?Etc.

Introduction to Requirements Engineering 17/62Matthieu Vergne [email protected] NAIST

Page 65: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Certainty/Flexibility Depends on ProjectsSome projects are more flexible by nature:

Agile methods on a game is feasible (e.g. extension packs)But costly for a critical aircraft or hospital device

Some projects are more certain by nature:An aircraft is constrained by physics and regulationWhile a game is a fully creative process

But it also depends on decision makers:Is it really necessary?For how much cost/benefice in money/time/...?With which impact on our image?

Etc.

Introduction to Requirements Engineering 17/62Matthieu Vergne [email protected] NAIST

Page 66: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Certainty/Flexibility Depends on ProjectsSome projects are more flexible by nature:

Agile methods on a game is feasible (e.g. extension packs)But costly for a critical aircraft or hospital device

Some projects are more certain by nature:An aircraft is constrained by physics and regulationWhile a game is a fully creative process

But it also depends on decision makers:Is it really necessary?For how much cost/benefice in money/time/...?With which impact on our image?Etc.

Introduction to Requirements Engineering 17/62Matthieu Vergne [email protected] NAIST

Page 67: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

RE in a Nutshell

RE is knowledge-intensive

RE is not a one shot activity, but a continuous oneRequirements can be handled in many waysRequirements engineers should adapt to project and peopleDoing so requires familiarity with various activities:

Requirements elicitationRequirements modellingRequirements analysisRequirements prioritisationRequirements managementEtc.

Introduction to Requirements Engineering 18/62Matthieu Vergne [email protected] NAIST

Page 68: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

RE in a Nutshell

RE is knowledge-intensiveRE is not a one shot activity, but a continuous one

Requirements can be handled in many waysRequirements engineers should adapt to project and peopleDoing so requires familiarity with various activities:

Requirements elicitationRequirements modellingRequirements analysisRequirements prioritisationRequirements managementEtc.

Introduction to Requirements Engineering 18/62Matthieu Vergne [email protected] NAIST

Page 69: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

RE in a Nutshell

RE is knowledge-intensiveRE is not a one shot activity, but a continuous oneRequirements can be handled in many ways

Requirements engineers should adapt to project and peopleDoing so requires familiarity with various activities:

Requirements elicitationRequirements modellingRequirements analysisRequirements prioritisationRequirements managementEtc.

Introduction to Requirements Engineering 18/62Matthieu Vergne [email protected] NAIST

Page 70: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

RE in a Nutshell

RE is knowledge-intensiveRE is not a one shot activity, but a continuous oneRequirements can be handled in many waysRequirements engineers should adapt to project and people

Doing so requires familiarity with various activities:Requirements elicitationRequirements modellingRequirements analysisRequirements prioritisationRequirements managementEtc.

Introduction to Requirements Engineering 18/62Matthieu Vergne [email protected] NAIST

Page 71: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

RE in a Nutshell

RE is knowledge-intensiveRE is not a one shot activity, but a continuous oneRequirements can be handled in many waysRequirements engineers should adapt to project and peopleDoing so requires familiarity with various activities:

Requirements elicitationRequirements modellingRequirements analysisRequirements prioritisationRequirements managementEtc.

Introduction to Requirements Engineering 18/62Matthieu Vergne [email protected] NAIST

Page 72: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Outline

1 Requirements

2 Requirements Engineering

3 RE ActivitiesRequirements ElicitationRequirements ModellingRequirements AnalysisRequirements PrioritisationRequirements Management

4 Conclusion

Introduction to Requirements Engineering 19/62Matthieu Vergne [email protected] NAIST

Page 73: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Outline

1 Requirements

2 Requirements Engineering

3 RE ActivitiesRequirements ElicitationRequirements ModellingRequirements AnalysisRequirements PrioritisationRequirements Management

4 Conclusion

Introduction to Requirements Engineering 20/62Matthieu Vergne [email protected] NAIST

Page 74: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements Elicitation

Goal: Gather new or revised requirements.

Main tasks:

Identify stakeholdersUnderstand their goalsUnderstand domain and environment (system-as-is)Draw requirements (system-to-be)Document for reuse

Introduction to Requirements Engineering 21/62Matthieu Vergne [email protected] NAIST

Page 75: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements Elicitation

Goal: Gather new or revised requirements.

Main tasks:

Identify stakeholdersUnderstand their goalsUnderstand domain and environment (system-as-is)Draw requirements (system-to-be)Document for reuse

Introduction to Requirements Engineering 21/62Matthieu Vergne [email protected] NAIST

Page 76: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements Elicitation

Goal: Gather new or revised requirements.

Main tasks:Identify stakeholders

Understand their goalsUnderstand domain and environment (system-as-is)Draw requirements (system-to-be)Document for reuse

Introduction to Requirements Engineering 21/62Matthieu Vergne [email protected] NAIST

Page 77: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements Elicitation

Goal: Gather new or revised requirements.

Main tasks:Identify stakeholdersUnderstand their goals

Understand domain and environment (system-as-is)Draw requirements (system-to-be)Document for reuse

Introduction to Requirements Engineering 21/62Matthieu Vergne [email protected] NAIST

Page 78: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements Elicitation

Goal: Gather new or revised requirements.

Main tasks:Identify stakeholdersUnderstand their goalsUnderstand domain and environment (system-as-is)

Draw requirements (system-to-be)Document for reuse

Introduction to Requirements Engineering 21/62Matthieu Vergne [email protected] NAIST

Page 79: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements Elicitation

Goal: Gather new or revised requirements.

Main tasks:Identify stakeholdersUnderstand their goalsUnderstand domain and environment (system-as-is)Draw requirements (system-to-be)

Document for reuse

Introduction to Requirements Engineering 21/62Matthieu Vergne [email protected] NAIST

Page 80: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements Elicitation

Goal: Gather new or revised requirements.

Main tasks:Identify stakeholdersUnderstand their goalsUnderstand domain and environment (system-as-is)Draw requirements (system-to-be)Document for reuse

Introduction to Requirements Engineering 21/62Matthieu Vergne [email protected] NAIST

Page 81: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements ElicitationVarious stakeholders:

CustomersFinal usersDomain expertsRegulatory authoritiesDevelopersEtc.

Other sources can help:

Existing specificationsSimilar projectsStandardsEtc.

Introduction to Requirements Engineering 22/62Matthieu Vergne [email protected] NAIST

Page 82: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements ElicitationVarious stakeholders:

Customers

Final usersDomain expertsRegulatory authoritiesDevelopersEtc.

Other sources can help:

Existing specificationsSimilar projectsStandardsEtc.

Introduction to Requirements Engineering 22/62Matthieu Vergne [email protected] NAIST

Page 83: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements ElicitationVarious stakeholders:

CustomersFinal users

Domain expertsRegulatory authoritiesDevelopersEtc.

Other sources can help:

Existing specificationsSimilar projectsStandardsEtc.

Introduction to Requirements Engineering 22/62Matthieu Vergne [email protected] NAIST

Page 84: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements ElicitationVarious stakeholders:

CustomersFinal usersDomain experts

Regulatory authoritiesDevelopersEtc.

Other sources can help:

Existing specificationsSimilar projectsStandardsEtc.

Introduction to Requirements Engineering 22/62Matthieu Vergne [email protected] NAIST

Page 85: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements ElicitationVarious stakeholders:

CustomersFinal usersDomain expertsRegulatory authorities

DevelopersEtc.

Other sources can help:

Existing specificationsSimilar projectsStandardsEtc.

Introduction to Requirements Engineering 22/62Matthieu Vergne [email protected] NAIST

Page 86: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements ElicitationVarious stakeholders:

CustomersFinal usersDomain expertsRegulatory authoritiesDevelopers

Etc.

Other sources can help:

Existing specificationsSimilar projectsStandardsEtc.

Introduction to Requirements Engineering 22/62Matthieu Vergne [email protected] NAIST

Page 87: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements ElicitationVarious stakeholders:

CustomersFinal usersDomain expertsRegulatory authoritiesDevelopersEtc.

Other sources can help:

Existing specificationsSimilar projectsStandardsEtc.

Introduction to Requirements Engineering 22/62Matthieu Vergne [email protected] NAIST

Page 88: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements ElicitationVarious stakeholders:

CustomersFinal usersDomain expertsRegulatory authoritiesDevelopersEtc.

Other sources can help:

Existing specificationsSimilar projectsStandardsEtc.

Introduction to Requirements Engineering 22/62Matthieu Vergne [email protected] NAIST

Page 89: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements ElicitationVarious stakeholders:

CustomersFinal usersDomain expertsRegulatory authoritiesDevelopersEtc.

Other sources can help:Existing specifications

Similar projectsStandardsEtc.

Introduction to Requirements Engineering 22/62Matthieu Vergne [email protected] NAIST

Page 90: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements ElicitationVarious stakeholders:

CustomersFinal usersDomain expertsRegulatory authoritiesDevelopersEtc.

Other sources can help:Existing specificationsSimilar projects

StandardsEtc.

Introduction to Requirements Engineering 22/62Matthieu Vergne [email protected] NAIST

Page 91: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements ElicitationVarious stakeholders:

CustomersFinal usersDomain expertsRegulatory authoritiesDevelopersEtc.

Other sources can help:Existing specificationsSimilar projectsStandards

Etc.

Introduction to Requirements Engineering 22/62Matthieu Vergne [email protected] NAIST

Page 92: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Requirements ElicitationVarious stakeholders:

CustomersFinal usersDomain expertsRegulatory authoritiesDevelopersEtc.

Other sources can help:Existing specificationsSimilar projectsStandardsEtc.

Introduction to Requirements Engineering 22/62Matthieu Vergne [email protected] NAIST

Page 93: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Elicitation Technique - Interviews/Questionnaires

Goal: Gather information and opinions from isolated stakeholders.

Pros:Direct feedback with personal perspectivesCan be close (strictly follow questions) or open (adaptquestions on the fly)Isolation allows customisation

Cons:Driven by interviewer more than stakeholdersDoes not exploit synergies (isolated interviews)Different interviews may contradict each other

Introduction to Requirements Engineering 23/62Matthieu Vergne [email protected] NAIST

Page 94: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Elicitation Technique - Interviews/Questionnaires

Goal: Gather information and opinions from isolated stakeholders.

Pros:Direct feedback with personal perspectivesCan be close (strictly follow questions) or open (adaptquestions on the fly)Isolation allows customisation

Cons:Driven by interviewer more than stakeholdersDoes not exploit synergies (isolated interviews)Different interviews may contradict each other

Introduction to Requirements Engineering 23/62Matthieu Vergne [email protected] NAIST

Page 95: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Elicitation Technique - Interviews/Questionnaires

Goal: Gather information and opinions from isolated stakeholders.

Pros:Direct feedback with personal perspectivesCan be close (strictly follow questions) or open (adaptquestions on the fly)Isolation allows customisation

Cons:Driven by interviewer more than stakeholdersDoes not exploit synergies (isolated interviews)Different interviews may contradict each other

Introduction to Requirements Engineering 23/62Matthieu Vergne [email protected] NAIST

Page 96: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Elicitation Technique - Meeting/Focus Group

Goal: Gather information and opinions from groups of stakeholders.

Pros:Exploit synergies (e.g. brainstorming)Help to identify conflicts and agreements

Cons:Discussions can be limited by power (leaders vs. subordinates)Discussions can be limited by personality (extroverts vs.introverts)Cannot involve too many stakeholdersHard to apply for timely/geographically spread teams

Introduction to Requirements Engineering 24/62Matthieu Vergne [email protected] NAIST

Page 97: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Elicitation Technique - Meeting/Focus Group

Goal: Gather information and opinions from groups of stakeholders.

Pros:Exploit synergies (e.g. brainstorming)Help to identify conflicts and agreements

Cons:Discussions can be limited by power (leaders vs. subordinates)Discussions can be limited by personality (extroverts vs.introverts)Cannot involve too many stakeholdersHard to apply for timely/geographically spread teams

Introduction to Requirements Engineering 24/62Matthieu Vergne [email protected] NAIST

Page 98: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Elicitation Technique - Meeting/Focus Group

Goal: Gather information and opinions from groups of stakeholders.

Pros:Exploit synergies (e.g. brainstorming)Help to identify conflicts and agreements

Cons:Discussions can be limited by power (leaders vs. subordinates)Discussions can be limited by personality (extroverts vs.introverts)Cannot involve too many stakeholdersHard to apply for timely/geographically spread teams

Introduction to Requirements Engineering 24/62Matthieu Vergne [email protected] NAIST

Page 99: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Elicitation Technique - Scenarios/Use Cases/Personas

Goal: Draw behavioural patterns.

Pros:Helps to understand the system-as-isEasy to get from domain experts

Cons:Arguable for describing the system-to-be (bias)Not easy to identify inter-dependencies (isolated behaviours)

Introduction to Requirements Engineering 25/62Matthieu Vergne [email protected] NAIST

Page 100: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Elicitation Technique - Scenarios/Use Cases/Personas

Goal: Draw behavioural patterns.

Pros:Helps to understand the system-as-isEasy to get from domain experts

Cons:Arguable for describing the system-to-be (bias)Not easy to identify inter-dependencies (isolated behaviours)

Introduction to Requirements Engineering 25/62Matthieu Vergne [email protected] NAIST

Page 101: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Elicitation Technique - Scenarios/Use Cases/Personas

Goal: Draw behavioural patterns.

Pros:Helps to understand the system-as-isEasy to get from domain experts

Cons:Arguable for describing the system-to-be (bias)Not easy to identify inter-dependencies (isolated behaviours)

Introduction to Requirements Engineering 25/62Matthieu Vergne [email protected] NAIST

Page 102: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Elicitation Technique - Ethnographic Study

Goal: Analyse people’s behaviours on site.

Pros:Direct observation of actual behavioursCan observe subtle behaviours and variantsCan ask for explanations on the fly

Cons:Impact on the workflow might be significantRequire a lot of timeNot applicable to all tasks (e.g. emergency)Rare but important behaviours might be missing

Introduction to Requirements Engineering 26/62Matthieu Vergne [email protected] NAIST

Page 103: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Elicitation Technique - Ethnographic Study

Goal: Analyse people’s behaviours on site.

Pros:Direct observation of actual behavioursCan observe subtle behaviours and variantsCan ask for explanations on the fly

Cons:Impact on the workflow might be significantRequire a lot of timeNot applicable to all tasks (e.g. emergency)Rare but important behaviours might be missing

Introduction to Requirements Engineering 26/62Matthieu Vergne [email protected] NAIST

Page 104: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Elicitation Technique - Ethnographic Study

Goal: Analyse people’s behaviours on site.

Pros:Direct observation of actual behavioursCan observe subtle behaviours and variantsCan ask for explanations on the fly

Cons:Impact on the workflow might be significantRequire a lot of timeNot applicable to all tasks (e.g. emergency)Rare but important behaviours might be missing

Introduction to Requirements Engineering 26/62Matthieu Vergne [email protected] NAIST

Page 105: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Summary

Requirements elicitation is a hard task

Subject to communication failuresStakeholders can be unavailableStakeholders can overlook relevant detailsStakeholders can be unable to explain themselvesStakeholders can disagree with each othersStakeholders can be unwilling to share or lie

Other techniques not presented:Prototypes, user stories, competitors’ analysis, data mining, etc.

Different techniques can be complementary, but come withtheir own costsChoosing the right techniques, applied with the rightamounts, and combined in the right way is a skill by itself

Introduction to Requirements Engineering 27/62Matthieu Vergne [email protected] NAIST

Page 106: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Summary

Requirements elicitation is a hard taskSubject to communication failures

Stakeholders can be unavailableStakeholders can overlook relevant detailsStakeholders can be unable to explain themselvesStakeholders can disagree with each othersStakeholders can be unwilling to share or lie

Other techniques not presented:Prototypes, user stories, competitors’ analysis, data mining, etc.

Different techniques can be complementary, but come withtheir own costsChoosing the right techniques, applied with the rightamounts, and combined in the right way is a skill by itself

Introduction to Requirements Engineering 27/62Matthieu Vergne [email protected] NAIST

Page 107: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Summary

Requirements elicitation is a hard taskSubject to communication failures

Stakeholders can be unavailableStakeholders can overlook relevant detailsStakeholders can be unable to explain themselvesStakeholders can disagree with each othersStakeholders can be unwilling to share or lie

Other techniques not presented:Prototypes, user stories, competitors’ analysis, data mining, etc.

Different techniques can be complementary, but come withtheir own costsChoosing the right techniques, applied with the rightamounts, and combined in the right way is a skill by itself

Introduction to Requirements Engineering 27/62Matthieu Vergne [email protected] NAIST

Page 108: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Summary

Requirements elicitation is a hard taskSubject to communication failures

Stakeholders can be unavailableStakeholders can overlook relevant detailsStakeholders can be unable to explain themselvesStakeholders can disagree with each othersStakeholders can be unwilling to share or lie

Other techniques not presented:Prototypes, user stories, competitors’ analysis, data mining, etc.

Different techniques can be complementary, but come withtheir own costs

Choosing the right techniques, applied with the rightamounts, and combined in the right way is a skill by itself

Introduction to Requirements Engineering 27/62Matthieu Vergne [email protected] NAIST

Page 109: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Elicitation

Summary

Requirements elicitation is a hard taskSubject to communication failures

Stakeholders can be unavailableStakeholders can overlook relevant detailsStakeholders can be unable to explain themselvesStakeholders can disagree with each othersStakeholders can be unwilling to share or lie

Other techniques not presented:Prototypes, user stories, competitors’ analysis, data mining, etc.

Different techniques can be complementary, but come withtheir own costsChoosing the right techniques, applied with the rightamounts, and combined in the right way is a skill by itself

Introduction to Requirements Engineering 27/62Matthieu Vergne [email protected] NAIST

Page 110: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Outline

1 Requirements

2 Requirements Engineering

3 RE ActivitiesRequirements ElicitationRequirements ModellingRequirements AnalysisRequirements PrioritisationRequirements Management

4 Conclusion

Introduction to Requirements Engineering 28/62Matthieu Vergne [email protected] NAIST

Page 111: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Requirements Modelling

Goal: Represent relevant requirements properties.

Main tasks:

Identify domain terminologyStructure concepts and relationships

System, users, goals, interactions, resources, etc.

Select types/levels of formalisation

Introduction to Requirements Engineering 29/62Matthieu Vergne [email protected] NAIST

Page 112: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Requirements Modelling

Goal: Represent relevant requirements properties.

Main tasks:

Identify domain terminologyStructure concepts and relationships

System, users, goals, interactions, resources, etc.

Select types/levels of formalisation

Introduction to Requirements Engineering 29/62Matthieu Vergne [email protected] NAIST

Page 113: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Requirements Modelling

Goal: Represent relevant requirements properties.

Main tasks:Identify domain terminology

Structure concepts and relationshipsSystem, users, goals, interactions, resources, etc.

Select types/levels of formalisation

Introduction to Requirements Engineering 29/62Matthieu Vergne [email protected] NAIST

Page 114: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Requirements Modelling

Goal: Represent relevant requirements properties.

Main tasks:Identify domain terminologyStructure concepts and relationships

System, users, goals, interactions, resources, etc.

Select types/levels of formalisation

Introduction to Requirements Engineering 29/62Matthieu Vergne [email protected] NAIST

Page 115: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Requirements Modelling

Goal: Represent relevant requirements properties.

Main tasks:Identify domain terminologyStructure concepts and relationships

System, users, goals, interactions, resources, etc.

Select types/levels of formalisation

Introduction to Requirements Engineering 29/62Matthieu Vergne [email protected] NAIST

Page 116: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Requirements Modelling

Visual models:

Help to understand/explain the domainHelp to communicate with stakeholdersHelp to build requirements documents

Formal models:

Help to spot errors/inconsistenciesHelp to scale requirementsAllows for automated reasoning

A model can be both visual and formal.

Introduction to Requirements Engineering 30/62Matthieu Vergne [email protected] NAIST

Page 117: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Requirements Modelling

Visual models:Help to understand/explain the domain

Help to communicate with stakeholdersHelp to build requirements documents

Formal models:

Help to spot errors/inconsistenciesHelp to scale requirementsAllows for automated reasoning

A model can be both visual and formal.

Introduction to Requirements Engineering 30/62Matthieu Vergne [email protected] NAIST

Page 118: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Requirements Modelling

Visual models:Help to understand/explain the domainHelp to communicate with stakeholders

Help to build requirements documents

Formal models:

Help to spot errors/inconsistenciesHelp to scale requirementsAllows for automated reasoning

A model can be both visual and formal.

Introduction to Requirements Engineering 30/62Matthieu Vergne [email protected] NAIST

Page 119: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Requirements Modelling

Visual models:Help to understand/explain the domainHelp to communicate with stakeholdersHelp to build requirements documents

Formal models:

Help to spot errors/inconsistenciesHelp to scale requirementsAllows for automated reasoning

A model can be both visual and formal.

Introduction to Requirements Engineering 30/62Matthieu Vergne [email protected] NAIST

Page 120: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Requirements Modelling

Visual models:Help to understand/explain the domainHelp to communicate with stakeholdersHelp to build requirements documents

Formal models:

Help to spot errors/inconsistenciesHelp to scale requirementsAllows for automated reasoning

A model can be both visual and formal.

Introduction to Requirements Engineering 30/62Matthieu Vergne [email protected] NAIST

Page 121: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Requirements Modelling

Visual models:Help to understand/explain the domainHelp to communicate with stakeholdersHelp to build requirements documents

Formal models:Help to spot errors/inconsistencies

Help to scale requirementsAllows for automated reasoning

A model can be both visual and formal.

Introduction to Requirements Engineering 30/62Matthieu Vergne [email protected] NAIST

Page 122: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Requirements Modelling

Visual models:Help to understand/explain the domainHelp to communicate with stakeholdersHelp to build requirements documents

Formal models:Help to spot errors/inconsistenciesHelp to scale requirements

Allows for automated reasoning

A model can be both visual and formal.

Introduction to Requirements Engineering 30/62Matthieu Vergne [email protected] NAIST

Page 123: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Requirements Modelling

Visual models:Help to understand/explain the domainHelp to communicate with stakeholdersHelp to build requirements documents

Formal models:Help to spot errors/inconsistenciesHelp to scale requirementsAllows for automated reasoning

A model can be both visual and formal.

Introduction to Requirements Engineering 30/62Matthieu Vergne [email protected] NAIST

Page 124: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Requirements Modelling

Visual models:Help to understand/explain the domainHelp to communicate with stakeholdersHelp to build requirements documents

Formal models:Help to spot errors/inconsistenciesHelp to scale requirementsAllows for automated reasoning

A model can be both visual and formal.

Introduction to Requirements Engineering 30/62Matthieu Vergne [email protected] NAIST

Page 125: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Modelling Technique - Unified Modelling Language (UML)Goal: Provide a standard way to visualise the design of a softwaresystem.

Pros:Cover several aspects of softwaredesign

e.g. Use case diagrams can modelgoals:

Broadly used standardMany tools available

Cons:Designed for software modelling, not REMiss relevant features for RE

Source: http://www.uml.org, Picture: Kishorekumar 62 (Wikimedia)

Introduction to Requirements Engineering 31/62Matthieu Vergne [email protected] NAIST

Page 126: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Modelling Technique - Unified Modelling Language (UML)Goal: Provide a standard way to visualise the design of a softwaresystem.

Pros:Cover several aspects of softwaredesign

e.g. Use case diagrams can modelgoals:

Broadly used standardMany tools available

Cons:Designed for software modelling, not REMiss relevant features for RE

Source: http://www.uml.org, Picture: Kishorekumar 62 (Wikimedia)

Introduction to Requirements Engineering 31/62Matthieu Vergne [email protected] NAIST

Page 127: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Modelling Technique - Unified Modelling Language (UML)Goal: Provide a standard way to visualise the design of a softwaresystem.

Pros:Cover several aspects of softwaredesign

e.g. Use case diagrams can modelgoals:

Broadly used standardMany tools available

Cons:Designed for software modelling, not REMiss relevant features for RE

Source: http://www.uml.org, Picture: Kishorekumar 62 (Wikimedia)

Introduction to Requirements Engineering 31/62Matthieu Vergne [email protected] NAIST

Page 128: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Modelling Technique - i* (i Star)

Goal: Represent stakeholders’ goals and how they relate to eachother and to the system.

Introduction to Requirements Engineering 32/62Matthieu Vergne [email protected] NAIST

Page 129: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Modelling Technique - i* (i Star)

Goal: Representstakeholders’ goals andhow they relate to eachother and to the system.

Pros: Offer a more comprehensive representation ofstakeholders and their interactions with the system

Actors, goals, tasks, resources, dependencies, etc.

Cons: Limited to general aspects (mitigated by variants)

Source: i* Wiki (http://istar.rwth-aachen.de)

Introduction to Requirements Engineering 32/62Matthieu Vergne [email protected] NAIST

Page 130: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Modelling Technique - i* (i Star)

Goal: Representstakeholders’ goals andhow they relate to eachother and to the system.

Pros: Offer a more comprehensive representation ofstakeholders and their interactions with the system

Actors, goals, tasks, resources, dependencies, etc.

Cons: Limited to general aspects (mitigated by variants)

Source: i* Wiki (http://istar.rwth-aachen.de)

Introduction to Requirements Engineering 32/62Matthieu Vergne [email protected] NAIST

Page 131: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Modelling Technique - i* (i Star)

Goal: Representstakeholders’ goals andhow they relate to eachother and to the system.

Pros: Offer a more comprehensive representation ofstakeholders and their interactions with the system

Actors, goals, tasks, resources, dependencies, etc.

Cons: Limited to general aspects (mitigated by variants)

Source: i* Wiki (http://istar.rwth-aachen.de)

Introduction to Requirements Engineering 32/62Matthieu Vergne [email protected] NAIST

Page 132: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Modelling Technique - Gherkin

Goal: Enforce firm, unambiguous requirements.

Given the car is a <type>When we calculate the priceThen the price should be $<price>

Examples:| type | price || Ferrari | 1,000,000 |

Introduction to Requirements Engineering 33/62Matthieu Vergne [email protected] NAIST

Page 133: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Modelling Technique - Gherkin

Goal: Enforce firm,unambiguousrequirements.

Given the car is a <type>When we calculate the priceThen the price should be $<price>

Examples:| type | price || Ferrari | 1,000,000 |

Pros:Balance formal and informal specificationsFeature acceptance test generation

Behaviour Driven Development, Test Driven Development

Support many natural + programming languages

Cons:Not RE method, tool onlyNot applicable to vague reqs.

Introduction to Requirements Engineering 33/62Matthieu Vergne [email protected] NAIST

Page 134: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Modelling Technique - Gherkin

Goal: Enforce firm,unambiguousrequirements.

Given the car is a <type>When we calculate the priceThen the price should be $<price>

Examples:| type | price || Ferrari | 1,000,000 |

Pros:Balance formal and informal specificationsFeature acceptance test generation

Behaviour Driven Development, Test Driven Development

Support many natural + programming languages

Cons:Not RE method, tool onlyNot applicable to vague reqs.

Introduction to Requirements Engineering 33/62Matthieu Vergne [email protected] NAIST

Page 135: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Modelling Technique - Gherkin

Goal: Enforce firm,unambiguousrequirements.

Given the car is a <type>When we calculate the priceThen the price should be $<price>

Examples:| type | price || Ferrari | 1,000,000 |

Pros:Balance formal and informal specificationsFeature acceptance test generation

Behaviour Driven Development, Test Driven Development

Support many natural + programming languages

Cons:Not RE method, tool onlyNot applicable to vague reqs.

Introduction to Requirements Engineering 33/62Matthieu Vergne [email protected] NAIST

Page 136: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Modelling Technique - Boolean Equations

Goal: Represent requirements as logical formula to satisfy.

customer(Alice)seller(Bob)product(Car)∀c, customer(c) ⇒ ∃(p, s), seller(s) ∧ product(p) ∧ buy(c, p, s)

Introduction to Requirements Engineering 34/62Matthieu Vergne [email protected] NAIST

Page 137: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Modelling Technique - Boolean Equations

Goal: Represent requirements aslogical formula to satisfy.

customer(Alice)seller(Bob)product(Car)∀c, customer(c) ⇒ ∃(p, s), seller(s)∧

product(p) ∧ buy(c, p, s)

Pros:Allow to use formal reasoning (e.g. SAT solvers)Exact meaning (no ambiguity)

Cons:Hard to understand for non-logiciansNot applicable to vague requirements

Introduction to Requirements Engineering 34/62Matthieu Vergne [email protected] NAIST

Page 138: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Modelling Technique - Boolean Equations

Goal: Represent requirements aslogical formula to satisfy.

customer(Alice)seller(Bob)product(Car)∀c, customer(c) ⇒ ∃(p, s), seller(s)∧

product(p) ∧ buy(c, p, s)

Pros:Allow to use formal reasoning (e.g. SAT solvers)Exact meaning (no ambiguity)

Cons:Hard to understand for non-logiciansNot applicable to vague requirements

Introduction to Requirements Engineering 34/62Matthieu Vergne [email protected] NAIST

Page 139: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Modelling Technique - Boolean Equations

Goal: Represent requirements aslogical formula to satisfy.

customer(Alice)seller(Bob)product(Car)∀c, customer(c) ⇒ ∃(p, s), seller(s)∧

product(p) ∧ buy(c, p, s)

Pros:Allow to use formal reasoning (e.g. SAT solvers)Exact meaning (no ambiguity)

Cons:Hard to understand for non-logiciansNot applicable to vague requirements

Introduction to Requirements Engineering 34/62Matthieu Vergne [email protected] NAIST

Page 140: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Summary

Different Models emphasise different properties

Various techniques exist, not only the ones presented:Data Flow Diagram and RML, KAOS, extensions of i* (e.g. Troposfor multi-agents, Nòmos for laws, Zanshin [残心] forself-adaptation), ReqIF & OSLC standards, etc.

Introduction to Requirements Engineering 35/62Matthieu Vergne [email protected] NAIST

Page 141: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Modelling

Summary

Different Models emphasise different propertiesVarious techniques exist, not only the ones presented:

Data Flow Diagram and RML, KAOS, extensions of i* (e.g. Troposfor multi-agents, Nòmos for laws, Zanshin [残心] forself-adaptation), ReqIF & OSLC standards, etc.

Introduction to Requirements Engineering 35/62Matthieu Vergne [email protected] NAIST

Page 142: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Outline

1 Requirements

2 Requirements Engineering

3 RE ActivitiesRequirements ElicitationRequirements ModellingRequirements AnalysisRequirements PrioritisationRequirements Management

4 Conclusion

Introduction to Requirements Engineering 36/62Matthieu Vergne [email protected] NAIST

Page 143: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Requirements Analysis

Goal: Validate requirements through their model.

Main tasks:

Identify & fix inconsistenciesIdentify & fix incompletenessIdentify & fix ambiguitiesRisk analysisEvaluate alternatives

Introduction to Requirements Engineering 37/62Matthieu Vergne [email protected] NAIST

Page 144: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Requirements Analysis

Goal: Validate requirements through their model.

Main tasks:

Identify & fix inconsistenciesIdentify & fix incompletenessIdentify & fix ambiguitiesRisk analysisEvaluate alternatives

Introduction to Requirements Engineering 37/62Matthieu Vergne [email protected] NAIST

Page 145: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Requirements Analysis

Goal: Validate requirements through their model.

Main tasks:Identify & fix inconsistencies

Identify & fix incompletenessIdentify & fix ambiguitiesRisk analysisEvaluate alternatives

Introduction to Requirements Engineering 37/62Matthieu Vergne [email protected] NAIST

Page 146: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Requirements Analysis

Goal: Validate requirements through their model.

Main tasks:Identify & fix inconsistenciesIdentify & fix incompleteness

Identify & fix ambiguitiesRisk analysisEvaluate alternatives

Introduction to Requirements Engineering 37/62Matthieu Vergne [email protected] NAIST

Page 147: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Requirements Analysis

Goal: Validate requirements through their model.

Main tasks:Identify & fix inconsistenciesIdentify & fix incompletenessIdentify & fix ambiguities

Risk analysisEvaluate alternatives

Introduction to Requirements Engineering 37/62Matthieu Vergne [email protected] NAIST

Page 148: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Requirements Analysis

Goal: Validate requirements through their model.

Main tasks:Identify & fix inconsistenciesIdentify & fix incompletenessIdentify & fix ambiguitiesRisk analysis

Evaluate alternatives

Introduction to Requirements Engineering 37/62Matthieu Vergne [email protected] NAIST

Page 149: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Requirements Analysis

Goal: Validate requirements through their model.

Main tasks:Identify & fix inconsistenciesIdentify & fix incompletenessIdentify & fix ambiguitiesRisk analysisEvaluate alternatives

Introduction to Requirements Engineering 37/62Matthieu Vergne [email protected] NAIST

Page 150: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Requirements Analysis

Informal analysis:

Fit with natural language and visual modelsExploit the flexibility of human reasoningGood for qualitative analysisHelp for formal modelling/analysis

Formal analysis:

Fit with formal modelsExploit the exactitude of formal reasoningGood for quantitative analysis

Introduction to Requirements Engineering 38/62Matthieu Vergne [email protected] NAIST

Page 151: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Requirements Analysis

Informal analysis:Fit with natural language and visual models

Exploit the flexibility of human reasoningGood for qualitative analysisHelp for formal modelling/analysis

Formal analysis:

Fit with formal modelsExploit the exactitude of formal reasoningGood for quantitative analysis

Introduction to Requirements Engineering 38/62Matthieu Vergne [email protected] NAIST

Page 152: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Requirements Analysis

Informal analysis:Fit with natural language and visual modelsExploit the flexibility of human reasoning

Good for qualitative analysisHelp for formal modelling/analysis

Formal analysis:

Fit with formal modelsExploit the exactitude of formal reasoningGood for quantitative analysis

Introduction to Requirements Engineering 38/62Matthieu Vergne [email protected] NAIST

Page 153: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Requirements Analysis

Informal analysis:Fit with natural language and visual modelsExploit the flexibility of human reasoningGood for qualitative analysis

Help for formal modelling/analysis

Formal analysis:

Fit with formal modelsExploit the exactitude of formal reasoningGood for quantitative analysis

Introduction to Requirements Engineering 38/62Matthieu Vergne [email protected] NAIST

Page 154: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Requirements Analysis

Informal analysis:Fit with natural language and visual modelsExploit the flexibility of human reasoningGood for qualitative analysisHelp for formal modelling/analysis

Formal analysis:

Fit with formal modelsExploit the exactitude of formal reasoningGood for quantitative analysis

Introduction to Requirements Engineering 38/62Matthieu Vergne [email protected] NAIST

Page 155: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Requirements Analysis

Informal analysis:Fit with natural language and visual modelsExploit the flexibility of human reasoningGood for qualitative analysisHelp for formal modelling/analysis

Formal analysis:

Fit with formal modelsExploit the exactitude of formal reasoningGood for quantitative analysis

Introduction to Requirements Engineering 38/62Matthieu Vergne [email protected] NAIST

Page 156: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Requirements Analysis

Informal analysis:Fit with natural language and visual modelsExploit the flexibility of human reasoningGood for qualitative analysisHelp for formal modelling/analysis

Formal analysis:Fit with formal models

Exploit the exactitude of formal reasoningGood for quantitative analysis

Introduction to Requirements Engineering 38/62Matthieu Vergne [email protected] NAIST

Page 157: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Requirements Analysis

Informal analysis:Fit with natural language and visual modelsExploit the flexibility of human reasoningGood for qualitative analysisHelp for formal modelling/analysis

Formal analysis:Fit with formal modelsExploit the exactitude of formal reasoning

Good for quantitative analysis

Introduction to Requirements Engineering 38/62Matthieu Vergne [email protected] NAIST

Page 158: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Requirements Analysis

Informal analysis:Fit with natural language and visual modelsExploit the flexibility of human reasoningGood for qualitative analysisHelp for formal modelling/analysis

Formal analysis:Fit with formal modelsExploit the exactitude of formal reasoningGood for quantitative analysis

Introduction to Requirements Engineering 38/62Matthieu Vergne [email protected] NAIST

Page 159: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Analysis Technique - Manual Analysis

Goal: Rely on stakeholders to analyse and refine the models.

Pros:Build on expertise of the stakeholdersRequirements engineer acts as a facilitatorGood when the models are still small

Cons:Lack systematicity (no guarantee of success)Hard to maintain when the models become complex

Introduction to Requirements Engineering 39/62Matthieu Vergne [email protected] NAIST

Page 160: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Analysis Technique - Manual Analysis

Goal: Rely on stakeholders to analyse and refine the models.

Pros:Build on expertise of the stakeholdersRequirements engineer acts as a facilitatorGood when the models are still small

Cons:Lack systematicity (no guarantee of success)Hard to maintain when the models become complex

Introduction to Requirements Engineering 39/62Matthieu Vergne [email protected] NAIST

Page 161: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Analysis Technique - Manual Analysis

Goal: Rely on stakeholders to analyse and refine the models.

Pros:Build on expertise of the stakeholdersRequirements engineer acts as a facilitatorGood when the models are still small

Cons:Lack systematicity (no guarantee of success)Hard to maintain when the models become complex

Introduction to Requirements Engineering 39/62Matthieu Vergne [email protected] NAIST

Page 162: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Analysis Technique - Formal TroposGoal: Translate goal-models into logical formulae for formalanalysis.

Introduction to Requirements Engineering 40/62Matthieu Vergne [email protected] NAIST

Page 163: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Analysis Technique - Formal Tropos

Goal: Translate goal-models intological formulae for formalanalysis.

Pros:Consistency proven or conflicts spottedInteresting properties can be proven tooCan play with the model to analyse different scenarios

Cons:Not applicable to vague requirementsFormula hard to understand for non-logicians

Pictures: reworked from Anna Perini

Introduction to Requirements Engineering 40/62Matthieu Vergne [email protected] NAIST

Page 164: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Analysis Technique - Formal Tropos

Goal: Translate goal-models intological formulae for formalanalysis.

Pros:Consistency proven or conflicts spottedInteresting properties can be proven tooCan play with the model to analyse different scenarios

Cons:Not applicable to vague requirementsFormula hard to understand for non-logicians

Pictures: reworked from Anna Perini

Introduction to Requirements Engineering 40/62Matthieu Vergne [email protected] NAIST

Page 165: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Analysis Technique - Formal Tropos

Goal: Translate goal-models intological formulae for formalanalysis.

Pros:Consistency proven or conflicts spottedInteresting properties can be proven tooCan play with the model to analyse different scenarios

Cons:Not applicable to vague requirementsFormula hard to understand for non-logicians

Pictures: reworked from Anna Perini

Introduction to Requirements Engineering 40/62Matthieu Vergne [email protected] NAIST

Page 166: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Summary

Analysis depends on models

Carefully choose models for supporting analysis

Introduction to Requirements Engineering 41/62Matthieu Vergne [email protected] NAIST

Page 167: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Analysis

Summary

Analysis depends on modelsCarefully choose models for supporting analysis

Introduction to Requirements Engineering 41/62Matthieu Vergne [email protected] NAIST

Page 168: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Outline

1 Requirements

2 Requirements Engineering

3 RE ActivitiesRequirements ElicitationRequirements ModellingRequirements AnalysisRequirements PrioritisationRequirements Management

4 Conclusion

Introduction to Requirements Engineering 42/62Matthieu Vergne [email protected] NAIST

Page 169: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements Prioritisation

Goal: Select the most relevant requirements

Main tasks:

Identify prioritisation criteria (e.g. cost/benefice, risks,popularity)Identify constraints (e.g. deadlines, requirementsdependencies)Order requirements by priorityFilter out unwanted requirements

Introduction to Requirements Engineering 43/62Matthieu Vergne [email protected] NAIST

Page 170: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements Prioritisation

Goal: Select the most relevant requirements

Main tasks:

Identify prioritisation criteria (e.g. cost/benefice, risks,popularity)Identify constraints (e.g. deadlines, requirementsdependencies)Order requirements by priorityFilter out unwanted requirements

Introduction to Requirements Engineering 43/62Matthieu Vergne [email protected] NAIST

Page 171: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements Prioritisation

Goal: Select the most relevant requirements

Main tasks:Identify prioritisation criteria (e.g. cost/benefice, risks,popularity)

Identify constraints (e.g. deadlines, requirementsdependencies)Order requirements by priorityFilter out unwanted requirements

Introduction to Requirements Engineering 43/62Matthieu Vergne [email protected] NAIST

Page 172: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements Prioritisation

Goal: Select the most relevant requirements

Main tasks:Identify prioritisation criteria (e.g. cost/benefice, risks,popularity)Identify constraints (e.g. deadlines, requirementsdependencies)

Order requirements by priorityFilter out unwanted requirements

Introduction to Requirements Engineering 43/62Matthieu Vergne [email protected] NAIST

Page 173: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements Prioritisation

Goal: Select the most relevant requirements

Main tasks:Identify prioritisation criteria (e.g. cost/benefice, risks,popularity)Identify constraints (e.g. deadlines, requirementsdependencies)Order requirements by priority

Filter out unwanted requirements

Introduction to Requirements Engineering 43/62Matthieu Vergne [email protected] NAIST

Page 174: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements Prioritisation

Goal: Select the most relevant requirements

Main tasks:Identify prioritisation criteria (e.g. cost/benefice, risks,popularity)Identify constraints (e.g. deadlines, requirementsdependencies)Order requirements by priorityFilter out unwanted requirements

Introduction to Requirements Engineering 43/62Matthieu Vergne [email protected] NAIST

Page 175: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements Prioritisation

Mono vs. multi-objectives:

Mono: All criteria are reduced to 1, usually with a weightedaverage.Multi: Each criterion is evaluated separately, the bestsolutions form a Pareto front

Human vs. automated decision:

Human: Exploit qualitative judgement and expertise ofdecision makersAutomated: Exploit formalised quantitative evaluationHybrid: Automated for preliminary + human for final decision

Introduction to Requirements Engineering 44/62Matthieu Vergne [email protected] NAIST

Page 176: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements Prioritisation

Mono vs. multi-objectives:Mono: All criteria are reduced to 1, usually with a weightedaverage.

Multi: Each criterion is evaluated separately, the bestsolutions form a Pareto front

Human vs. automated decision:

Human: Exploit qualitative judgement and expertise ofdecision makersAutomated: Exploit formalised quantitative evaluationHybrid: Automated for preliminary + human for final decision

Introduction to Requirements Engineering 44/62Matthieu Vergne [email protected] NAIST

Page 177: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements Prioritisation

Mono vs. multi-objectives:Mono: All criteria are reduced to 1, usually with a weightedaverage.Multi: Each criterion is evaluated separately, the bestsolutions form a Pareto front

Human vs. automated decision:

Human: Exploit qualitative judgement and expertise ofdecision makersAutomated: Exploit formalised quantitative evaluationHybrid: Automated for preliminary + human for final decision

Introduction to Requirements Engineering 44/62Matthieu Vergne [email protected] NAIST

Page 178: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements Prioritisation

Mono vs. multi-objectives:Mono: All criteria are reduced to 1, usually with a weightedaverage.Multi: Each criterion is evaluated separately, the bestsolutions form a Pareto front

Human vs. automated decision:

Human: Exploit qualitative judgement and expertise ofdecision makersAutomated: Exploit formalised quantitative evaluationHybrid: Automated for preliminary + human for final decision

Introduction to Requirements Engineering 44/62Matthieu Vergne [email protected] NAIST

Page 179: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements Prioritisation

Mono vs. multi-objectives:Mono: All criteria are reduced to 1, usually with a weightedaverage.Multi: Each criterion is evaluated separately, the bestsolutions form a Pareto front

Human vs. automated decision:Human: Exploit qualitative judgement and expertise ofdecision makers

Automated: Exploit formalised quantitative evaluationHybrid: Automated for preliminary + human for final decision

Introduction to Requirements Engineering 44/62Matthieu Vergne [email protected] NAIST

Page 180: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements Prioritisation

Mono vs. multi-objectives:Mono: All criteria are reduced to 1, usually with a weightedaverage.Multi: Each criterion is evaluated separately, the bestsolutions form a Pareto front

Human vs. automated decision:Human: Exploit qualitative judgement and expertise ofdecision makersAutomated: Exploit formalised quantitative evaluation

Hybrid: Automated for preliminary + human for final decision

Introduction to Requirements Engineering 44/62Matthieu Vergne [email protected] NAIST

Page 181: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements Prioritisation

Mono vs. multi-objectives:Mono: All criteria are reduced to 1, usually with a weightedaverage.Multi: Each criterion is evaluated separately, the bestsolutions form a Pareto front

Human vs. automated decision:Human: Exploit qualitative judgement and expertise ofdecision makersAutomated: Exploit formalised quantitative evaluationHybrid: Automated for preliminary + human for final decision

Introduction to Requirements Engineering 44/62Matthieu Vergne [email protected] NAIST

Page 182: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements PrioritisationPairwise vs. order:

Pairwise: Local decision comparing successively pairs ofrequirementsOrder: Global decision

Various methods:

Fully manual: Rely on stakeholders expertise.Machine learning: Evaluate new solutions based on alreadyknown ones.Search algorithms: Iteratively improve a (set of) solution(s)evaluated through a (set of) fitness function(s).Constraints satisfaction: Find solution(s) satisfying Booleanformulae.

Introduction to Requirements Engineering 45/62Matthieu Vergne [email protected] NAIST

Page 183: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements PrioritisationPairwise vs. order:

Pairwise: Local decision comparing successively pairs ofrequirements

Order: Global decision

Various methods:

Fully manual: Rely on stakeholders expertise.Machine learning: Evaluate new solutions based on alreadyknown ones.Search algorithms: Iteratively improve a (set of) solution(s)evaluated through a (set of) fitness function(s).Constraints satisfaction: Find solution(s) satisfying Booleanformulae.

Introduction to Requirements Engineering 45/62Matthieu Vergne [email protected] NAIST

Page 184: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements PrioritisationPairwise vs. order:

Pairwise: Local decision comparing successively pairs ofrequirementsOrder: Global decision

Various methods:

Fully manual: Rely on stakeholders expertise.Machine learning: Evaluate new solutions based on alreadyknown ones.Search algorithms: Iteratively improve a (set of) solution(s)evaluated through a (set of) fitness function(s).Constraints satisfaction: Find solution(s) satisfying Booleanformulae.

Introduction to Requirements Engineering 45/62Matthieu Vergne [email protected] NAIST

Page 185: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements PrioritisationPairwise vs. order:

Pairwise: Local decision comparing successively pairs ofrequirementsOrder: Global decision

Various methods:

Fully manual: Rely on stakeholders expertise.Machine learning: Evaluate new solutions based on alreadyknown ones.Search algorithms: Iteratively improve a (set of) solution(s)evaluated through a (set of) fitness function(s).Constraints satisfaction: Find solution(s) satisfying Booleanformulae.

Introduction to Requirements Engineering 45/62Matthieu Vergne [email protected] NAIST

Page 186: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements PrioritisationPairwise vs. order:

Pairwise: Local decision comparing successively pairs ofrequirementsOrder: Global decision

Various methods:Fully manual: Rely on stakeholders expertise.

Machine learning: Evaluate new solutions based on alreadyknown ones.Search algorithms: Iteratively improve a (set of) solution(s)evaluated through a (set of) fitness function(s).Constraints satisfaction: Find solution(s) satisfying Booleanformulae.

Introduction to Requirements Engineering 45/62Matthieu Vergne [email protected] NAIST

Page 187: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements PrioritisationPairwise vs. order:

Pairwise: Local decision comparing successively pairs ofrequirementsOrder: Global decision

Various methods:Fully manual: Rely on stakeholders expertise.Machine learning: Evaluate new solutions based on alreadyknown ones.

Search algorithms: Iteratively improve a (set of) solution(s)evaluated through a (set of) fitness function(s).Constraints satisfaction: Find solution(s) satisfying Booleanformulae.

Introduction to Requirements Engineering 45/62Matthieu Vergne [email protected] NAIST

Page 188: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements PrioritisationPairwise vs. order:

Pairwise: Local decision comparing successively pairs ofrequirementsOrder: Global decision

Various methods:Fully manual: Rely on stakeholders expertise.Machine learning: Evaluate new solutions based on alreadyknown ones.Search algorithms: Iteratively improve a (set of) solution(s)evaluated through a (set of) fitness function(s).

Constraints satisfaction: Find solution(s) satisfying Booleanformulae.

Introduction to Requirements Engineering 45/62Matthieu Vergne [email protected] NAIST

Page 189: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Requirements PrioritisationPairwise vs. order:

Pairwise: Local decision comparing successively pairs ofrequirementsOrder: Global decision

Various methods:Fully manual: Rely on stakeholders expertise.Machine learning: Evaluate new solutions based on alreadyknown ones.Search algorithms: Iteratively improve a (set of) solution(s)evaluated through a (set of) fitness function(s).Constraints satisfaction: Find solution(s) satisfying Booleanformulae.

Introduction to Requirements Engineering 45/62Matthieu Vergne [email protected] NAIST

Page 190: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Prioritisation Technique - MoSCoW Prioritisation

Goal: Have stakeholders rank all requirements in 4 levels – musthave, should have, could have, and won’t have.

Pros:Levels are simple to understand for stakeholdersLevels focus on practical priorities

Cons:The ranking is extremely scarce for many requirementsLack of rationale behind each choice

Introduction to Requirements Engineering 46/62Matthieu Vergne [email protected] NAIST

Page 191: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Prioritisation Technique - MoSCoW Prioritisation

Goal: Have stakeholders rank all requirements in 4 levels – musthave, should have, could have, and won’t have.

Pros:Levels are simple to understand for stakeholdersLevels focus on practical priorities

Cons:The ranking is extremely scarce for many requirementsLack of rationale behind each choice

Introduction to Requirements Engineering 46/62Matthieu Vergne [email protected] NAIST

Page 192: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Prioritisation Technique - MoSCoW Prioritisation

Goal: Have stakeholders rank all requirements in 4 levels – musthave, should have, could have, and won’t have.

Pros:Levels are simple to understand for stakeholdersLevels focus on practical priorities

Cons:The ranking is extremely scarce for many requirementsLack of rationale behind each choice

Introduction to Requirements Engineering 46/62Matthieu Vergne [email protected] NAIST

Page 193: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Prioritisation Technique - Bubble Sort

Goal: Iteratively improve global order by swapping pairs ofrequirements.

Pros:Simple to implementSimple to understand

Cons:Require a lot of pair comparisons (O(n2))No way to tell that a requirement is “far” below/aboveanother

Introduction to Requirements Engineering 47/62Matthieu Vergne [email protected] NAIST

Page 194: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Prioritisation Technique - Bubble Sort

Goal: Iteratively improve global order by swapping pairs ofrequirements.

Pros:Simple to implementSimple to understand

Cons:Require a lot of pair comparisons (O(n2))No way to tell that a requirement is “far” below/aboveanother

Introduction to Requirements Engineering 47/62Matthieu Vergne [email protected] NAIST

Page 195: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Prioritisation Technique - Bubble Sort

Goal: Iteratively improve global order by swapping pairs ofrequirements.

Pros:Simple to implementSimple to understand

Cons:Require a lot of pair comparisons (O(n2))No way to tell that a requirement is “far” below/aboveanother

Introduction to Requirements Engineering 47/62Matthieu Vergne [email protected] NAIST

Page 196: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Prioritisation Technique - Analytic Hierarchy Process(AHP)

Goal: Build a matrix of requirements comparisons to infer theirglobal order.

Pros:Comparisons are weighted, thus more informativeEstimations of the missing values can be computed to askonly the most relevant comparisons

Cons:Although improved, remain costly in terms of human effort.

Introduction to Requirements Engineering 48/62Matthieu Vergne [email protected] NAIST

Page 197: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Prioritisation Technique - Analytic Hierarchy Process(AHP)

Goal: Build a matrix of requirements comparisons to infer theirglobal order.

Pros:Comparisons are weighted, thus more informativeEstimations of the missing values can be computed to askonly the most relevant comparisons

Cons:Although improved, remain costly in terms of human effort.

Introduction to Requirements Engineering 48/62Matthieu Vergne [email protected] NAIST

Page 198: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Prioritisation Technique - Analytic Hierarchy Process(AHP)

Goal: Build a matrix of requirements comparisons to infer theirglobal order.

Pros:Comparisons are weighted, thus more informativeEstimations of the missing values can be computed to askonly the most relevant comparisons

Cons:Although improved, remain costly in terms of human effort.

Introduction to Requirements Engineering 48/62Matthieu Vergne [email protected] NAIST

Page 199: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Prioritisation Technique - Case Based Ranking (CBRank)

Goal: Learn from previous comparisons to infer remainingcomparisons.

Pros:Machine learning reduces human effortTend to be more efficient than AHP (Avesani et al. [2005])

Cons:Critics on learning with anecdotal evidences

Introduction to Requirements Engineering 49/62Matthieu Vergne [email protected] NAIST

Page 200: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Prioritisation Technique - Case Based Ranking (CBRank)

Goal: Learn from previous comparisons to infer remainingcomparisons.

Pros:Machine learning reduces human effortTend to be more efficient than AHP (Avesani et al. [2005])

Cons:Critics on learning with anecdotal evidences

Introduction to Requirements Engineering 49/62Matthieu Vergne [email protected] NAIST

Page 201: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Prioritisation Technique - Case Based Ranking (CBRank)

Goal: Learn from previous comparisons to infer remainingcomparisons.

Pros:Machine learning reduces human effortTend to be more efficient than AHP (Avesani et al. [2005])

Cons:Critics on learning with anecdotal evidences

Introduction to Requirements Engineering 49/62Matthieu Vergne [email protected] NAIST

Page 202: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Prioritisation Technique - Interactive Genetic Algorithms

Goal: Iteratively improve a set of rankings, by recombinations andrandom mutations, to comply with pre-determined + elicitedconstraints.

Introduction to Requirements Engineering 50/62Matthieu Vergne [email protected] NAIST

Page 203: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Prioritisation Technique - Interactive Genetic AlgorithmsGoal: Iteratively improve a set ofrankings, by recombinations andrandom mutations, to comply withpre-determined + elicited constraints.

Pros:Recombinations and mutations motivated by Darwin evolutiontheoryThe resulting rankings can provide a various set of goodalternatives

Cons:Solutions can converge to local optima onlySet of solutions more costly than single one

Pictures: reworked from Angelo Susi

Introduction to Requirements Engineering 50/62Matthieu Vergne [email protected] NAIST

Page 204: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Prioritisation Technique - Interactive Genetic AlgorithmsGoal: Iteratively improve a set ofrankings, by recombinations andrandom mutations, to comply withpre-determined + elicited constraints.Pros:

Recombinations and mutations motivated by Darwin evolutiontheoryThe resulting rankings can provide a various set of goodalternatives

Cons:Solutions can converge to local optima onlySet of solutions more costly than single one

Pictures: reworked from Angelo Susi

Introduction to Requirements Engineering 50/62Matthieu Vergne [email protected] NAIST

Page 205: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Prioritisation Technique - Interactive Genetic AlgorithmsGoal: Iteratively improve a set ofrankings, by recombinations andrandom mutations, to comply withpre-determined + elicited constraints.Pros:

Recombinations and mutations motivated by Darwin evolutiontheoryThe resulting rankings can provide a various set of goodalternatives

Cons:Solutions can converge to local optima onlySet of solutions more costly than single one

Pictures: reworked from Angelo Susi

Introduction to Requirements Engineering 50/62Matthieu Vergne [email protected] NAIST

Page 206: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Summary

Requirements prioritisation usually involves human qualitativejudgement

Human efforts makes scalability problems common to allapproachesOther techniques exist

Cost-value approach, Binary Search Tree, Planning Game, etc.

Introduction to Requirements Engineering 51/62Matthieu Vergne [email protected] NAIST

Page 207: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Summary

Requirements prioritisation usually involves human qualitativejudgementHuman efforts makes scalability problems common to allapproaches

Other techniques existCost-value approach, Binary Search Tree, Planning Game, etc.

Introduction to Requirements Engineering 51/62Matthieu Vergne [email protected] NAIST

Page 208: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Prioritisation

Summary

Requirements prioritisation usually involves human qualitativejudgementHuman efforts makes scalability problems common to allapproachesOther techniques exist

Cost-value approach, Binary Search Tree, Planning Game, etc.

Introduction to Requirements Engineering 51/62Matthieu Vergne [email protected] NAIST

Page 209: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Outline

1 Requirements

2 Requirements Engineering

3 RE ActivitiesRequirements ElicitationRequirements ModellingRequirements AnalysisRequirements PrioritisationRequirements Management

4 Conclusion

Introduction to Requirements Engineering 52/62Matthieu Vergne [email protected] NAIST

Page 210: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Requirements Management

Goal: Ensure requirements access and update

Main tasks:

Store and retrieve requirementsRelate requirements to other artefactsSupport updates of requirements and their relations

Introduction to Requirements Engineering 53/62Matthieu Vergne [email protected] NAIST

Page 211: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Requirements Management

Goal: Ensure requirements access and update

Main tasks:

Store and retrieve requirementsRelate requirements to other artefactsSupport updates of requirements and their relations

Introduction to Requirements Engineering 53/62Matthieu Vergne [email protected] NAIST

Page 212: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Requirements Management

Goal: Ensure requirements access and update

Main tasks:Store and retrieve requirements

Relate requirements to other artefactsSupport updates of requirements and their relations

Introduction to Requirements Engineering 53/62Matthieu Vergne [email protected] NAIST

Page 213: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Requirements Management

Goal: Ensure requirements access and update

Main tasks:Store and retrieve requirementsRelate requirements to other artefacts

Support updates of requirements and their relations

Introduction to Requirements Engineering 53/62Matthieu Vergne [email protected] NAIST

Page 214: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Requirements Management

Goal: Ensure requirements access and update

Main tasks:Store and retrieve requirementsRelate requirements to other artefactsSupport updates of requirements and their relations

Introduction to Requirements Engineering 53/62Matthieu Vergne [email protected] NAIST

Page 215: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Management Technique - Dynamic Renumbering

Goal: Identify requirements from their location in requirementdocuments.

Pros:Align automatic and manual retrievalProvide implicit classification of requirements

Cons:Hard to manage without automated tools

Introduction to Requirements Engineering 54/62Matthieu Vergne [email protected] NAIST

Page 216: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Management Technique - Dynamic Renumbering

Goal: Identify requirements from their location in requirementdocuments.

Pros:Align automatic and manual retrievalProvide implicit classification of requirements

Cons:Hard to manage without automated tools

Introduction to Requirements Engineering 54/62Matthieu Vergne [email protected] NAIST

Page 217: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Management Technique - Dynamic Renumbering

Goal: Identify requirements from their location in requirementdocuments.

Pros:Align automatic and manual retrievalProvide implicit classification of requirements

Cons:Hard to manage without automated tools

Introduction to Requirements Engineering 54/62Matthieu Vergne [email protected] NAIST

Page 218: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Management Technique - Database Record Identification

Goal: Exploit IDs in database.

Pros:Constant, no need to updateNaturally generated by automated tools

Cons:Hard to generate meaningful document from automaticallygenerated indexes

Introduction to Requirements Engineering 55/62Matthieu Vergne [email protected] NAIST

Page 219: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Management Technique - Database Record Identification

Goal: Exploit IDs in database.

Pros:Constant, no need to updateNaturally generated by automated tools

Cons:Hard to generate meaningful document from automaticallygenerated indexes

Introduction to Requirements Engineering 55/62Matthieu Vergne [email protected] NAIST

Page 220: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Management Technique - Database Record Identification

Goal: Exploit IDs in database.

Pros:Constant, no need to updateNaturally generated by automated tools

Cons:Hard to generate meaningful document from automaticallygenerated indexes

Introduction to Requirements Engineering 55/62Matthieu Vergne [email protected] NAIST

Page 221: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Management Technique - Traceability

Goal: Link requirements to other requirements and derivedresources.

Introduction to Requirements Engineering 56/62Matthieu Vergne [email protected] NAIST

Page 222: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Management Technique - Traceability

Goal: Link requirements to otherrequirements and derivedresources.

Pros:Help to update related requirements (horizontal traceability)

Requirements dependencies, derived requirementsHelp update other resources (vertical traceability)

Interviews → requirements → tests & docsCons:

Complexity grows with number of requirementsHard to handle without automated tools (e.g. IBM RationalDOORS)

Picture: IBM Rational DOORS (https://www.doorsng.com/)

Introduction to Requirements Engineering 56/62Matthieu Vergne [email protected] NAIST

Page 223: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Management Technique - Traceability

Goal: Link requirements to otherrequirements and derivedresources.

Pros:Help to update related requirements (horizontal traceability)

Requirements dependencies, derived requirementsHelp update other resources (vertical traceability)

Interviews → requirements → tests & docs

Cons:Complexity grows with number of requirementsHard to handle without automated tools (e.g. IBM RationalDOORS)

Picture: IBM Rational DOORS (https://www.doorsng.com/)

Introduction to Requirements Engineering 56/62Matthieu Vergne [email protected] NAIST

Page 224: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Management Technique - Traceability

Goal: Link requirements to otherrequirements and derivedresources.

Pros:Help to update related requirements (horizontal traceability)

Requirements dependencies, derived requirementsHelp update other resources (vertical traceability)

Interviews → requirements → tests & docsCons:

Complexity grows with number of requirementsHard to handle without automated tools (e.g. IBM RationalDOORS)

Picture: IBM Rational DOORS (https://www.doorsng.com/)

Introduction to Requirements Engineering 56/62Matthieu Vergne [email protected] NAIST

Page 225: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Summary

Usually simple storage and retrieval.

May start with spreadsheets when simpleQuickly need advanced tools for deep management

Introduction to Requirements Engineering 57/62Matthieu Vergne [email protected] NAIST

Page 226: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Summary

Usually simple storage and retrieval.May start with spreadsheets when simple

Quickly need advanced tools for deep management

Introduction to Requirements Engineering 57/62Matthieu Vergne [email protected] NAIST

Page 227: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Requirements Management

Summary

Usually simple storage and retrieval.May start with spreadsheets when simpleQuickly need advanced tools for deep management

Introduction to Requirements Engineering 57/62Matthieu Vergne [email protected] NAIST

Page 228: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Outline

1 Requirements

2 Requirements Engineering

3 RE ActivitiesRequirements ElicitationRequirements ModellingRequirements AnalysisRequirements PrioritisationRequirements Management

4 Conclusion

Introduction to Requirements Engineering 58/62Matthieu Vergne [email protected] NAIST

Page 229: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Summary

We have seen:What is a requirement

What is Requirements Engineering (RE)RE and software development are tightly relatedVarious RE techniques for different tasks

Introduction to Requirements Engineering 59/62Matthieu Vergne [email protected] NAIST

Page 230: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Summary

We have seen:What is a requirementWhat is Requirements Engineering (RE)

RE and software development are tightly relatedVarious RE techniques for different tasks

Introduction to Requirements Engineering 59/62Matthieu Vergne [email protected] NAIST

Page 231: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Summary

We have seen:What is a requirementWhat is Requirements Engineering (RE)RE and software development are tightly related

Various RE techniques for different tasks

Introduction to Requirements Engineering 59/62Matthieu Vergne [email protected] NAIST

Page 232: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Summary

We have seen:What is a requirementWhat is Requirements Engineering (RE)RE and software development are tightly relatedVarious RE techniques for different tasks

Introduction to Requirements Engineering 59/62Matthieu Vergne [email protected] NAIST

Page 233: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

How to Make a Tree Swing?

By having everyone agree (on the requirements)!

Picture from projectcartoon.comIntroduction to Requirements Engineering 60/62Matthieu Vergne [email protected] NAIST

Page 234: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

How to Make a Tree Swing?

By having everyone agree (on the requirements)!Picture from projectcartoon.comIntroduction to Requirements Engineering 60/62

Matthieu Vergne [email protected] NAIST

Page 235: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Going Further

Books about RE:Requirements engineering: fundamentals, principles, andtechniques (Pohl [2010])

Teaching material:https: // re-buch. de/ en/ teaching-material/

Requirements engineering: from system goals to UML modelsand software specifications (Lamsweerde [2009])

Introduction to Requirements Engineering 61/62Matthieu Vergne [email protected] NAIST

Page 236: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

Requirements Requirements Engineering RE Activities Conclusion

Thanks for your attention.

Questions?

Introduction to Requirements Engineering 62/62Matthieu Vergne [email protected] NAIST

Page 237: Introduction to Requirements Engineering · Requirements RequirementsEngineering REActivities Conclusion ManyChallenges Whatisneeded(requirementper se) Couldbeambiguous("track"insteadof"register")

References

P. Avesani, C. Bazzanella, A. Perini, and A. Susi. Facing Scalability Issues inRequirements Prioritization with Machine Learning Techniques. In Proceedings ofthe 13th IEEE International Conference on Requirements Engineering, pages297–306, Washington, DC, USA, 2005. IEEE Computer Society. ISBN0-7695-2425-7. doi: 10.1109/RE.2005.30. URLhttp://dl.acm.org/citation.cfm?id=1099549.1100639.

P. Bourque, R. E. Fairley, and IEEE Computer Society. Guide to the softwareengineering body of knowledge. 2014. URLhttp://www.computer.org/portal/web/swebok/swebokv3. OCLC: 926093687.

M. Glinz. On Non-Functional Requirements. pages 21–26. IEEE, Oct. 2007. ISBN978-0-7695-2935-6. doi: 10.1109/RE.2007.45. URLhttp://ieeexplore.ieee.org/document/4384163/.

IEEE Standards Board. IEEE standard glossary of software engineering terminology.Institute of Electrical and Electronics Engineers, New York, N.Y, 1990. ISBN978-1-55937-067-7.

A. v. Lamsweerde. Requirements engineering : from system goals to UML models andsoftware specifications. Wiley ; John Wiley [distributor], Hoboken, N.J.; Chichester,2009. ISBN 978-0-470-01270-3 0-470-01270-6. URLhttp://eu.wiley.com/WileyCDA/WileyTitle/productCd-EHEP000863.html.

K. Pohl. Requirements engineering: fundamentals, principles, and techniques.Springer, Heidelberg ; New York, 2010. ISBN 978-3-642-12577-5. OCLC:ocn642291082.

Introduction to Requirements Engineering 62/62Matthieu Vergne [email protected] NAIST