What does the work resilience means to you? What are the characteristics of a resilient system? How is resiliency affecting a software system? How can we design and built resilient systems?
During June we had the honor and delight to participate to the 14th International Conference on Open Source Systems (OSS 2018). We presented our work, “Open Source Software Resilience Framework”, a preliminary study that aims to adapt the famous City Resilience Framework, created by Arup with the support of the Rockefeller Foundation, to the Open Source Software Engineering Domain.
(last updated: February 4th, 2018)
There are several ways to analyze software. Depending on the scope we may be interested in the quality of the code, the documentation, the developer’s team and its activity and so forth. Here are some free software metric tools that can get you started with software analysis.
Tools for Static Program Analysis
Static program analysis refers to the analysis of the source code of a software rather than an analysis on an execution level.
- PHPQA is a free, open source software project that supports a wide range of analyzers (e.g. phploc, pdeend, phpmetrics, etc.) for PHP. [demo]
- Checkstyle, Findbugs and PMD are free, open source software projects for Java, also available as plug-ins for the Eclipse and IntelliJIdea IDEs.
Didn’t find what you were looking for? You can try this exhaustive list of tools, grouped by programing language, maintained by Wikipedia.
Software Engineering Guidelines Compliance
- Better Code Hub checks your code base for compliance against 10 software engineering guidelines – and gives you immediate feedback on where to focus for quality improvements. The tool can be used free for open source and non-commercial use.
Community Activity Analysis
Big software projects are usually built from several developers. Those teams or communities – for Open Source projects – are usually organized using a control versioning system (svn, git. etc.). Those control versioning systems are storing valuable data about the activity of those teams / communities the analysis of which can lead to very interesting findings.
- GitsGtats – for projects using git-like environments (Github, Gitlab, etc.). [demo]
- StatSVN – for projects using SVN. [demo]
- Grimoire Lab – a very mature tool that can help with data gathering from several platforms (Github, Bugzilla, Slack channels, etc.), data analysis and visualization. [demo] NOTE: If you are interested in using Grimoire Lab for your own projects you can test the online service Cauldron.io (free for public projects on Github).