Understanding your Project with metrics: Instability
Instability measures the relative susceptibility to breaking changes of a software component. A component with a high Instability is likely to change more often than one with a low Instability.
Software architecture is a broad topic and many different patterns have emerged. Acronyms like MVC, MVVM, TCA and many more exist to answer one question: How to structure your app in an understandable, maintainable and extendable manner. But even with a great pattern a project can get messy. Software architecture metrics give you a quantified insight into your project. They point you to places that can be improved and guide you to a better implementation. These posts explain some metrics in more detail. Learn more about which are measured by Sw!ftalyzer and how you can use them to improve your project!
Instability measures the relative susceptibility to breaking changes of a software component. A component with a high Instability is likely to change more often than one with a low Instability.
Splitting an app into modules is an essential technique for managing software complexity. Modules allow us developers to focus on smaller parts of the app at a time by hiding away complexity. Learn more about how to create modules that hide complexity instead of adding to it.
This metric shows how many of your code entities depend on frameworks. The more of your entities use a framework, the higher is the dependency to that framework. A high dependency is not always bad, but it can increase the maintenance costs and your vulnerability in case of breaking changes in a framework.
The architecture of a software project is often large and complex. This makes it hard to see if a change in the source code reduces or adds more complexity, making the software harder to maintain in the future. Find out how to measure this complexity with Sw!ftalyzer.