Agile documentation with Confluence and Sparx Enterprise Architect

41
Agile architecture documentation using Confluence and Sparx Enterprise Architect Per Spilling, Objectware JavaZone 2009

description

A presentation showing how one can create high quality agile software architecture documentation by creating a mashup of Confluence and the Sparx Enterprise Architect UML tool. *Update:* The source code for the Sparx EA diagram export tool is now available on github: https://github.com/perspilling/eatools

Transcript of Agile documentation with Confluence and Sparx Enterprise Architect

Page 1: Agile documentation with Confluence and Sparx Enterprise Architect

Agile architecture documentation using Confluence and Sparx Enterprise Architect

Per Spilling, ObjectwareJavaZone 2009

Page 2: Agile documentation with Confluence and Sparx Enterprise Architect

Agenda

• Why mashup of wiki & UML tool

• How

• Tips for architecture documentation in Confluence

Page 3: Agile documentation with Confluence and Sparx Enterprise Architect

Typical problems with traditional documentation

Page 4: Agile documentation with Confluence and Sparx Enterprise Architect

Doc 1.0

App 1.0 App 2.0

Page 5: Agile documentation with Confluence and Sparx Enterprise Architect

Foo Bar Foo Bar

Page 6: Agile documentation with Confluence and Sparx Enterprise Architect
Page 7: Agile documentation with Confluence and Sparx Enterprise Architect
Page 8: Agile documentation with Confluence and Sparx Enterprise Architect
Page 9: Agile documentation with Confluence and Sparx Enterprise Architect

Better way

UML tool

wiki

UML model Repository

Documentation Repository

Page 10: Agile documentation with Confluence and Sparx Enterprise Architect

UML tool

wiki

Sparx Enterprise Architect Atlassian Confluence

The chosen tools

Page 11: Agile documentation with Confluence and Sparx Enterprise Architect
Page 12: Agile documentation with Confluence and Sparx Enterprise Architect
Page 13: Agile documentation with Confluence and Sparx Enterprise Architect
Page 14: Agile documentation with Confluence and Sparx Enterprise Architect

Exporting from EA

Page 15: Agile documentation with Confluence and Sparx Enterprise Architect

hmm...

EARoot/EA1/EA11.png

Page 16: Agile documentation with Confluence and Sparx Enterprise Architect

The solution: Generate diagrams via the EA API

Page 17: Agile documentation with Confluence and Sparx Enterprise Architect

Running the eatools program

Page 18: Agile documentation with Confluence and Sparx Enterprise Architect

The names of the generated files correspond with the model

model/domain_model/domain_model.png

Page 19: Agile documentation with Confluence and Sparx Enterprise Architect

The result: “Live” UML diagrams in wiki

Page 20: Agile documentation with Confluence and Sparx Enterprise Architect

Confluence tips & tricks

Page 21: Agile documentation with Confluence and Sparx Enterprise Architect
Page 22: Agile documentation with Confluence and Sparx Enterprise Architect

Examples of useful plugins

• Reporting Plugin

• Linking Plugin

• Copy Space

• Label Tools

• Metadata Plugin 2

• Navigation Plugin

• ImageMap Plugin

• Jira Plugin

• Graphviz Plugin

• Chart plugin

Page 23: Agile documentation with Confluence and Sparx Enterprise Architect

Copy space plugin

Page 24: Agile documentation with Confluence and Sparx Enterprise Architect

Versioning

Page 25: Agile documentation with Confluence and Sparx Enterprise Architect

Dynamic table of contents

Page 26: Agile documentation with Confluence and Sparx Enterprise Architect

.. do this

Update the page layout (Confluence admin). See recipe: http://confluence.atlassian.com/display/DOC/Adding+a+Navigation+Sidebar

Page 27: Agile documentation with Confluence and Sparx Enterprise Architect

Confluence page templates

Page 28: Agile documentation with Confluence and Sparx Enterprise Architect

Dictionary term template

Page 29: Agile documentation with Confluence and Sparx Enterprise Architect

Navigation Plugin

Dictionary term template

Page 30: Agile documentation with Confluence and Sparx Enterprise Architect

Metadata Plugin 2

Dictionary term template

Page 31: Agile documentation with Confluence and Sparx Enterprise Architect

Label Tools plugin

Dictionary term template

Page 32: Agile documentation with Confluence and Sparx Enterprise Architect

Using the template

Page 33: Agile documentation with Confluence and Sparx Enterprise Architect

Creating reports using metadata

Metadata Plugin 2: {metadata-report}

Page 34: Agile documentation with Confluence and Sparx Enterprise Architect

Add-page “buttons”

Linking Plugin

Specify which template to use

Page 35: Agile documentation with Confluence and Sparx Enterprise Architect

Use labels to specify relationships

Page 36: Agile documentation with Confluence and Sparx Enterprise Architect

depends_on_bird-app-003

Page 37: Agile documentation with Confluence and Sparx Enterprise Architect

depends_on_bird-app-003

Page 38: Agile documentation with Confluence and Sparx Enterprise Architect

Project reports with Chart & Metadata Plugin

Page 39: Agile documentation with Confluence and Sparx Enterprise Architect

{chart:type=bar|width=500|height=200|orientation=horizontal}|| || Tasks |||| Ikke påbegynt | {metadata-matches:Status|root=@parent|pages=@descendents|label=pcom_oppgave}Ikke påbegynt{metadata-matches} ||| Påbegynt | {metadata-matches:Status|root=@parent|pages=@descendents|label=pcom_oppgave}Påbegynt{metadata-matches} ||| Ferdig | {metadata-matches:Status|root=@parent|pages=@descendents|label=pcom_oppgave}Ferdig{metadata-matches} |{chart}

Page 40: Agile documentation with Confluence and Sparx Enterprise Architect

Graphviz plugin - ex: {spacegraph}

Page 41: Agile documentation with Confluence and Sparx Enterprise Architect

Thank you

Java program for generating diagrams will be made available for downloading after the conference