16
Representing Patterns Representing Patterns in UML in UML Andy Bulka Andy Bulka www.atug.com/andypatterns www.atug.com/andypatterns Technical Director Technical Director Austhink Software Austhink Software www.austhink.com www.austhink.com

Representing Design Patterns In Uml Andy Bulka Oct2006

  • Upload
    tcab22

  • View
    1.822

  • Download
    0

Embed Size (px)

Citation preview

Representing Patterns Representing Patterns in UMLin UML

Andy BulkaAndy Bulkawww.atug.com/andypatternswww.atug.com/andypatterns

Technical DirectorTechnical DirectorAusthink SoftwareAusthink Softwarewww.austhink.comwww.austhink.com

The competitorsThe competitors

IBM Rational has “pattern instances” on your UML IBM Rational has “pattern instances” on your UML diagram and you can re-apply a pattern and it enforces diagram and you can re-apply a pattern and it enforces it.  it. 

ObjectIf has some pretty cool design pattern support ObjectIf has some pretty cool design pattern support and uses roles and colors to indicate patterns.and uses roles and colors to indicate patterns.

EA (Enterprise Architect has design pattern support, EA (Enterprise Architect has design pattern support, though the merge feature is a bit buggy at the moment).though the merge feature is a bit buggy at the moment).

StarUML is free, and has a configurable patterns system.StarUML is free, and has a configurable patterns system. ModelMaker, classic pattern “enforcer”, with code ModelMaker, classic pattern “enforcer”, with code

regions etc. Now a bit old, has only a limited number of regions etc. Now a bit old, has only a limited number of patterns – to be improved in the next few months.patterns – to be improved in the next few months.

IBM Rational - pattern instance itself IBM Rational - pattern instance itself is a first class modeling elementis a first class modeling element

The pattern instance itself is a first class The pattern instance itself is a first class modeling element, and appears in the model and modeling element, and appears in the model and can be placed in a diagram and has relationships can be placed in a diagram and has relationships to other model elements that bind its parameters to other model elements that bind its parameters to actual model elements. to actual model elements.

Having pattern instances in a model help Having pattern instances in a model help designers understand which patterns have been designers understand which patterns have been applied (since many might have been).applied (since many might have been).

Applying Patterns to the workspaceApplying Patterns to the workspace

Most have a clear, standard way of applying Most have a clear, standard way of applying patterns i.e. you specify if you want to create a patterns i.e. you specify if you want to create a newnew class or class or mergemerge a role with an existing a role with an existing class.  UML diagram previews in the pattern class.  UML diagram previews in the pattern wizards, too.  And most tools also have a way of wizards, too.  And most tools also have a way of representing the pattern on the diagram e.g. representing the pattern on the diagram e.g. collaboration lines or class stereotypes or collaboration lines or class stereotypes or association lines with role labels. association lines with role labels.

Rational has Rational has drag dropdrag drop wiring – nice. wiring – nice.

Pattern is comprised ofPattern is comprised of

Classes (one or more)Classes (one or more) AttributesAttributes MethodsMethods Code fragments within methods (aspects?)Code fragments within methods (aspects?) Meta information tying all the above togetherMeta information tying all the above together

Ways of Representing the Grouping Ways of Representing the Grouping of classesof classes

Shading areas behind classes, grouping them. Shading areas behind classes, grouping them. (vlissedes)(vlissedes)

Shaded areas can overlap to indicate classes Shaded areas can overlap to indicate classes performing different roles within different performing different roles within different patterns i.e. patterns i.e. a class can be part of more than a class can be part of more than one patternone pattern

Sticky notes near classesSticky notes near classes Role labels on properties (ObjectIf)Role labels on properties (ObjectIf)

Ways of Representing the Grouping Ways of Representing the Grouping of classesof classes

Collaboration objects (Rational)Collaboration objects (Rational) Text Lists in a panel (ModelMaker)Text Lists in a panel (ModelMaker) Package diagrams with interfaces to the pattern Package diagrams with interfaces to the pattern

exposed. exposed.

The Software ToolsThe Software Tools

DemoDemo

Rational (by IBM and the inventors of UML)

ObjectIF – excellent pattern support. Gui overly redundant and confusing in some places, but community edition is free.

StarUML – free, poor code generation but has customisation facility in some javascript like language. Documentation poor.

Modelmaker – pattern support lags behind – missing complete set of GOF patterns. Check it again in 2007.

Enterprise Architect – pattern blending support poor, but good UML tool with good reverse engeneering and layout. Interface very messy though. Affordable.

StarUMLStarUML

Free Free tooltool

StarUMLStarUML

R.click and select Apply PatternR.click and select Apply Pattern

StarUMLStarUML

Select the class you want to apply the singleton Select the class you want to apply the singleton to. If you don’t select, a new class will be to. If you don’t select, a new class will be created.created.

StarUMLStarUML

Voila!Voila!

StarUMLStarUML

To view the generated code, r.clickTo view the generated code, r.click

StarUMLStarUML

Output not very correct in this case – missing Output not very correct in this case – missing private constructor.private constructor.

Other demosOther demos

I demo’d all the 5 tools on the night, and there is a video of me doing them all.

At the moment the only video released is on my website is the Rational UML tool portion of the demo – see www.andypatterns.com

Final wordFinal word

Also seeAlso see www.andypatterns.comwww.andypatterns.com for another more academic for another more academic paper on design pattern automation – pros and cons paper on design pattern automation – pros and cons and asking is it a good idea in the first place.and asking is it a good idea in the first place.