Object Oriented Analysis
This course is currently not scheduled on the open calendar, but can be organized on request.Request Course
IT Managers, Functional Analysts, Technical Architects
Knowledge of Object Orientation and Structured Programming Languages, having basic knowledge of UML.
This course will help participant to understand how to create and define product and system requirements using Object Oriented Analysis Techniques. This course explains the concepts of analysis, on how to go from a project description to a complete functional analysis.
Classroom training with case study exercises.
Obtaining requirements for a project is a difficult process, but a very important one: a functional analysis will help determining what shall be done in the project and what will not, and will also be used later on for designing the solution and technical requirements. Projects may succeed or fail depending on the quality of the analysis. This course is meant to help analyst to understand the fundamental concepts needed for creating a complete functional analysis. At the end of the course, the participants will be able to analyze product requirements, and use UML Use Cases to describe them. The goal of this course is to create the first deliverable in the software development process: the software requirements specification document.
Throughout the course, participants will get an overview of the world of software engineering and the different software development processes. Afterwards, they will gain insights in how to determine product requirements, how to categorize them and how to express these requirements using UML Use Cases. This will only be a first step, as the course continues to explain how to delve deeper in the requirements by creating a first Domain Model, and how to use GRASP patterns to assign responsibilities to the discovered domain objects.
The knowledge gained through the presentation will be put into practice during instructor-led case studies. These case-studies will provide participants with some practical experience that can be applied in their daily analysis tasks.
- OOA - What is it?
- A Word on Software Engineering
- Disasters in Software Engineering
- OOA - Why?
- Analysis vs. Design
- When to do Analysis
- Analysis Artifacts
- Architectures and Design Patterns in Analysis
- Software Process and UML
- What is a Software Process?
- Properties of an Effective Process
- Software Methodologies
- Waterfall vs. Iterative Process
- Agile Software Development
- Combining Processes
- The (Un)Importance of UML in Analysis
- Understanding Requirements
- What are Requirements?
- Why Manage Requirements?
- Requirement Concepts
- Requirement Types
- Categorizing Requirments
- Requirement Management
- Analysis using Cross-Functional Teams
- Tracing Requirements
- Describing Requirements with UML Use Cases
- Use Case Modeling - Writing Requirements
- Use Cases
- Concepts and Glossary
- Business vs. System Use Cases
- Relation to Requirements
- Layout and Characteristic Information
- Scenario Extensions
- Open Issues
- Treasure Hunting
- Include and Extend
- Writing Text
- Use Case Recipes
- Use Case Diagram with UML
- Using Activity Diagrams
- Reviewing Use Cases
- How to Fail with Use Cases (and avoiding it)
- Use Case Modeling - Using System Sequence Diagrams
- Describing System Behavior
- System Sequence Diagrams
- SSD and Use Cases
- Events and Operations
- Domain Model - Visualizing Concepts
- What is a Domain?
- What is a Domain Model?
- Why is it Important?
- Using UML for Domain Modeling
- Finding Objects
- Creating a Domain Model
- Domain Modeling Guidelines
- Attributes vs. Concepts
- Specification Objects
- Domain Model - Adding Associations
- What are Assocations?
- Associations in the Domain Model
- Associations in UML
- Finding Associations
- High-Priority Associations
- Association Guidelines
- Naming Associations
- Domain Model - Adding Attributes
- What are Attributes?
- Attributes in the Domain Model
- Describing Attributes with UML
- Design Creep
- Modeling Quantities
- Use Case Model - Operation Contracts
- What are Contracts?
- System Operations and System Interface
- Contract Sections
- Guidelines and Advice
- Requirements Revisited - Supplementary Specifications
- The FURPS+ Model
- Target Audience
- Gathering Supplementary Specifications
- List of Categories
- Responsibility-Driven Design Using GRASP Patterns
- What is RDD?
- GRASP Patterns
- The 9 Patterns Explained
- Doing Analysis as a Team
- Hints and Tips
- Case Studies