Tuesday, September 11, 2007

How does UML apply to SOA?

I am currently participating in a UML / OOAD training class learning about the UML language and what it provides the Object Oriented development space. A question that I had asked early in the class to the instructor was how SOA can take advantage of UML. Unfortunately the instructor did not have an answer with his background being in application development versus service/integration development.

So here are the diagrams we have covered:
  • class diagram
  • sequence diagram
  • state machine diagram
  • activity diagram

Still to go are:

  • component diagram
  • use case diagram

Based on the above it appears that BPEL could be described in a non-BPEL fashion using the activity diagram. An activity diagram could simply be described as a flow chart. It supports the definition of activities, looping, conditions etc. Sounds kinda like BPEL doesn't it.

Another diagram that appears to have some use is the component diagram. I am not 100% sure but the component diagram typically shows components in a system and how they interact with one another. Looking at Martin Fowler's publication UML Distilled (Third Edition), pg 141:

"Use component diagrams when you are dividing your system into components and want to show their inter-relationships through interfaces..."

Additional details in the publication and diagram examples appear to provide a way to visually describe a SOA where Web Services are the components.

I haven't researched this with other organizations but will trying to apply these prinicipals/approaches for some upcoming projects to help in the detailed design documentation phase.

No comments: