22
Agile Requirements Engineering

Agile Requirements Engineering by Abdulkerim Corbo

Embed Size (px)

Citation preview

Page 1: Agile Requirements Engineering by Abdulkerim Corbo

Agile Requirements Engineering

Page 2: Agile Requirements Engineering by Abdulkerim Corbo

About lecturer

Abdulkerim Corbo• Quality Assurance Engineer and Consultant• Degree in Information Systems• Certified tester (CTFL by ISTQB)• Certified Requirements Engineer (CPRE by IREB)

Page 3: Agile Requirements Engineering by Abdulkerim Corbo

How to become CPRE

• IREB-recognized CPRE training providers• IREB CPRE-FL Syllabus• Book: Requirements Engineering Fundamentals• IREB CPRE-FL practice exam

Page 4: Agile Requirements Engineering by Abdulkerim Corbo

Requirement

Definition according to IEEE 610.12-19901. A condition or capability needed by a user to

solve a problem or achive an objective2. A condition or capability that must be met or

possessed by a system or system component, to satisfy a contract, standard, specification, or other formally imposed document

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

Page 5: Agile Requirements Engineering by Abdulkerim Corbo

Requirements Engineering

• Requirements Engineering (RE) is a systematic and disciplined approach to the specification and management of requirements

Page 6: Agile Requirements Engineering by Abdulkerim Corbo

Requirement types

• Functional requirements: requirements provided by the function of system

• Non-functional Requirements • Quality requirements: requirements that address the

quality of a system• Constraints: requirements that put some limitations to

the system

Page 7: Agile Requirements Engineering by Abdulkerim Corbo

RE activities

• Elicitation• Finding and collecting requirements from

stakeholders, documents, systems• Documentation

• Describing the collected requirements• Validation and Negotiation

• Checking if the right requirements are documented and resolving the conflicts

• Requirements management• Structuring and changing requirements

Page 8: Agile Requirements Engineering by Abdulkerim Corbo

Sources of requirements

• Stakeholders• People or an organization that have direct or indirect

influence on the requirements (users, clients, managers, developers, testers…)

• Documents• Laws, standards, concepts

• Systems in operation• Existing, external or competitor systems

Page 9: Agile Requirements Engineering by Abdulkerim Corbo

Elicitation techniques

• Survey techniques• Creativity techniques• Document-centric techniques• Observation techniques• Supporting techniques

Page 10: Agile Requirements Engineering by Abdulkerim Corbo

Requirements documentation

• It is required to document all requirement information

• This can be done with:• Formal specification • Natural language specification• Semi formal specification

Page 11: Agile Requirements Engineering by Abdulkerim Corbo

Natural language documentation

• It considers non-technical readers• Reduces start-up time• Can however be ambiguous• Usage of templates is recommended• Usage of Glossary•

Page 12: Agile Requirements Engineering by Abdulkerim Corbo

Model-based documentation 1(2)

• It is easier to understand• Ambiguity is removed• Easier to memorize• Can be represented by models depending on the

perspective.

Page 13: Agile Requirements Engineering by Abdulkerim Corbo

• Functional Perspective• Use Case Model• Activity Diagram• Data Flow Diagram

• Data Perspective• Class Model• Entity Relationship Diagram

• Behavioral Perspective• State Diagram

Model-based documentation 2(2)

Page 14: Agile Requirements Engineering by Abdulkerim Corbo

Requirements validation

• Three quality aspects need to be validated:• Content (correct information without errors)• Document (avoid violation of agreed documentation

guidelines)• Agreement (ensure that stakeholders agree on

requirements)

Page 15: Agile Requirements Engineering by Abdulkerim Corbo

Requirements validation techniques

• Static techniques• Reviews (inspection, walkthrough, commenting, informal

review)• Notation check (help of tools)• Model check (help of tools)

• Dynamic techniques• Prototypes• Simulation• Storyboards

Page 16: Agile Requirements Engineering by Abdulkerim Corbo

Requirements negotiation

• Conflict types:• Interest, data, value, relationship, structural

• Conflict resolution techniques:• Agreement, compromise, voting, overruling…

• Conflict documentation:• Document contains cause, stakeholders, opinions,

decisions.• It is important so that future conflicts can be avoided

Page 17: Agile Requirements Engineering by Abdulkerim Corbo

Requirements management

• Improve the tracking and management by assigning attributes to requirements• ID, name, description, author, version…

• Change management• Requirements can be changed with change request• It is done through change control board

Page 18: Agile Requirements Engineering by Abdulkerim Corbo

Tool support

• Investigate the tools• Consider the cost of

maintaining the tool• Select the tool that will

ensure tracking and management of requirements

• Start a pilot project

Page 19: Agile Requirements Engineering by Abdulkerim Corbo

Agile RE

• Since requirements evolve during the Iteration, they might not contain all the details that stakeholder desires

• Importance of prioritizing requirements• Requirements do not need to be frozen during the

Iteration• However, requirements in current Iteration need to

be understood fully

Page 20: Agile Requirements Engineering by Abdulkerim Corbo

Why requirements change

• A defect is identified• Stakeholders didn’t know what they need• Politics• Standards• Competitors

Page 21: Agile Requirements Engineering by Abdulkerim Corbo

How to work with RE in Agile ENV.

• Importance of Requirements prioritization• Importance of Requirements estimation• Importance of flexibility•

Page 22: Agile Requirements Engineering by Abdulkerim Corbo

Thank you