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