Lessons from Visualizing Software Architecture Structure Conformance at Thermo Fisher Scientific
摘要
Modern software-intensive systems are large and complex. Therefore, well-defined software architectures are required to manage such systems. However, implementing and maintaining a software architecture can be challenging in practice. For instance, architecture erosion can cause the implemented architecture to deviate from the intended one. Industrial practitioners often lack effective tools to check that an evolving software system continues to conform to its intended architecture. In this paper, we share the lessons we learned from adopting, extending, and applying a state-of-the-art architecture visualization tool for conformance checking the structure and dependencies between intended architecture (i.e. subsystems and their relations) and implemented architecture (i.e. implemented subsytems and their dependencies in the codebase) on a large industrial software project. Specifically, we collaborated with Thermo Fisher Scientific and used a graph-based visualization tool on one of the company’s systems. Using the tool, we can create a hierarchical view of layered software architectures including subsystem and component dependencies. During demonstration sessions, we presented the visualizations to 14 experts at Thermo Fisher Scientific who are involved with different subsystems to elicit their feedback. Using our tool, the experts found it easier to focus on relevant areas of the system and to detect architecture violations and anomalies. The experts expressed great enthusiasm for using the tool on their own. Our insights suggest that software architecture visualization tools can aid software architects in maintaining the conformance between intended and actual software architectures. However, applying existing tools faces challenges regarding scalability, usability, and the integration into company workflows. Our lessons highlight opportunities for future research and improvements in (open-source) software architecture tools.