Get in Touch

Course Outline

Software Engineering (5 Days)

Day 1: Project Management

  • Distinguishing between project management, line management, and maintenance/support
  • Defining projects and their various forms
  • General management rules versus project management specifics
  • Exploring different management styles
  • Unique characteristics of IT projects
  • Core project lifecycle
  • Comparing iterative, incremental, waterfall, agile, and lean processes
  • Understanding project phases
  • Key roles within a project
  • Essential project documentation and artifacts
  • The human element: soft skills and 'peopleware'
  • Overview of major project standards: PRINCE 2, PMBOK, PMI, IPMA, and others

Day 2: Fundamentals of Business Analysis and Requirements Engineering

  • Establishing business goals
  • Business analysis, business process management, and process improvement
  • Defining the boundary between business and system analysis
  • Identifying system stakeholders, users, context, and boundaries
  • The necessity of requirements
  • Defining requirements engineering
  • The distinction between requirements engineering and architectural design
  • Where requirements engineering is often overlooked
  • Implementing requirements engineering in iterative, lean, and agile development, as well as continuous integration (FDD, DDD, BDD, TDD)
  • Core requirements engineering processes, roles, and artifacts
  • Relevant standards and certifications: BABOK, ISO/IEEE 29148, IREB, BCS, IIBA

Day 3: Fundamentals of Architecture and Development

  • Programming languages: structural and object-oriented paradigms
  • Object-oriented development: assessing historical context versus future relevance
  • Architectural qualities: modularity, portability, maintainability, and scalability
  • Definition and types of software architectures
  • Enterprise architecture versus system architecture
  • Various programming styles
  • Programming environments
  • Common programming errors and strategies for avoidance and prevention
  • Modelling architecture and components
  • SOA, Web Services, and microservices
  • Automated builds and continuous integration
  • Estimating the extent of architecture design required for a project
  • Extreme programming, TDD, and refactoring

Day 4: Fundamentals of Quality Assurance and Testing

  • Understanding product quality: ISO 25010, FURPS, and other metrics
  • Product quality, user experience, Kano Model, customer experience management, and holistic quality
  • User-centered design, personas, and methods to personalize quality
  • Concept of 'just-enough' quality
  • Distinguishing Quality Assurance from Quality Control
  • Risk strategies within quality control
  • Quality assurance components: 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 the context of quality assurance and testing
  • Examining the four testing schools to identify the best fit for your needs

Day 5: Process Types, Maturity, and Process Improvement

  • Evolution of IT processes: from Alan Turing and Big Blue to the lean startup methodology
  • Processes and process-oriented organizations
  • Historical context of processes in crafts and industries
  • Process modeling techniques: UML, BPMN, and others
  • Process management, optimization, re-engineering, and process management systems
  • Innovative process approaches: Deming, Juran, TPS, Kaizen
  • Does quality really have no price? (Philip Crosby)
  • The evolution and necessity of maturity improvement: CMMI, SPICE, and other scales
  • Specialized maturity models: TMM, TPI (for testing), and Requirements Engineering Maturity (Gorschek)
  • Correlation and causality between process maturity and product maturity
  • Correlation and causality between process maturity and business success
  • A neglected lesson: Automated Defect Prevention and the next productivity leap
  • Key initiatives: TQM, Six Sigma, agile retrospectives, and process frameworks

Requirements Engineering (2 Days)

Day 1: Requirements Elicitation, Negotiation, Consolidation, and Management

  • Determining what requirements are needed, when, and by whom
  • Classifying stakeholders
  • Identifying often-overlooked stakeholders
  • Defining system context to identify requirement sources
  • Elicitation methods and techniques
  • Using prototyping, personas, and exploratory testing for elicitation
  • Market-Driven Requirements Engineering (MDRA) and marketing integration
  • Prioritization techniques: MoSCoW, Karl Wiegers’ methods, and agile MMF
  • Refining requirements using agile 'specification by example'
  • Managing requirements negotiation: types of conflicts and resolution methods
  • Resolving internal conflicts between requirement types (e.g., security vs. usability)
  • The importance and methodology of requirements traceability
  • Managing changes in requirements status
  • Requirements CCM, versioning, and baselines
  • Viewing requirements from product and project perspectives
  • Aligning product management with requirements management in projects

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

  • Analysis as the critical thinking phase between elicitation and specification
  • The iterative nature of the requirements process, even in sequential projects
  • Writing requirements in natural language: analyzing risks and benefits
  • Weighing the benefits and costs of requirements modeling
  • Guidelines for using natural language in requirements specification
  • Creating and maintaining a requirements glossary
  • Utilizing UML, BPMN, and other formal/semi-formal modeling notations
  • Employing document and sentence templates for clear requirement descriptions
  • Requirements verification: objectives, levels, and methods
  • Validation techniques: prototyping, reviews, inspections, and testing
  • Differentiating between requirements validation and system validation

Testing (2 Days)

Day 1: Test Design, Execution, and Exploratory Testing

  • Test design: optimizing time and resource allocation after risk-based testing
  • Test design scope: understanding that exhaustive testing ('from infinity to here') is impossible
  • Distinguishing between test cases and test scenarios
  • Designing tests across various levels (unit to system)
  • Designing tests for both static and dynamic testing
  • Business-oriented versus technique-oriented test design ('black-box' vs. 'white-box')
  • Purpose-driven testing: 'negative testing' to break the system and 'acceptance testing' to support developers
  • Achieving test coverage: utilizing various coverage metrics
  • Experience-based test design
  • Deriving test cases from requirements and system models
  • Test design heuristics and exploratory testing techniques
  • Timing of test case design: traditional versus exploratory approaches
  • Determining the appropriate level of detail for test case descriptions
  • Psychological aspects of test execution
  • Logging and reporting during test execution
  • Designing tests for 'non-functional' requirements
  • Automatic test design and Model-Based Testing (MBT)

Day 2: Test Organization, Management, and Automation

  • Understanding test levels (or phases)
  • Determining who performs testing and when: exploring various organizational solutions
  • Test environment considerations: cost, administration, access, and responsibility
  • Utilizing simulators, emulators, and virtual test environments
  • Integrating testing within agile scrum frameworks
  • Test team organization and defined roles
  • Overview of the test process
  • Test automation: identifying what can and cannot be automated
  • Approaches and tools for automating test execution
 63 Hours

Number of participants


Price per participant

Testimonials (3)

Upcoming Courses

Related Categories