Learned a lot of practical material. The exercises were very practical also.
JIMMY CHAN - THALES TRANSPORT & SECURITY (HONG-KONG) LIMITED
Requirements Engineering courses
|UML||Object-Oriented Analysis and Design using UML||21 hours||This course is intended for analysts, designers, developers, testers and project managers. It is an introduction to system modeling using UML. Based on selected systems (case study) following phases of system modeling are presented: from modeling requirements, through business process modeling and documentation of functional and non-functional requirements, to the analytical model. The next step is the design phase - static and dynamic modeling using project classes and the interaction between the system components. Training can be the basis for a comprehensive process modeling in enterprise systems through the use of UML in all phases of software development. Introduction to UML A brief History of UML Overview of issues in the field of object-oriented modeling UML Specification (OMG) UML diagrams overview Requirements management Requirements Types Requirements Categories (FURPS) Methods for gathering requirements Modeling requirements using UML The relationship matrix for the requirements Creating a requirements specification Modeling business processes Activity Diagram Business process modeling in UML The definition of a business process Concurrent flows and decisions Exceptions and Exception Handling Partitions, path Modeling non-functional requirements Components and Deployment diagrams The initial architecture of the system - logical and physical Modeling requirements for security, performance, reliability, ... Modeling functional requirements Modeling functionality with the Use Case diagram Determining the scope of the system Actors and the relationships between them Identifying use cases Association "actor - use case" and its properties The relationship between use cases: include, extend, generalization Creating a use case scenarios and generate diagrams from them (activity, state machine) Analytical model of the system Using communication diagram to identify the main system objects The types of messages: asynchronous, synchronous, reply Specify the numbering sequence of messages Categories of objects: Boundary, Control and Entity Introduction to the project system Modeling the interaction Static Modeling Class Diagram and source code generation Association relationship and its characteristics. Other relationships: aggregation, composition, generalization, dependency, association class Forward/Reverse engineering Generating source code from the model Generating diagram based on the source code Synchronizing code and diagram Object Diagrams, Composite Structure Diagrams, and Package Diagrams Dynamic Modeling Verification of the static model Clarification of method signatures Verification of the class diagram The dynamic modeling at the level of method calls Diagrams: Sequence, State Machine, Timing, and Interaction|
|eraamauml||Efficient Requirement Management using Agile Methods and Agile UML Modeling||21 hours||Objective: This training course aims at helping product managers, products owners, business analysts, system architects and developers understand how to efficiently Manage Requirements on the basis of the product vision till guiding developers accurately in implementing them. More in detail, this course aims at assisting product managers in better defining the value propositions of their products on the basis of strategies and stakeholder needs. Business Analysts and product owners understand how to describe requirements of the product backlog then discover appropriate epics and user stories of the system while contributing to the required value creation. Along interactive case study exercises, participants learn how to describe in detail such requirements in order to validate correct understanding of needs and prepare system acceptance tests. Thus, only using a very common and productive UML profile, they learn to structure requirements in order to communicate efficiently with architects and developers through an iterative requirement gathering process. Audience: Product Managers Product Owners Business Analysts Anyone interetsted in the Requirements Management Process Introduction What is the Requirement Management Process ? Why Agile ? Business agility and agile software delivery : Definitions Linking Agile to Business : Business Motivation Model vs. Business Model Canvas, How to effciently use the Value Proposition Canvas for defining the Product Vision ? Business agility vs. agile software delivery principles What is Agile Not ? Impacts of alignment with strategies and capabilities Requirement Management in an Agile Context Scrum Life Cycle : Issues about completeness of requirements and traceability How productive models enhance communication in 'Agile' ? Business Extensions of Agile : Structuring Business Value Contribution of a User Story A Panorama of UML diagrams for modeling requirements Frameworks for tracing requirements toward software implementation and tests The 5 levels planning of an agile project (from Clarifying the Vision and Product Backlog to Tasks… and the Architecture Walking Skeleton) Managing Requirements within Agile Methods (Scrum, DAD) vs. the Unified Process (RUP) Roles, teams, environments Presentation of the Case Study for Structuring requirements and managing them using an iterative process How to describe the business vision and needs via traceable models ? Qualification of the requirements : The Kano model vs. the Value Proposition Canvas Structuring the Vision of the Product on the basis of strategies, environmental forces and trends Value proposition, key activities, key resources, revenue streams and cost structures, Discovering the business scope of the product using the customer needs, gains and pains Describing business use cases using 'value streams' and 'value stages' Bridging the business scope of the product with expected 'value contributions' Case Study : Describing the vision of the product How to describe user needs via agile use case modeling (epics and user stories) ? Agile Estimating and Planning Building and managing the product backlog / granularity of requirements Ahead of the sprint planning Creation of the sprint backlog Agile User Story Pattern : system scope (the subject), actors, use cases, user stories, acceptance criteria, the INVEST model The Walking Skeleton using Disciplined Agile Delivery : From Processes to Technology How to find out epics and user stories on the basis of value streams ? Value contribution of epics and user stories Writing tasks : granularity and size using the SMART model Case Study : Discovering epics and user stories on the basis of value streams Validating and testing correct understanding of detailed specifications Using an incremental requirement gathering process and the sprint backlog Rules for efficient epic, user story and architecture descriptions Diagrams for validating epics and user story descriptions How to choose the right diagram ? Refining features using use cases and relationships modeling Testing correct understanding of requirements using Test-Driven Requirements Given/When/Then structures and Operation Contracts for guiding developers in implementing requirements Coverage analysis and change management Case Study : Validating, testing and communicating detailed requirements to developers Conclusion Steps of efficient requirement gathering and system analysis processes Traceability between requirements and analysis models Patterns for gathering and testing requirements Notice: The above training-mentoring sessions are conducted interactively using examples from Requirement Engineering and Modeling tools in order to ensure good level of traceability between requirements and underlying solutions. Concepts are first explained using basic examples and are then followed by solution drafts to your potential case. After this session, we can also accompany you by reviewing and validating your solutions depending on your needs.|
|softengret||Software Engineering, Requirements Engineering and Testing||63 hours||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|
|ISAM1||ISTQB CTFL||21 hours||ISTQB CFTL 70% theory + 30% practice SW testing fundamentals Testing throughout the life cycle Static techniques Test design techniques Test management Tool support for testing|