Agile Requirements Engineering by Abdulkerim Corbo

Post on 14-Aug-2015

50 views 2 download

Transcript of Agile Requirements Engineering by Abdulkerim Corbo

Agile Requirements Engineering

About lecturer

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

How to become CPRE

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

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).

Requirements Engineering

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

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

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

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

Elicitation techniques

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

Requirements documentation

• It is required to document all requirement information

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

Natural language documentation

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

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.

• 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)

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)

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

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

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

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

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

Why requirements change

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

How to work with RE in Agile ENV.

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

Thank you