Published Sep 3, 2019

Episode 115: Architecture Analysis

Eberhard Wolff and Bernhard Merckle delve into the intricacies of architecture analysis, addressing the challenges of architectural decay in software systems, and explore tools and techniques for effective architectural refactoring. This episode offers a comprehensive guide to maintaining architectural integrity through static analysis, consistency checks, and a comparative review of the best tools available for software architects.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Refactoring

    Refactoring software architecture involves identifying and resolving architectural violations, which can be complex due to dependencies and anti-patterns. explains that tools can highlight these issues, but the designer's intelligence is crucial for effective refactoring 1. He mentions that while tools provide awareness of problems, they require users to define constraints and manually fix issues 2. Merckle also notes the importance of addressing anti-patterns and bad smells to maintain software quality.

       

    Tools

    Various tools support architectural refactoring by offering features like dependency management and graphical representations. highlights tools like Sotograph and Soto Arc, which provide advanced capabilities for defining and visualizing architecture constraints 3. He also discusses the importance of IDE integration and automation in these tools to enhance usability and efficiency 4. Despite their power, users must navigate complex metrics to effectively utilize these tools.

       

    Static Analysis

    Static analysis in software architecture operates at multiple levels, from micro to macro, and up to architectural levels. and Merckle discuss how these levels help identify and prevent issues, enhancing software quality 5. At the architectural level, analysis focuses on layers and dependencies, making it easier to manage than micro-level checks. This approach allows for a comprehensive understanding of software structure and potential violations.

Related Episodes