Post on 14-Jan-2016
Application of Design Heuristics
in the Designing and Implementation
of Object Oriented Informational Systems
Object Oriented Programming
Successful use Extensive use Difficult use
A lot of books, studies, discussions What is missing ;
Tools
Already many existMetrics, Refactoring, Profilers, “Bug finders”
Limited applications in the field of OO ProgrammingThe problem solution is difficult to find
Design Heuristics
Empiric rules Popularly acceptable
Simple and comprehensible Easy applicable
Powerful warning mechanisms
Design Heuristics
They give spark for careful revision They do not give the solution, they find the dangerous points
Flexible rules They do not have strict formulation Different elasticity, depending on the system The user decides about how and when to use them
Heuristic Example
All the fields of a class should be private
Classic rule of OO programming .
The ascertainment of violation of the rule is simpleHowever how easy is the control of a system that consists of hundreds of classes ;
Specifications of the Tool
Most basic condition is to have practical value Have to support
Modern programming languagesModern environment of handling Right communication with the user Fast implementation, comprehensible results
Implementation of a satisfactory number of useful heuristics
Heuristic Inspections Plug-in
Implementation for the JAVA programming languageImplementation as a plug-in in a modern IDE
100% incorporation in the users work environment Direct implementation, direct results Exploitation of the IDE forceEasy development , maintainance and expendability
A Case Study
Testing a final semester project of a student of our department, with the
Design Heuristics Tool.
This is the IntelliJ IDEA’s environment.
In the Analyze menu we choose Heuristic Inspections Settings
We check the Enable Summary Report Output Mode
Again in the Analyze menu we choose Inspect Code
Selection of the desired Heuristics and a short description for each one
The results window with a small description for each violation
Finally we select the Output Type of the results and Write a Report.
The results in Excel format
Some of the Design Heuristics compared to other code metrics violations in the specific project
Conclusions
Design Heuristics tests have been applied to a variety of applications . The outcomes of those tests ranged from a few hundreds for small systems, to a few thousands for larger ones.
We must emphasize in that point that finding a Heuristics violation doesn’t mean that there is a problem that must be solved. Besides that there are Heuristics that are conflicting. Heuristics violations only indicate potential problems and not errors in code.
Future Improvements
Addition of more Heuristics
Minimize execution time
Finding a more “mathematical”
way to express the most
subjective among Heuristics
Thank you for your attention