application of design heuristics in the designing and implementation of object oriented...

Post on 14-Jan-2016

237 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related