Electronical Devices are found in practically every device these days. Whether it is a lawn mower or a TV, a lift or agricultural machinery, nothing will work nowadays without computer-based components. The built-in microchips are getting more and more powerful, and so the implemented software, too, is getting more and more complex. As a consequence, software Engineering and testing know-how for Electronical Devices become more and more important.
Software development process
As a service provider we support you during all phases of your software development process. Our employees are highly experienced in all fields relating to the software development process for your specific Electronical Device, starting with setting up of requirements (Requirement Engineering) and by defining suitable architectures and designs, source code analyses, the various test stages and the verification and validation. To us it does not matter whether your development process is based the waterfall model, the V model or an agile development approach (e.g. SCRUM). We are familiar with all of them.
Code review incl. static code analysis
To check whether the requirements are met, reviews are carried which are aimed at proving that the software modules cover the requirement and design stipulations. Furthermore, by using corresponding code coverage analyses the different levels the code covers (e.g. C1 coverage) are measured using tests and reviews, and traceability to the test cases is checked. Worst case runtime analysis (WCET analysis) and floating point error analysis are further processes used to provide evidence for the quality of a code. Of course we consider your internal coding standards.
Verification and validation
For the field of verification and validation we are your competent partner, too. We have several years of experience in verification and validation projects. In cooperation with you we will set up the optimum verification and validation strategy. We will also practically support you in implementing this within the projects.
A lift manufacturer developed high speed lifts for buildings with more than 50 floors and 300m height. The development was carried out in line with EN81. certitudo GmbH carried out a manual, technically oriented code review for the control software. The source code consisted of
- 99 Include Dateien (.h) and
- 84 source Code files (.c) with
- 51933 Lines of Code von insgesamt 67125 Lines.
The aim of the analysis was to, in the first place, show and document technical deficits and risk factors within the code, which had the potential to influence the stability and reliability of the software during operation, for example due to potential wrong calculations, endless loops, crashes etc.
The source code we received had already been checked by the customer on a tools basis. We carried out further supplementary analyses using the tools
- VisualCodeGrepper V18.104.22.168 and
- clang V 3.4.2.
In a second step the interrupt routines were checked manually and the results documented. During this we analysed whether the competing access of variables during an interrupt activity could occur.
As part of the tool based code analysis using the tool VisualCodeGrepper several abnormalities were detected and documented. Some abnormalities had been evaluated as False-Positive. Other abnormalities affect the commenting in the source code, which indicate and incomplete implementation.
Compiling the source code with the clang compiler resulted in additional relevant abnormalities, which had to be corrected.
During the analysis of the interrupt routines possible race conditions were detected, which subsequently were evaluated together with the development team with a view to establishing whether they could become critical in an operating system and would thus pose a potential danger.
Following the common evaluation of the race conditions and the other abnormalities by the manufacturer and the certitudo GmbH employees and the subsequent revision, the high speed lifts were successfully commissioned.