A Software Architect's View On Diagramming

Post on 13-Dec-2014

355 views 2 download

Tags:

description

Diagramming is an important tool to have in one’s repertoire but how can one go about learning to do it effectively? This presentation will shed some light on some use cases plus share some research. Learn about different types of software diagrams, the different diagramming tools available, and Visio tips & tricks to make your diagrams pretty.

Transcript of A Software Architect's View On Diagramming

A Software Architect’s View on Diagramming

By: Keith Schreiner

Types of Diagrams

• High-Level• (Enterprise Architecture) [Very few boxes]

• Hardware• (System Architecture) [The Servers]

• Application• (Application or Component Architecture)

• Sequence

(for this presentation)

UML Diagrams• Unified Modeling Language (UML)• A standard (ISO 19501) general-purpose modeling

language for software engineering.• Created in the 1990’s by Rational Software.

Other types of diagrams:

UML DiagramsOther types of diagrams:

Class Diagram State Diagram

UML DiagramsOther types of diagrams:

Activity Diagram

Database DiagramsOther types of diagrams:

Types of Diagrams

• High-Level• (Enterprise Architecture) [Very few boxes]

• Hardware• (System Architecture) [The Servers]

• Application• (Application or Component Architecture)

• Sequence

(for this presentation)

High-Level Example

High-Level Example

High-Level Example

Hardware Diagrams

• Also called:– “System Architecture”– “Logical Architecture”– “Physical Architecture”

• Lists servers• Can be simple or complex

Hardware Example

Hardware Example

Hardware Example

Hardware Example

Hardware Example

Application Diagrams

• Also called “Component Diagrams”• Are the most common type of diagram• Can show how app’s interact, or• Can show the “internals” of an app• Are often complex• But the goal is to make them easy to “read”

Application Example

Application Example

Application Example

Application Example

Application Example

Application Example

Application Example

Application Example

Application Example

Sequence Diagrams

• An interaction diagram that shows how processes operate with one another and in what order.

• Also called:– Event Diagram– Timing Diagram

Sequence Example

Sequence Example

Tools?

Whiteboard

Paper & Pencil orWhiteboard and Camera

• Very easy and quick to use.• Should be your starting point before going to

an electric tool.• No rules, just draw, erase, and draw some

more.

Microsoft Visio• The “500 pound gorilla” of diagramming software. • While a part of the “Office” suite, Visio is its own product.• It used to be a part of an MSDN subscription, but no more. • $300 - $600. Or $13 to $18 a month with Office 365.

OmniGraffle for MacLike Visio, but on a Mac or iPad ($100-$200)

Sparx System’s “Enterprise Architect”

A diagramming tool with many awards & versions. $200-$700. Like “Visual Studio”. Big learning curve.

SmartDrawA top diagramming and charting tool. Like an easy-to-use Microsoft Office. $300-$600

Online Tools

• Gliffy• Lucid Chart• Draw.io• Creatley• More… Some free, some paid.

WebSequenceDiagrams.com• Other tools can create sequence diagrams, but

this is the easiest.• Free, create an account (to save diagrams on

their server), and a paid version (for more features)

• Demo: Arrows, Notes, Groups, more… • API. • Plug-ins.

Demo: http://www.websequencediagrams.com/

Microsoft Visio• Visio can be intimidating & complex, but it can

do lots of things.• To help myself get starting, I either steal an

existing diagram or start with my “Legend” diagram.

• Can also start from one of Visio’s templates.

Visio Tips and Tricks• Boxes• Arrows• Add Notes, Steps• Other objects– Visio Stencils– Clip Art– Google Image Search

Visio Tips and Tricks• Add a Title• Figure out who this diagram is for.– Create different diagrams for different people.

• Use Colors• Add a Legend• Make lines don’t overlap• Make readable • Possibly be printer-friendly.