Safe C++ Guidelines Checkers und Quick Fixes

Bertschi, Pascal and Deicha, Andreas (2018) Safe C++ Guidelines Checkers und Quick Fixes. Student Research Project thesis, HSR Hochschule für Technik Rapperswil.

[thumbnail of FS 2018-SA-EP-Bertschi-Deicha-Safe C++ Guidelines Checkers und Quick Fixes.pdf]
Preview
Text
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: HSR 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

Actions (login required)

View Item
View Item