Developing a tool for listing unused exported classes in the GENERIS code
Shrestha, Sabin (2014)
Shrestha, Sabin
Metropolia Ammattikorkeakoulu
2014
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2014120418408
https://urn.fi/URN:NBN:fi:amk-2014120418408
Tiivistelmä
This project was carried out for Enoro Oy and the main goal was to find solutions for reducing the redundant classes which are located in the existing GENERIS code base. As GEN-ERIS is a standard information system for different energy markets, the current implementation requires several classes which are dependent on each other, which increases the risk of redundant class relationships as well as duplicated class declarations. The existing class hierarchies needed to be improved, so that the code complexity could be decreased and at the same time, to lower the compilation time, which would result in higher productivity for the software process.
The project aimed to produce a tool which could be used to identify all redundant exported classes from GENERIS modules. Since GENERIS is an energy information system that is built on the Windows operating system using the Microsoft Foundation Class framework and the C++ programming language, the tool needed to be able to parse the programming language syntax and GENERIS-specific implementations. The prototype needed to be evaluated and tested against specific use cases using the existing code base.
There were certain limits which affected the accuracy of the end-results, which could be resolved by further fine-tuning of the recognition pattern. However, the prototype product can be considered the basis for further development. More development ideas have also been suggested in order to turn the results into practical use.
The project aimed to produce a tool which could be used to identify all redundant exported classes from GENERIS modules. Since GENERIS is an energy information system that is built on the Windows operating system using the Microsoft Foundation Class framework and the C++ programming language, the tool needed to be able to parse the programming language syntax and GENERIS-specific implementations. The prototype needed to be evaluated and tested against specific use cases using the existing code base.
There were certain limits which affected the accuracy of the end-results, which could be resolved by further fine-tuning of the recognition pattern. However, the prototype product can be considered the basis for further development. More development ideas have also been suggested in order to turn the results into practical use.