Part of calibration applications use specific log files, called TLG, as a way of com-munication between their different job steps. The components that provide all the necessary functionality for reading/writing data from/to TLG files are the TestLog components (family of components), thus, every client of TLG files has to communi-cate with a relevant TestLog component.TestLog has been part of the software since 2000 and at that time the Metrology domain, the software archive, and the software community were much smaller. No proper requirements had been recorded and no maintenance has been done since then. Thus the original design is not scalable enough to support multiple platforms and in order to do so new specific TestLog components were introduced.The software era from 2013 and later strives to have different release strategies and even different releases for parts of the software. With the current design, TestLog cannot follow this route; it will continue splitting. Thus the decision to start an inves-tigation for its improvement has been taken.The main issues that current TestLog is dealing are the following:• Pluggability - ability to add/remove/split/combine components without extra work and providing more/less data.• Compatibility - ability of the "new" TestLog to communicate with existing cli-entsIn order to overcome these problems a new TestLog design that gives emphasis to the software quality characteristics was created. In that way software is easier to work with, to understand and to maintain. New design brings the following changes:• Drivers register themselves automatically to TestLog.• TestLog is eliminated to one common component that is decoupled from driver data interfaces.• It stores/retrieves to/from TLG files only weak type data.• Drivers provide the needed subsets of their data through query interfaces. The latter (only the needed ones) are used by calibration applications.• TestLog communicates with drivers by using their new common interface.The benefit from the above changes is that now is possible to add/remove/combine/ split drivers or their data without putting any overhead to TestLog component (no change, no recompilation).A prototype that follows a pure object oriented approach was implemented and proved that the proposed solution is feasible and that an integration of C++ (proto-type) with C (current implementation) can be done without a significant risk.This project was the first attempt to develop a pluggable TestLog architecture and it was mostly focused on a frequently changing part of the TLG data, the machine con-stants. However the same logic can be applied to other configuration data. Last but not least, the migration strategy that was developed gives the direction of moving to the new design without introducing big risks.
|Award date||1 Oct 2014|
|Place of Publication||Eindhoven|
|Publication status||Published - 1 Oct 2014|