Service Oriented Principles, Analysis and Design

This intensive course is an introduction of service-oriented software development. Service and process oriented analysis and design techniques will be introduced. The course provides the fundamental skill to gather requirements for and analyze a business problem from SOA perspective. The course introduces common business process and common services design patterns. Industry standards such as BPMN and UML are used to express designs.

At the end of this course you will be familiar with the concepts of service oriented software development, and you will be able to apply service oriented analysis and design methods for business applications. You will know the most important diagram techniques and will be able to join a development team and actively participate in the design of an application.

At the end of the course you will be able to:

  • Learn SOA Concepts
  • Understand Service-Oriented Design Principles
  • Model processes
  • Identify and Design service contracts
  • Use BPMN and UML


  • Introduction to Business Process Design
    • Service-Oriented Analysis and Design
    • What is a Service
    • What is a business process
    • Process types
    • BPD Projects and Methodology
    • Business Porcess Design criteria
    • Service Maturity Model
  • Introduction to OO Software Development Process
    • Provide an overview of Object-Oriented modeling
    • Overview of methodologies
    • At a glance view of modeling steps
    • Show how models are gradually refined
  • SOA and Unified Process
  • Business Process Analysis
    • Business Process Analysis
    • Requirements management
    • Use Cases and their workflows/processes
    • A service development process
    • Mapping Use Cases to components and services
    • Supporting the developer
  • Process Modeling
    • Process Modelling Standards
    • BPMN
    • Diagram Elements
    • Flows and Activities
    • Process Types
    • XPDL
  • What is an Object
    • To introduce you to the concept of objects
    • To talk about key OO concepts of ‘state' and ‘behavior'
    • Compare Object-Oriented and Functional Approaches
    • To show you what a ‘Use Case' is, and how we can use it to discover objects
  • What are Messages
    • To talk in more detail about how objects interact, via messages
    • To introduce the idea of encapsulation
    • What is meant by ‘information hiding', and why it's such a good idea
  • Classes and Instances
    • To learn the difference between classes and instances
    • To learn how classes relate to objects
    • To learn about object identity and object equality
  • Inheritance
    • To understand the concept of inheritance
    • To learn why inheritance is useful
    • To understand subclassing versus subtyping
  • Polymorphism
    • To gain an understanding of 'polymorphism'
    • To learn about 'dynamic binding'
    • To appreciate how polymorphism simplifies coding and
    • improves the flexibility of Object-Oriented systems
  • Use-Case Analysis
    • To learn how functional requirements are captured
    • To introduce use cases and use case models
    • To understand their role throughout the lifecycleTopic
  • CRC Analysis
    • Learn how to find a good set of domain classes
    • Learn how to factor responsibilities among these classes
    • Learn how coverage of functional requirements is guaranteed
    • Understand the CRC analysis activity
  • OO Analysis with UML
    • Detail to our Class models using (UML)
    • Learn how Analysis transforms Use-Cases into Classes and Collaborations
    • Learn about Robustness Diagrams and Analysis
    • Class Stereotypes: Boundary, Control, and Entity
    • Introduce the notion of Use-Case Realization
    • Understand that Analysis Classes are eventually mapped to Design Classes
  • Structural Modeling Using UML
    • Learn how to create structural models in UML
    • Introduce UML Classifiers and Relationships
  • Dynamic Model Design
    • To learn how flow of control is discovered and recorded
    • To understand how messages are initially derived
    • To introduce sequence diagrams as pseudo-code
    • To introduce state and activity diagrams
  • Static Model Design – Inheritance
    • To review issues of reuse through inheritance


Project managers, Business Analysts, Application Architects, Developers, Designers.


3 days


Instructor Lead