Object-Oriented Analysis and Design using UML
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 Categories (FURPS)
Methods for gathering requirements
Modeling requirements using UML
The relationship matrix for the requirements
Creating a requirements specification
Modeling business processes
Business process modeling in UML
The definition of a business process
Concurrent flows and decisions
Exceptions and Exception Handling
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
Class Diagram and source code generation
Association relationship and its characteristics.
Other relationships: aggregation, composition, generalization, dependency, association class
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
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
Efficient Requirement Management using Agile Methods and Agile UML Modeling
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.
Anyone interested in the Requirements Management Process
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
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 show how 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.
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
What is special for IT projects?
Basic project process
Iterative, incremental, waterfall, agile and lean project process
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 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
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
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
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 automation – what can be automated?
Test execution automation – approaches and tools