Bertschi, Pascal and Deicha, Andreas (2018) Safe C++ Guidelines Checkers und Quick Fixes. Student Research Project thesis, HSR Hochschule für Technik Rapperswil.
FS 2018-SA-EP-Bertschi-Deicha-Safe C++ Guidelines Checkers und Quick Fixes.pdf - Supplemental Material
Download (2MB) | Preview
Abstract
Introduction
Cevelop is a C++ Integrated Development Environment based on Eclipse developed by IFS Institute for Software at HSR. In previous projects students designed and created various plug-ins for Cevelop with static analysis covering rules from the C++ Core Guidelines. Other guidelines share similar rules that overlap. Implementing static analysis for additional guidelines requires duplicated effort, using them causes multiple warnings on the same code and confuses C++ developers following such guidelines.
Objective
The objective of our work is to implement a prioritization system across multiple sets of C++ Guidelines. The developer should enable one or more guidelines and their relative priority. These configurations should be available from the Eclipse preference menu.
Our plug-in should make extending Cevelop with more guidelines and rules quicker and safer. Therefore our plug-in provides common infrastructure shared across guideline checkers and the ability to integrate multiple guideline's rules.
Result
We developed an Eclipse plug-in acting as a managing instance for other C++ guideline plug-ins providing static analysis and quick-fixes.
We validated our concept by porting/implementing rules from AUTOSAR C++, MISRA C++, and the C++ Core Guidelines. The checking and fixing of eight rules was already implemented by an existing Core Guidelines plug-in and refactored to match identical rules from AUTOSAR and MISRA where applicable and to use our new infrastructure.
We implemented a guideline preference page to configure available guidelines. We ran two usability test rounds and improved our plug-in accordingly.
We provide a help page in Cevelop in assisting novice users in configuring guideline settings, also available as a separate user manual in our project report.
We implemented a guideline preference page to configure all available guidelines. We ran two usability test rounds and improved it.
We implemented a help page in Cevelop in order to help the user to understand how to configure guideline settings.
We wrote a user and developer manual. The user manual contains the same content as the help page mentioned above and explains how to deal with our plug-in. How to add rules or a completely new plug-in is explained in the developer manual. In order to write the developer manual, we implemented a new MISRA rule used as an example to demonstrate the application of our new infrastructure.
Item Type: | Thesis (Student Research Project) |
---|---|
Subjects: | Area of Application > Development Tools Technologies > Programming Languages > C++ Metatags > IFS (Institute for Software) |
Divisions: | Bachelor of Science FHO in Informatik > Student Research Project |
Depositing User: | OST Deposit User |
Contributors: | Contribution Name Email Thesis advisor Sommerlad, Peter UNSPECIFIED |
Date Deposited: | 31 Jan 2019 11:50 |
Last Modified: | 31 Jan 2019 11:50 |
URI: | https://eprints.ost.ch/id/eprint/701 |