Requirements Analysis Training Course

Introduction

  • Principles of requirements engineering

Overview of Requirements and Requirements Analysis

  • Types of requirements
  • Quality of requirements
  • Importance of requirements analysis

Defining the Four Core Components of Requirements

  • Data
  • Process
  • External agent/actor
  • Business rules

Understanding Requirements Analysis Methodology

  • Context analysis
  • Design requirements analysis
  • States and modes analysis
  • Parsing analysis
  • Functional analysis

Applying Different Requirements Analysis Techniques

  • Diagramming
  • Modelling
  • User Stories
  • Glossary
  • Phototyping

Managing Requirements Using an Iterative Process

  • Linking Agile to Business
  • Identifying, controlling and managing changes to requirements
  • Determining the project scope
  • Reviewing, validating and testing correct understanding of detailed specifications

Best Practices

Summary and Conclusion

Software Engineering, Requirements Engineering and Testing Training Course

Course Outline

Software Engineering 5 days

Day 1: Project Management

  • Project versus line management and maintenance and support
  • Project definition and project forms
  • Management – general rules and project management
  • Management styles
  • What is special for IT projects?
  • Basic project process
  • Iterative, incremental, waterfall, agile and lean project process
  • Project phases
  • Project roles
  • Project documentation and other artefacts
  • Soft factors and peopleware
  • PRINCE 2, PMBOK, PMI, IPMA and other project standards

Day 2: Business Analysis and Requirements Engineering Fundamentals

  • Defining business goals
  • Business analysis, business process management, business process improvement
  • The boundary between business and system analysis
  • System stakeholders, system users, system context and system boudaries
  • Why are requirements necessary?
  • What us requirements engineering
  • The boundary between requirements engineering and architectural design
  • Where is requirements engineering often hidden?
  • Requirements engineering in iterative, lean, and agile development and in continuous integration – FDD, DDD, BDD, TDD
  • Basic requirements engineering process, roles and artefacts
  • Standards and certifications: BABOK, ISO/IEEE 29148, IREB, BCS, IIBA

Day 3: Architecture and Development Fundamentals

  • Programming languages – structural and object-oriented paradigms
  • Object-oriented development – how much is history, how much is the future
  • Modularity, portability, maintainability and scalability of architectures
  • Definition and type of software architectures
  • Enterprise architecture and system architecture
  • Programming styles
  • Programming environments
  • Programming mistakes and how to avoid and prevent them
  • Modelling architecture and components
  • SOA, Web Services and micro-services
  • Automatic build and continuous integration
  • How much architecture design is there on a project?
  • Extreme programming, TDD and re-factoring

Day 4: Quality Assurance and Testing Fundamentals

  • Product quality: what is it? ISO 25010, FURPS etc.
  • Product quality, user experience, Kano Model, customer experience management and integral quality
  • User-centred design, personas and other ways to make quality individual
  • Just-enough quality
  • Quality Assurance and Quality Control
  • Risk strategies in quality control
  • The components of quality assurance: requirements, process control, configuration and change management, verification, validation, testing, static testing and static analysis
  • Risk-based quality assurance
  • Risk-based testing
  • Risk-driven development
  • Boehm’s curve in quality assurance and in testing
  • The four testing schools – which suits your need?

Day 5: Process Types, Maturity and Process Improvement

  • The evolution of IT process: from Alan Turing through Big Blue to lean startup
  • Process and process-oriented organization
  • The history of processes in crafts and industries
  • Process modelling: UML, BPMN and more
  • Process management, process optimization, process re-engineering and process management systems
  • Innovative process approaches: Deming, Juran, TPS, Kaizen
  • Is (process) quality free? (Philip Crosby)
  • The need and history of maturity improvement: CMMI, SPICE and other maturity scales
  • Special types of maturity: TMM, TPI (for testing), Requirements Engineering Maturity (Gorschek)
  • Process maturity versus product maturity: any correlation? Any causal relationship?
  • Process maturity versus business success: any correlation? any causal relationship?
  • A forsaken lesson: Automated Defect Prevention and The Next Leap in Productivity
  • Attempts: TQM, SixSigma, agile retrospectives, process frameworks

