Gain as-is visibility into your software architecture

Access a real-time software architecture diagram and visualize, optimize, and innovate your software systems.

Get a clear, as-is visualization of your software architecture.

Yellow dots representing SIG branding

How it works

The image displays a mockup of a software architecture diagram on the Sigrid platform by the Software Improvement Group. The layout is divided into a grid with connected modules, each represented by rectangular boxes. These blue boxes contain abbreviated names, such as "DEV-SUPPORT" and "TOOLS," and are linked by lines that indicate data flow or relationships between components. Orange boxes labeled "SQL DATABASE A" and "SQL DATABASE B" denote database connections. Along the top, a menu bar features tabs labeled "Summary," "Code breakdown," "Component coupling," "Component cohesion," "Code reuse," and "Communication centralization," suggesting different views or features of the platform. To the right, a rating panel includes a circular diagram with interlocking colored circles labeled with terms like "STRUCTURE" and "COMMUNICATION." Below, a list rates components on several criteria using star symbols, with accompanying numerical scores. An "Export" button is visible at the top right.

Access a real-time software architecture diagram

See every aspect of your software architecture—components, AI systems, subsystems, and dependencies, including undesirable ones—in one detailed software architecture diagram. Understand the real-time structure and interconnections within your systems for more informed decision-making.

Assess your software architecture’s adaptability

Sigrid evaluates how well your software architecture adapts to new requirements or technologies. This helps you manage change effectively and avoid legacy system issues—crucial for the long-term success of your business. 

The image is a dashboard interface displaying an overview of software architecture on the Sigrid platform. At the top, there is a horizontally aligned menu featuring tabs such as “Data coupling,” “Technology prevalence,” “Bounded evolution,” “Knowledge distribution” (highlighted), and “Component freshness.” Below, the screen is divided into two sections: a grid of labeled rectangles on the left and data charts on the right. The grid on the left contains multiple rectangles representing different components with labels such as "FILES," "SRC/MONGO," "BAZEL," and more. Each rectangle includes icons and text indicating the total number of authors and the estimated average FTE. Notably, "SRC/MONGO" is highlighted with an orange background. On the right, there is a bar chart labeled "MONGODB," utilizing a color gradient ranging from orange to green, depicting a scale from 1.5 to 5.5 stars. Below, a line chart titled "Estimated FTE Trend" shows data points over specific dates ranging from June 2023 to May 2024.
The image depicts a software architecture overview on the Sigrid platform. At the top are rectangular tabs with titles: "Summary," "Code breakdown," "Component coupling," "Component cohesion," "Code reuse," and "Communication centrality.” The main section is divided into two areas. On the left, a schematic displays several rectangular blocks representing components: "FILES," "BAZEL," "BUILDFARM," "BUILDSCRIPTS," "ETC," "EVERGREEN," "SITE_SCONS," and "SRC/MONGO." Each block is uniformly aligned, with "SRC/MONGO" highlighted in orange while the others are blue or gray. An arrow marked with "100" points upwards from "SRC/MONGO" to "BUILDSCRIPTS." On the right, a bar graph next to the label "MONGODB" shows various bars in green and orange, representing code reuse and duplication metrics for the components listed. Below the graph, a table titled "Duplication Between Sub-Components" details source, target, and count information.

Gain actionable insights for software architecture improvement

Sigrid breaks down your software architecture into components and subcomponents, helping you pinpoint the specific areas that require immediate attention. This allows you to improve your software architecture incrementally within your regular development cycles. 

Customize and configure based on your needs

Sigrid offers extensive customization options through its configuration files, enabling you to define custom components, exclude files, or adjust dependency settings as needed. It also supports multi-repo systems, providing a unified architectural view across multiple projects or teams.

The image displays a mockup of a software architecture overview within the Sigrid platform. The interface shows a list of components related to MONGODB, organized within a sidebar menu. The current selection is a highlighted blue bar labeled "Build Scripts", and to its right, there is an "X" icon representing a close option. The expandable list displays various components with circular colored markers: blue for "Bazel" and "Buildfarm," red for "Build Scripts," and others in blue and orange including "Antithesis," "Bazel_testbuilds," "Ciconfig," "Client," "Cost_model," and "Gdb." The overall design uses a mix of gray and white backgrounds to create a clean and organized visual.
Centric logo

