This course demonstrates through hands-on practice the fundamentals and applications of software engineering, requirements engineering and testing.
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
United Arab Emirates - Software Engineering, Requirements Engineering and Testing
Qatar - Software Engineering, Requirements Engineering and Testing
Egypt - Software Engineering, Requirements Engineering and Testing
Saudi Arabia - Software Engineering, Requirements Engineering and Testing
South Africa - Software Engineering, Requirements Engineering and Testing
Brasil - Software Engineering, Requirements Engineering and Testing
Canada - Software Engineering, Requirements Engineering and Testing
中国 - Software Engineering, Requirements Engineering and Testing
香港 - Software Engineering, Requirements Engineering and Testing
澳門 - Software Engineering, Requirements Engineering and Testing
台灣 - Software Engineering, Requirements Engineering and Testing
USA - Software Engineering, Requirements Engineering and Testing
Österreich - Software Engineering, Requirements Engineering and Testing
Schweiz - Software Engineering, Requirements Engineering and Testing
Deutschland - Software Engineering, Requirements Engineering and Testing
Czech Republic - Software Engineering, Requirements Engineering and Testing
Denmark - Software Engineering, Requirements Engineering and Testing
Estonia - Software Engineering, Requirements Engineering and Testing
Finland - Software Engineering, Requirements Engineering and Testing
Greece - Software Engineering, Requirements Engineering and Testing
Magyarország - Software Engineering, Requirements Engineering and Testing
Ireland - Software Engineering, Requirements Engineering and Testing
Luxembourg - Software Engineering, Requirements Engineering and Testing
Latvia - Software Engineering, Requirements Engineering and Testing
España - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Italia - Software Engineering, Requirements Engineering and Testing
Lithuania - Software Engineering, Requirements Engineering and Testing
Nederland - Software Engineering, Requirements Engineering and Testing
Norway - Software Engineering, Requirements Engineering and Testing
Portugal - Software Engineering, Requirements Engineering and Testing
România - Software Engineering, Requirements Engineering and Testing
Sverige - Software Engineering, Requirements Engineering and Testing
Türkiye - Software Engineering, Requirements Engineering and Testing
Malta - Software Engineering, Requirements Engineering and Testing
Belgique - Software Engineering, Requirements Engineering and Testing
France - Software Engineering, Requirements Engineering and Testing
日本 - Software Engineering, Requirements Engineering and Testing
Australia - Software Engineering, Requirements Engineering and Testing
Malaysia - Software Engineering, Requirements Engineering and Testing
New Zealand - Software Engineering, Requirements Engineering and Testing
Philippines - Software Engineering, Requirements Engineering and Testing
Singapore - Software Engineering, Requirements Engineering and Testing
Thailand - Software Engineering, Requirements Engineering and Testing
Vietnam - Software Engineering, Requirements Engineering and Testing
India - Software Engineering, Requirements Engineering and Testing
Argentina - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Chile - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Costa Rica - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Ecuador - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Guatemala - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Colombia - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
México - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Panama - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Peru - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Uruguay - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Venezuela - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Polska - Software Engineering, Requirements Engineering and Testing
United Kingdom - Software Engineering, Requirements Engineering and Testing
South Korea - Software Engineering, Requirements Engineering and Testing
Pakistan - Software Engineering, Requirements Engineering and Testing
Sri Lanka - Software Engineering, Requirements Engineering and Testing
Bulgaria - Software Engineering, Requirements Engineering and Testing
Bolivia - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Indonesia - Software Engineering, Requirements Engineering and Testing
Kazakhstan - Software Engineering, Requirements Engineering and Testing
Moldova - Software Engineering, Requirements Engineering and Testing
Morocco - Software Engineering, Requirements Engineering and Testing
Tunisia - Software Engineering, Requirements Engineering and Testing
Kuwait - Software Engineering, Requirements Engineering and Testing
Oman - Software Engineering, Requirements Engineering and Testing
Slovakia - Software Engineering, Requirements Engineering and Testing
Kenya - Software Engineering, Requirements Engineering and Testing
Nigeria - Software Engineering, Requirements Engineering and Testing
Botswana - Software Engineering, Requirements Engineering and Testing
Slovenia - Software Engineering, Requirements Engineering and Testing
Croatia - Software Engineering, Requirements Engineering and Testing
Serbia - Software Engineering, Requirements Engineering and Testing
Bhutan - Software Engineering, Requirements Engineering and Testing
Nepal - Software Engineering, Requirements Engineering and Testing
Uzbekistan - Software Engineering, Requirements Engineering and Testing