Requirements Engineering – 2 days

Day 1: Requirements Elicitation, Negotiation, Consolidation and Management

  • Finding requirements: what, when and by whom
  • Stakeholder classification
  • Forgotten stakeholders
  • Defining system context – defining requirements sources
  • Elicitation methods and techniques
  • Prototyping, personas, and requirements elicitation through testing (exploratory and otherwise)
  • Marketing and requirements elicitation – MDRA (“Market-Driven Requirements Engineering”)
  • Prioritising requirements: MoSCoW, Karl Wiegers and other techniques (including agile MMF)
  • Refining requirements – agile “specification by example”
  • Requirements negotiation: types of conflicts, conflict-solving methods
  • Solving internal incongruence between some types of requirements (e.g. security versus ease of use)
  • Requirements traceability – why and how
  • Requirements status changes
  • Requirements CCM, versioning and baselines
  • Product view and project view on requirements
  • Product management and requirements management in projects

Day 2: Requirements Analysis, Modelling, Specification, Verification and Validation

  • Analysis is the thinking and re-thinking you do between elicitation and specification
  • Requirements process is always iterative, even in sequential projects
  • Describing requirements in natural language: risks and benefits
  • Requirements modelling: benefits and costs
  • The rules for using natural language for requirements specification
  • Defining and managing requirements glossary
  • UML, BPMN and other formal and semi-formal modelling notations for requirements
  • Using document and sentence templates for requirements description
  • Verification of requirements – goals, levels and methods
  • Validation – with prototyping, reviews and inspections, and testing
  • Requirements validation and system validation

Testing – 2 days

Day 1: Test Design, Test Execution and Exploratory Testing

  • Test design: after risk-based testing, choosing the optimum way to use the time and resources available
  • Test design “from infinity to here” – exhaustive testing is not possible
  • Test cases and test scenarios
  • Test design on various test levels (from unit to system test level)
  • Test design for static and for dynamic testing
  • Business-oriented and technique-oriented test design (“black-box” and “white-box”)
  • Attempting to break the system (“negative testing”) and supporting the developers (acceptance testing)
  • Test design to achieve test coverage – various test coverage measures
  • Experience-based test design
  • Designing test cases from requirements and system models
  • Test design heuristics and exploratory testing
  • When to design test cases? – traditional and exploratory approach
  • Describing test cases – how much detail?
  • Test execution – psychological aspects
  • Test execution – logging and reporting
  • Designing tests for “non-functional” testing
  • Automatic test design and MBT (Model-Based Testing)

Day 2: Test Organization, Management and Automation

  • Test levels (or phases)
  • Who does the testing, and when? – various solutions
  • Test environments: cost, administration, access, responsibility
  • Simulators, emulators and virtual test environment
  • Testing in agile scrum
  • Test team organization and role
  • Test process
  • Test automation – what can be automated?
  • Test execution automation – approaches and tools

Contemporary Development Principles and Practices Training Course

Module 1:  Traditional Development Approaches

  • 1.1 Overview of Sequential, Predictive Development Approaches
    • Description of sequential, predictive ‘Waterfall’ approaches
    • Timeline of evolution of Waterfall approaches
  • 1.2 Strawman Waterfall
    • Dr Winston Royce’s Waterfall model
    • Benefits of Waterfall for controlling projects
    • Royce’s “Inherent risks”
  • 1.3 V-Model
    • Early verification and validation
    • Benefits of V-model
  • 1.4 Incremental Models
    • Example of Rational Unified Process
    • Incremental delivery
    • Breaking down scope and managing risk
  • 1.5 When to Use Waterfall
    • Defined process control

