Skip to content

Latest commit

 

History

History
27 lines (17 loc) · 2.63 KB

README.md

File metadata and controls

27 lines (17 loc) · 2.63 KB

Object-Calisthenics-Analyzer

Eclipse plugin analyzing the rules of the Object Calisthenics

This tool ist developed by Fabian Schwarz-Fritz

Project Goal

The Object Calisthenics are an exercise to improve the quality of Object Oriented code. Good Object Oriented Code is hard to learn when coming from procedural code. Many developers think in Object Oriented code – but do they really write good Object Oriented Software?

The rules of the Object Calisthenics are an exercise that trains developers to enhance their Object Oriented coding style. The exercise is composed of nine rules that the developer has to stick with. Behind every rule there is a purpose why the rule is important and why it leads to better Object Oriented Code.

Usually the developer doesn’t use these rules in real world project but applies them in short two hour exercises in which he designs and implements minimalistic software with little requirements. This could be a Minesweeper or a TicTacToe game for example. These training challenges should lead the developer to write better code and be more aware of code quality in real world projects.

But when completing the training challenge the developer has to observe his own code and check if he satisfies the nine rules of the Object Calisthenics.

Providing tool support for the Object Calisthenics could shorten the time of the training and furthermore guarantee that the developer sticks to the given rules. The academic evaluation of a tool validating the Object Calisthenics and the prototypical implementation of such a tool is the objective of this report.

Therefore the rules shall be analyzed and the patterns behind it shall be explained. Furthermore, it is the purpose of this report, to evaluate if it is possible to create tool support for automatic validation for every rule. Is it possible to validate the rule? Can the rules be categorized? Are there similarities in validating the rules? Can the rules be grouped in different categories? It is the goal of this report to examine these questions.

The prototypical implementation of tool support is done as an Eclipse plugin validating three rules of the object calisthenics and displaying the validation result with simple indicators in the User Interface is also part of this report. Implementing validation support for more rules and providing a more sophisticated User Interface is optional.

Project Documentation

The project documentation can be found under the following link: documentation repository