DubJUG 254 - Author and C4 Creator Simon Brown
Details
Thursday 27th February sees the fourth of Dublin Java User Groups 2025 series, hosting Jersey based Simon Brown to share two great talks to strengthen your knowledge in your Java career and software architecture.
The C4 model for visualising software architecture
It's very likely that most software architecture diagrams you've seen are a confused mess of boxes and arrows. Following the publication of the Manifesto for Agile Software Development in 2001, teams have abandoned UML, discarded the concept of modelling, and instead place a heavy reliance on conversations centred around incoherent whiteboard diagrams or shallow "Marketecture" diagrams created with Visio. Moving fast and being agile requires good communication, yet software development teams struggle with this fundamental skill. A good set of software architecture diagrams are priceless for aligning a team around a shared vision, and for getting new-joiners productive fast.
Simon's first talk of the evening explores the visual communication of software architecture, and is based upon his years of experience working with software development teams large and small across the globe. We'll look at what is commonplace today, the importance of creating a shared vocabulary, diagram notation, and the value of creating a lightweight model to describe your software system. The content is based upon the "C4 model", which Simon created as a way to help software development teams describe and communicate software architecture, both during up-front design sessions and when retrospectively documenting an existing codebase. It's a way to create maps of your code, at various levels of detail, allowing you to tell different stories to different audiences.
Reverse-engineering architecture diagrams from your Java app
You've adopted the C4 model and have a collection of zoomable system context and container diagrams. These are useful for having high-level conversations, but they don't cover the internal implementation details of your Java app. You consider creating a C4 component diagram.
Unfortunately the size and complexity of your Java codebase makes manually drawing this out of the question, and reverse-engineering the codebase with a generic tool produces a cluttered diagram that literally shows everything. How do you create useful component level diagrams that remain up to date with minimal effort? Is this even possible?
Join Simon for a discussion of how to tackle this problem, where he will cover the theory and tactics behind how to reverse-engineer meaningful component diagrams, before presenting a live demo of how to use the open source Structurizr DSL to put the techniques into action.
.
WHAT ELSE
As usual, plenty of craic, networking and refreshments courtesy of partners Integral Ad Science, FINEOS, and Stackand.Co Recruitment at the super easy location tcube workspaces BANG in the middle of Dublin city centre.
REGISTRATION IS FREE ON OFFICIAL BOOKING SITE HERE
