Today’s small and medium-sized enterprises (SMEs) in the software industry are faced with major challenges. While having to work efficiently using limited resources they have to perform quality assurance on their code to avoid the risk of further effort for bug fixes or compensations. Automated static analysis can reduce this risk because it promises little effort for running an analysis. We report on our experience in analysing five projects from and with SMEs by three different static analysis techniques: code clone detection, bug pattern detection and architecture conformance analysis. We found that the effort that was needed to introduce those techniques was small (mostly below one person-hour), that we can detect diverse defects in production code and that the participating companies perceived the usefulness of the presented techniques as well as our analysis results high enough to include the techniques in their quality assurance.
A basic idea of model driven development (MDD) is to capture all important design information in a set of formal or semi formal models that are automatically kept consistent by tools. This paper reports on industrial experience from use of MDD and shows that the approach needs improvements regarding the architecture since there are no suggested ways to formalize design rules which are an important part of the architecture. Instead, one has to rely on time consuming and error prone manual interpretations, reviews and reworkings to keep the system consistent with the architecture. To reap the full benefits of MDD it is therefore important to find ways of formalizing design rules to make it possible to allow automatic enforcement of the architecture on the system model.