Visualise, document and explore your software architecture
2
The primary use for diagrams and documentation is communication and learning
3
Software architects struggle to communicate software architecture
4
Do you use UML?
5
Why is there a separation between the logical and development views?
6
Our architecture diagrams don't match the code.
7
We lack a common vocabulary to describe software architecture
8
A common set of abstractions is more important than a common notation
9
A model of the static structure forms the basis for other views
10
Working software over comprehensive documentation
11
The code doesn't tell the whole story
12
Describe what you can't get from the code
13
The scope is a single software system
14
How do you keep software architecture documentation up to date?
15
What tools do you recommend?
16
Whiteboards and paper for up front design
17
Text-based diagrams can be version controlled, generated from build scripts, etc
18
Architecture description languages provide a way to describe architecture as text Darwin, ACME, Koala, Wright, ...
19
Diagrams are not useful for architectural improvement if they are not connected to the code
20
Reverse-engineer code to diagrams?
21
Prefer models over diagrams
Description:
Explore various approaches and tools for visualizing, documenting, and exploring software architecture to build a better team in this one-hour conference talk. Learn why effective communication of software architecture is crucial for technical leadership, direction, and consistency. Discover how to bridge the gap between working software and comprehensive documentation, addressing common misinterpretations of the agile manifesto. Gain insights into creating a common vocabulary for describing software architecture, understanding the importance of static structure models, and keeping documentation up-to-date. Examine the pros and cons of different tools and techniques, from whiteboards and text-based diagrams to architecture description languages and code-connected models. Understand the value of reverse-engineering code to diagrams and the preference for models over diagrams in improving architectural understanding and team collaboration.
Visualise, Document and Explore Your Software Architecture