Welcome to the Agile Architect Website!

Bringing Agility to Architecture, and Architecture to Agility

Modelling Techniques and DSLs

Microsoft have recently started talking about "Domain-Specific Languages", modelling techniques which are aimed at specific tasks. While some DSLs may derive from UML, others may be quite separate from it. This page outlines useful DSLs I have developed or discovered.

Modelling Enterprise Interfaces

In strict UML, components have a dependency on the interfaces of other components, as in the following example:

There are several problems with this notation:

  • It doesn’t really work where both systems expose their own interfaces, and we're trying to glue them together. This is very common in Enterprise Application Integration (EAI situations).
  • The notation implies a direct coupling between the components, which is definitely not true for EAI.
  • The arrow may be counter-intuitive in terms of data flow, sending the wrong messages to non-technical reviewers.

Therefore I've found it useful to extend the UML notation to provide a more complete and intuitive picture, with two main changes:

  • Draw interfaces on each component as required,
  • Draw the relationship directly between the interfaces as an "object flow", indicating the dominant data flow between them.

Remember that content is more important than representation. If you’re modelling to communicate, use models which avoid confusion.

Modelling Subsystem Dependencies

An interesting (ab)use of the UML Use Case diagram is as a DSL to model dependencies between things. Essentially you model each thing using a Use Case shape, and use dependency relationships. The things can be almost anything: modules in a system, systems in an enterprise, or activities in a project or programme. (Strictly speaking, of course, component dependencies should be modelled using a UML component diagram, but I've found it useful to use a "generic" dependency diagram in some cases.)

[an error occurred while processing this directive]
© Andrew K Johnston / Questa Computing Ltd. 2003-2015
Page last updated 14 May, 2015 11:16

Agile Architect is run by Andrew Johnston of Questa Computing Ltd.

Search the Site:

Welcome

Principles for the Agile Architect

Role of the Agile Architect

Search the Site

Contact Me

Links to Interesting Sites

Agile Architecture Articles

Agile Architecture Blog Index

Other Writings

Share this page:

Share |