A Software Architect's View On Diagramming

43
A Software Architect’s View on Diagramming By: Keith Schreiner

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

Page 1: A Software Architect's View On Diagramming

A Software Architect’s View on Diagramming

By: Keith Schreiner

Page 2: A Software Architect's View On Diagramming
Page 3: A Software Architect's View On Diagramming

Types of Diagrams

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

• Hardware• (System Architecture) [The Servers]

• Application• (Application or Component Architecture)

• Sequence

(for this presentation)

Page 4: A Software Architect's View On Diagramming

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:

Page 5: A Software Architect's View On Diagramming

UML DiagramsOther types of diagrams:

Class Diagram State Diagram

Page 6: A Software Architect's View On Diagramming

UML DiagramsOther types of diagrams:

Activity Diagram

Page 7: A Software Architect's View On Diagramming

Database DiagramsOther types of diagrams:

Page 8: A Software Architect's View On Diagramming

Types of Diagrams

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

• Hardware• (System Architecture) [The Servers]

• Application• (Application or Component Architecture)

• Sequence

(for this presentation)

Page 9: A Software Architect's View On Diagramming

High-Level Example

Page 10: A Software Architect's View On Diagramming

High-Level Example

Page 11: A Software Architect's View On Diagramming

High-Level Example

Page 12: A Software Architect's View On Diagramming

Hardware Diagrams

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

• Lists servers• Can be simple or complex

Page 13: A Software Architect's View On Diagramming

Hardware Example

Page 14: A Software Architect's View On Diagramming

Hardware Example

Page 15: A Software Architect's View On Diagramming

Hardware Example

Page 16: A Software Architect's View On Diagramming

Hardware Example

Page 17: A Software Architect's View On Diagramming

Hardware Example

Page 18: A Software Architect's View On Diagramming

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”

Page 19: A Software Architect's View On Diagramming

Application Example

Page 20: A Software Architect's View On Diagramming

Application Example

Page 21: A Software Architect's View On Diagramming

Application Example

Page 22: A Software Architect's View On Diagramming

Application Example

Page 23: A Software Architect's View On Diagramming

Application Example

Page 24: A Software Architect's View On Diagramming

Application Example

Page 25: A Software Architect's View On Diagramming

Application Example

Page 26: A Software Architect's View On Diagramming

Application Example

Page 27: A Software Architect's View On Diagramming

Application Example

Page 28: A Software Architect's View On Diagramming

Sequence Diagrams

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

• Also called:– Event Diagram– Timing Diagram

Page 29: A Software Architect's View On Diagramming

Sequence Example

Page 30: A Software Architect's View On Diagramming

Sequence Example

Page 31: A Software Architect's View On Diagramming

Tools?

Page 32: A Software Architect's View On Diagramming

Whiteboard

Page 33: A Software Architect's View On Diagramming

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.

Page 34: A Software Architect's View On Diagramming

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.

Page 35: A Software Architect's View On Diagramming

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

Page 36: A Software Architect's View On Diagramming

Sparx System’s “Enterprise Architect”

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

Page 37: A Software Architect's View On Diagramming

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

Page 38: A Software Architect's View On Diagramming

Online Tools

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

Page 39: A Software Architect's View On Diagramming

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/

Page 40: A Software Architect's View On Diagramming

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.

Page 41: A Software Architect's View On Diagramming

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

Page 42: A Software Architect's View On Diagramming

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.

Page 43: A Software Architect's View On Diagramming