230 likes | 454 Views
Application of Design Heuristics in the Designing and Implementation of Object Oriented Informati onal Systems . Object Oriented Programming. Successful use Extensive use Difficult use A lot of books, studies, discussions What is missing ;. Tools . Already many exist
E N D
Application of Design Heuristics in the Designing and Implementationof Object OrientedInformational Systems
Object Oriented Programming • Successful use • Extensive use • Difficult use • A lot of books, studies, discussions • What is missing;
Tools • Already many exist • Metrics, Refactoring, Profilers, “Bug finders” • Limited applications in the field of OO Programming • The 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 simple • However 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 languages • Modern environment of handling • Right communication with the user • Fast implementation, comprehensible results • Implementation of a satisfactory number of useful heuristics
Heuristic Inspections Plug-in • Implementationfor the JAVA programming language • Implementationas aplug-in in amodern IDE • 100% incorporation in the users work environment • Direct implementation, direct results • Exploitation of theIDE force • Easy 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
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.
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