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 understanding different project types
  • General management principles versus specific project management techniques
  • Various management styles
  • Unique characteristics of IT projects
  • Foundational project processes
  • Comparing iterative, incremental, waterfall, agile, and lean project methodologies
  • Key project phases
  • Essential project roles
  • Project documentation and other deliverables
  • The human element: soft skills and peopleware
  • Overview of project standards such as PRINCE 2, PMBOK, PMI, IPMA, and others

Day 2: Business Analysis and Requirements Engineering Fundamentals

  • Establishing clear business goals
  • Understanding business analysis, business process management, and business process improvement
  • The distinction between business analysis and system analysis
  • Understanding system stakeholders, users, context, and boundaries
  • The necessity of requirements
  • Defining requirements engineering
  • The boundary between requirements engineering and architectural design
  • Common areas where requirements engineering is overlooked
  • Implementing requirements engineering in iterative, lean, and agile development, as well as continuous integration contexts (FDD, DDD, BDD, TDD)
  • Core requirements engineering processes, roles, and deliverables
  • Relevant 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: historical context and future relevance
  • Architectural attributes: modularity, portability, maintainability, and scalability
  • Defining and classifying software architectures
  • Differentiating between enterprise architecture and system architecture
  • Programming styles
  • Programming environments
  • Common programming errors and strategies to avoid them
  • Modeling architecture and components
  • SOA, Web Services, and microservices
  • Automated builds and continuous integration
  • The extent of architectural design required in a project
  • Extreme programming, TDD, and refactoring

Day 4: Quality Assurance and Testing Fundamentals

  • Understanding product quality: definitions, ISO 25010, FURPS, and more
  • Connecting product quality, user experience, the Kano Model, customer experience management, and total quality
  • User-centered design, personas, and personalizing quality approaches
  • Achieving "just-enough" quality
  • Distinguishing Quality Assurance (QA) from Quality Control (QC)
  • Risk strategies in quality control
  • QA 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 as it applies to quality assurance and testing
  • The four testing schools and identifying which best fits your needs

Day 5: Process Types, Maturity, and Process Improvement

  • The evolution of IT processes: from Alan Turing and IBM to lean startups
  • Processes and process-oriented organizations
  • The history of processes in craftsmanship and industry
  • Process modeling techniques: UML, BPMN, and others
  • Process management, optimization, re-engineering, and management systems
  • Innovative process approaches: Deming, Juran, TPS, Kaizen
  • Is quality free? Insights from Philip Crosby
  • The history and need for maturity improvement: CMMI, SPICE, and other maturity models
  • Specialized maturity models: TMM, TPI (for testing), and Requirements Engineering Maturity (Gorschek)
  • Correlations between process maturity and product maturity: Is there a causal link?
  • Correlations between process maturity and business success: Is there a causal link?
  • Lessons learned: Automated Defect Prevention and the next leap in productivity
  • Initiatives like TQM, Six Sigma, agile retrospectives, and process frameworks

Requirements Engineering (2 Days)

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

  • Identifying requirements: determining what, when, and who is responsible
  • Classifying stakeholders
  • Recognizing often-forgotten stakeholders
  • Defining the system context to identify requirement sources
  • Elicitation methods and techniques
  • Using prototyping, personas, and testing (exploratory and other methods) for elicitation
  • Market-driven requirements elicitation: MDRA (“Market-Driven Requirements Engineering”)
  • Prioritizing requirements: MoSCoW, Karl Wiegers’ methods, and other techniques (including agile MMF)
  • Refining requirements using agile “specification by example”
  • Managing requirements negotiation: conflict types and resolution methods
  • Resolving internal conflicts between requirement types (e.g., security vs. usability)
  • Requirements traceability: importance and implementation
  • Managing changes in requirements status
  • Requirements Change Control Management (CCM), versioning, and baselines
  • Viewing requirements from both product and project perspectives
  • Integrating product management and requirements management within projects

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

  • Understanding analysis as the iterative thinking process between elicitation and specification
  • Recognizing that the requirements process is always iterative, even in sequential projects
  • Pros and cons of describing requirements in natural language
  • Benefits and costs of requirements modeling
  • Guidelines for using natural language in requirements specification
  • Creating and managing a requirements glossary
  • Applying UML, BPMN, and other formal/semi-formal modeling notations for requirements
  • Using document and sentence templates for describing requirements
  • Requirements verification: objectives, levels, and methods
  • Validation techniques: prototyping, reviews, inspections, and testing
  • Distinguishing between requirements validation and system validation

Testing (2 Days)

Day 1: Test Design, Test Execution, and Exploratory Testing

  • Test design after risk-based testing: optimizing the use of available time and resources
  • Test design challenges: understanding that exhaustive testing is impossible (“from infinity to here”)
  • Defining test cases and test scenarios
  • Conducting test design across various levels (from unit to system testing)
  • Differentiating test design for static versus dynamic testing
  • Business-oriented vs. technique-oriented test design (“black-box” and “white-box”)
  • Purposeful system breaking (“negative testing”) vs. supporting developers via acceptance testing
  • Strategies for achieving test coverage using various metrics
  • Experience-based test design
  • Deriving test cases from requirements and system models
  • Test design heuristics and exploratory testing
  • Timing of test case design: traditional versus exploratory approaches
  • Detail levels for describing test cases
  • Psychological aspects of test execution
  • Logging and reporting during test execution
  • Designing tests for “non-functional” aspects
  • Automated 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 solutions
  • Managing test environments: costs, administration, access, and responsibility
  • Utilizing simulators, emulators, and virtual test environments
  • Integrating testing within agile scrum
  • Structuring test teams and defining their roles
  • Defining the test process
  • Test automation: identifying what can be automated
  • Test execution automation: approaches and tools
 63 Hours

Testimonials (4)

Related Categories