O'Reilly logo
live online training icon Live Online training

Fundamentals of Analyzing and Modernizing Monolithic Architectures

Breaking up or restructuring the big ball of mud

Topic: System Administration
Alexander von Zitzewitz

Many organizations have large monolithic applications in operation that are getting harder and harder to maintain and adapt to new requirements. These applications have grown over many years and are usually in bad shape. If there ever was an architecture, it can hardly be recognized in the resulting big ball of mud. If this describes your situation, don't feel bad; many of your fellow developers are experiencing the same thing. It’s really hard to keep a large application in good shape without enforceable architectural models.

Join expert Alexander von Zitzewitz to learn the foundations of good architecture. You’ll explore the concept of architectural fitness functions and dive into software metrics with architectural relevance. You’ll also investigate architectural smells like cyclic dependencies and bottleneck classes along with ways to refactor to prevent quality issues.

After learning the fundamentals, you’ll do some real code analysis using a free tool called Sonargraph-Explorer. Get hands-on with basic assessment and analysis techniques as well as techniques and methods for breaking up or restructuring monolithic applications—and measure your progress every step of the way.

What you'll learn-and how you can apply it

By the end of this live online course, you’ll understand:

  • Architectural fitness functions and other important software metrics to measure coupling and maintainability
  • Basic strategies to break up or restructure complex codebases

And you’ll be able to:

  • Use free tools to assess the architectural health of an existing system, gather metrics, and analyze dependencies
  • Develop a basic strategy to transform monolithic codebases

This training course is for you because...

  • You’re an architect who wants to better keep control of your codebase.
  • You want to become an architect and learn how to keep things sustainable.
  • You're responsible for technical and architectural quality and want to be able to measure and quantify those aspects.
  • You want to become a more effective metrics-driven software architect.

Prerequisites

  • A hello2morrow account (required to take part in the course exercises)
  • A computer with Sonargraph-Explorer installed (required to take part in the course exercises)
  • A basic understanding of software engineering principles
  • Experience working on larger projects with teams of three or more people
  • A working knowledge of Java, C#, Python, or C/C++ (Useful but not required—the principles taught are universal, but the tools used only work for those languages.)

Recommended preparation:

About your instructor

  • Alexander von Zitzewitz is a serial entrepreneur in the software business and one of the founders of hello2morrow, an ISV specializing in static analysis tools that can enforce architecture and quality rules during development and maintenance of software systems. He’s worked in the industry since the early 1980s and focuses on the role of software architecture and technical quality for successful project outcomes. He moved from Germany to Massachusetts in 2008 to develop hello2morrow’s business in North America.

Schedule

The timeframes are only estimates and may vary according to how the class is progressing

Architecture basics (55 minutes)

  • Presentation: What is architecture?; architectural patterns; architecture characteristics (-illities); architecture pattern languages; architectural fitness functions
  • Q&A

Break (5 minutes)

Metrics for architects and code smells (55 minutes)

  • Presentation: Software metrics for architects; architectural smells; why cyclic dependencies are bad and how to break them; architectural models and architectural governance
  • Q&A

Break (5 minutes)

Transforming architecture (60 minutes)

  • Presentation and hands-on exercises: Monolith assessment checklist; live analysis (follow along on your own code); tracking metrics over time; tools (open source and commercial) and methods for architectural governance
  • Q&A