Keeping complexity under control in a large-scale software system is difficult, but is more than worth the investment. Complexity is a tool to measure and visualise software complexity to create visibility on the quality and maintainability of software systems. More thoughts about the importance of high-quality software can be found in ๐ Measuring Software Complexity and โป๏ธ Sustainable Software.
The tool attempts to provide an analysis of code health and quality through 3 main contributing factors:
- ๐ Local Code Quality
- Change frequency
- Interconnectedness
All code is open source under the MIT license and can be found in the following repositories:
- complexity: The main repository of the ๐งโ๐ป๏ธ Kotlin backend
- complexity-typescript-parser: The tool to gather data from โจ๏ธ TypeScript based repositories using the TypeScript compiler
- complexity-data-visualization: The UI to visualise data using ๐ D3 coming from the Kotlin backend. More information can be found in ๐ Complexity Data Visualization.
๐ Complexity Architecture contains high-level architecture diagrams of the tool.