enterprise integration with UML

It shows how to design a component architecture to replace legacy 'paradise islands'. Semantic issues, such as does 'customer' mean the same across the enterprise, are covered in detail. This course separates and makes explicit the decisions that make up the architecting component systems. We show how to use the UML notation most effectively both to discuss designs with colleagues, and in documents.

Duration: 2 days


  • use a model-based approach to integrate systems;
  • wrapper legacy applications with proven techniques of component based development;
  • learn a proven process for creating enterprise components and component architectures;
  • practice designing flexible core components;
  • understand semantic issues of integration;
  • practice the main principles of architecting component systems; and
  • understand how to leverage reuse and adaptability from component-based development.

target audience

The course is suitable for analysts and designers familiar with UML wishing to develop skills in modelling component architectures in UML and in particular, how to integrate systems with a model-based approach; and managers and architects familiar with UML wishing to learn a development process focused around enterprise components and CBD for legacy integration.

The model-based approach to integration

Introduction to the main ideas behind the model-based approach to developing components for enterprise integration.

  • business modelling: concepts and tasks
  • system requirements models
  • responsibilities and collaborations
  • persistence, GUI, distribution
  • component-based design

UML for EAI (Enterprise Application Integration)

This section introduces those parts of UML relevant to EAI.

  • static models
  • objects, types, attributes, snapshots
  • subtypes
  • dynamics
  • use-cases and tasks
  • event charts
  • state charts
  • building a business model
  • finding use-cases
  • connecting use-case and class views
  • the dictionary
  • UML notation review
  • uses of business models
  • architecture of business process
  • context for software requirements
  • basis for component interface definition
  • documentation style)

Requirements and component specification

This section deals with the specification of requirements of a software component, application, or complete system. More modelling patterns and techniques are investigated.

  • system context models
  • high-level operation specs
  • state charts for system models
  • meaning of 'model'
  • how to start abstract and get more detailed
  • event charts: horizontal and vertical expansion
  • elaborating models
  • relating the levels of detail
  • building a system spec
  • system context
  • defining system use-case goals
  • modelling patterns)

Component design

This section covers the key design stages: assign responsibilities and collaborations, decouple roles and components.

  • separating core from GUI, persistence, and other layers
  • selection of control objects
  • designing system operations with messages
  • decoupling, extensibility, reusability
  • dependencies and visibilities
  • the class dictionary
  • translation to code

Domain coupling

The linkage of the 'core(s)' to presentation, persistence, and other layers.

  • GUI
  • MVC and reification of use-cases in UI objects
  • persistence: proxy and building atop object and relational DBs
  • networks: layering

Reuse and adaptability

Reuse does not come automatically, and requires not only appropriate technology, but also management and motivation at the corporate level.

  • management and economics of reuse
  • component repositories
  • what's in the repository
  • components, frameworks, patterns, and plans)

Pluggability and frameworks

  • partial models (views) as reusable artefacts.
  • generalization of two example static models
  • collaborations: generic designs for interactions
  • roles
  • synthesis of collaborations
  • pluggable code and connector protocols
  • component kits and building tools
  • component architecture
  • common models
  • common couplings
  • wrapping existing assets
  • product vs component building
  • frameworks: generic models
  • generalization of two example static models
  • collaborations: generic designs for interactions
  • roles
  • synthesis of collaborations

Re-engineering existing systems as enterprise components

  • architectures

Please note, when taught at your site, this course is customizable; modules can be adapted, removed, added from other courses, or even created.


Day 1

  • the model-based approach to integration
  • UML for EAI (Enterprise Application Integration)
  • requirements and component specification
  • component design

Day 2

  • domain coupling
  • reuse and adaptability
  • pluggability and frameworks
  • re-engineering existing systems as enterprise components

course exercises

This is a pencil-and-paper course, with group exercises. We can demonstrate a variety of support tools (such as Rose, Select, or Rhapsody). However, we do not recommend using tools for the exercises, as the details of driving them distracts from the main issues of the language and techniques; and they do not promote team working in the class.

course instructor

The course is presented by one of our senior consultants, each of whom has at least ten years' experience in software development, and at least three years' experience as a trainer and consultant in a diverse range of application areas.

print     printer-friendly version