Module 2:  Prince2 Overview

  • 2.1 What is Prince2?
    • Definition and origins
    • Prince2 Certifications: Foundation, Practitioner, Agile
    • Benefits of Prince2
  • 2.2 Prince2 Methodology
    • Roles – Project manager, customer, user, supplier, project board
    • Management Techniques – Project assurance, project support
    • Scope – Interaction with contracts and contractual management
    • Controlling Change – Risk, quality, and change management
  • 2.3 Prince2 Process Model
    • Directing a project
    • Starting up a project
    • Initiating a project
    • Managing stage boundaries
    • Controlling a stage
    • Managing product delivery
    • Closing a project
    • Planning                             

Module 3:  Agile Overview

  • 3.1 Historical Overview
    • Timeline of evolution of ‘Agile’ ideas 90s to present
    • Early Agile approaches – Scrum, XP, DSDM
    • Agile Developments – Kanban, BDD, DevOps, Scaling
  • 3.2 The Agile Manifesto
    • Background to creating the Manifesto
    • Agile Manifesto overview
      • Individuals and interactions over processes and tools
      • Working software over comprehensive documentation
      • Customer collaboration over contract negotiation
      • Responding to change over following a plan

Module 4:  Agile Principles

  • 4.1 The 12 Agile Principles
    • Group discussion on each principle
  • 4.2 Summary of Agile concepts
    • Iterative planning and development
    • Continuous improvement
    • Continuous learning
    • Collaboration and face-to-face communication
    • Collective accountability
    • Cross-functional teams

Module 5:  Agile Project Management with Scrum

  • 5.1 The Scrum Framework
    • Overview – Scrum Guide 2016
    • Scrum roles and responsibilities – Scrum Master, Product Owner, Team
    • Scrum events – Sprint, Sprint Planning, Review, Retrospective, Daily Scrum
    • Scrum artefacts – Product Backlog, Sprint Backlog, Product Increment
  • 5.2 Agile Project Management Principles
    • Empirical Process Control
    • Iterative planning and reporting
    • Continuous Improvement and retrospection
    • Resource management and teams

Module 6: Software Testing

  • 6.1 Testing Fundamentals
    • The Fundamental Test Process
      • Planning, Analysis & Design, Execution, Evaluation, Closure
    • Test levels – unit, integration, system, user acceptance
    • Test approaches – requirements-based, risk-based, experience-based
    • Test design techniques – white-box, black-box techniques
  • 6.2 Agile Testing
    • Agile Testing Quadrants overview – test strategy, planning
    • Test-driven development
    • Test automation principles – test automation pyramid
  • 6.3 Test Types
    • Technology-facing tests that guide development
      • Unit testing, TDD, smoke tests
    • Business-facing tests that guide development
      • Story tests, examples, acceptance testing
    • Business-facing tests that critique the product
      • Exploratory testing, Alpa/Beta testing, UAT
    • Technology-facing tests that critique the product
      • Performance testing, usability, quality attributes              

Module 7:  Traditional Business Analysis

  • 7.1 What is Business Analysis?
    • Business analysis and the business analyst
    • Levels of business analysis – enterprise, project, operational
    • Business Analysis principles
  • 7.2 IIBA BA Book of Knowledge – Knowledge Areas
    • Business Analysis Planning and Monitoring
    • Elicitation and Collaboration
    • Requirements Life Cycle Management
    • Strategy Analysis
    • Requirements Analysis and Design Definition
    • Solution Evaluation

Module 8:  Agile Business Analysis

  • 8.1 Agile Business Analysis Considerations
    • Iterative development
    • Cross-functional teams
    • Collaboration between business and technology areas
  • 8.2 Behaviour-Driven Development Overview
    • Origins in TDD and recent developments
    • Definitions – BDD, ATDD, Specification by Example
  • 8.3 BDD Activities
    • Focus on features that deliver business value
    • Derive features collaboratively
    • Keep options open
    • Use concrete examples to illustrate features
    • Write executable specifications
    • Create living documentation
  • 8.4 Agile BA Techniques & Tools
    • Business value definition
    • Personas
    • Impact Mapping
    • Real options
    • User Stories and acceptance criteria
    • Relative estimation
    • Given-When-Then template
    • Tool support for BDD