“With the help of the Sigrid platform, we could implement the new architecture, ensure it was SaaS-ready, and further future-proof the system."

Adrie Boonstoppel, Software Development Manager at Centric

Start exploring your software architecture in real-time today

Frequently asked questions

What is software architecture?

Software architecture refers to the fundamental structure and organization of a software system architecture. According to SIG's definition, it's "the structural design of a software system and refers to the way a given codebase is divided and grouped together based on responsibilities of the system, and the underlying dependencies between these responsibilities."

Key aspects include:

  • Components and dependencies (logical view)
  • Business functions (Domain Driven Design aspects)
  • Documentation of software architecture design decisions
What problems does using a software architecture pattern solve?

Software architecture patterns help solve common design problems and provide proven structures for organizing software systems.

Some key benefits include:

  • Improved maintainability by reducing coupling between components
  • Better scalability through modular design
  • Easier evolution and extension of the system over time
  • Standardized approaches that are familiar to developers
Is MVC a design pattern or a software architecture pattern?

The software architecture design is set up according to the MVC model. The MVC model provides support for a modular and separate structure of the application architecture. It's worth noting that MVC is often used as a high-level organizing principle for entire applications or large components, which aligns more with the concept of a software architecture pattern. Design patterns, on the other hand, typically deal with smaller-scale problems within the code.

The line between software architecture and design patterns can sometimes be blurry. MVC influences both the overall structure of an application and how individual components interact, so you might see it referred to as both in different contexts. In practice, MVC is often implemented alongside other patterns.

It's also important to note that there are variations on MVC, like MVP (Model-View-Presenter) and MVVM (Model-View-View-Model), which are also considered software architecture patterns. These variations aim to address some of the limitations or specific use cases that developers encountered with traditional MVC.

How does Sigrid measure quality attributes in software architecture?

SIG uses a model that maps quality attributes in software architecture to 10 system properties across 6 main categories:

  • Structure: Code breakdown, Component cohesion, Component coupling
  • Communication: Communication centralization
  • Data access: Data coupling
  • Technology usage: Technology prevalence
  • Evolution: Component freshness, Bounded evolution
  • Knowledge: Knowledge distribution

These properties are measured through static code analysis and repository history analysis.


Is it possible to use more than one software architecture pattern in a single software system? If so, how would this work?

It's common to combine multiple software architecture patterns in large systems. For example, you might use a microservices architecture overall, with individual services implementing MVC internally. The key is ensuring the patterns complement each other and align with your software system architecture goals.

How do I enable software architecture quality for my project?

Software architecture design quality is available by default. Once you’ve published your system, you will automatically see an “Architecture” tab appear when you view your system in Sigrid.

You can use the scope documentation to customize the software architecture quality analysis for this system, if necessary.

What information does SIG use for the change history analysis?

Sigrid uses your anonymized repository history to calculate metrics on which code has been changed, and when those changes were made. These statistics do not contain personal information. In fact, if you use Sigrid CI, the developer names will be anonymized client-side, so before anything is published to Sigrid. You can find more information on Sigrid data usage in our Privacy Statement.

Which version control systems does SIG support for analyzing the change history?

Git, which has over 95 percent market share. Supporting other version control systems would require an unreasonable amount of effort for the SIG infrastructure. However, clients can convert their repository to Git during their pipeline.

Examples:

Are Git submodules supported?

Yes. This does require you to initialize the submodules as part of your build pipeline, but this is done automatically by basically all mainstream development platforms. If you are manually cloning your repository in your pipeline, use git clone --recurse-submodules to clone both the “main” repository as well as its submodules.

How does the change history analysis process merge commits versus squashing commits?

Teams working with Git will often use slightly different workflows: merge commits or squashing commits. We support both as part of our analysis. When using merge commits, we only count the “original commit” and not the merge commit itself, to avoid counting every change twice. When squashing commits, we analyze the squashed commit instead of the original commits, for the practical reason that we no longer have access to the original commits after they have been squashed.

How does SIG's model differ from other software architecture consulting and assessment approaches?

SIG's model is unique in its focus on measuring software architecture consulting flexibility through code analysis. Unlike many theoretical models, it provides concrete, measurable insights based on the actual implemented software architecture in software engineering. It's designed to work across different software architecture patterns and can be applied consistently across an organization's entire enterprise architecture software landscape.