Summary:
The implementation phase of the test-bed involved re-implementing the Health Watcher scenario using a variety of OO and AO languages. Initially the existing Java and AspectJ implementations were analysed and there functionality and coding style aligned to ensure consistency between them. This base version was then re-implemented using CaesarJ, again this implementation had to be carefully to ensure the same code style and functionality was achieved. Following this phase, a variety a evolutionary changes are applied creating a new version of the Health Watcher system for each the Java, AspectJ and CaesarJ version. In all nine evolutionary changes were applied and so created ten versions of Health Watcher in each language. Following the implementation a series of metrics were applied that involved assessing the modularity, effort and stability of the implementations.
Implementation versions 1-10:
The following two zip files contain all the necessary resources to execute HealthWatcher (based on the AspectJ v2). The first is the database needed to provide the data for HealthWatcher, this data can be added as an ODBC data source in Windows. The second is based on the AspectJ v2 implementation (linked above). The zip file contains all the necesssary HTML files, ant scripts and BAT files to execute HealthWatcher. These resources can be customized for use with other versions (including the Java and CaesarJ implementations). Further instructions can be provided upon request. In addition to the BAT scripts, the Constants.java file will have to be configured according to your deployment (see additional points below).
Database.zip HealthWatcher.zip
The general sequence of actions are:
1. Execute "ant healthwatcher-aspectj"
2. Execute setVars.bat in the /bats directory
3. Execute registry.bat
4. Execute serverBD.bat
5. Execute servlet.bat
6. Open the URL http://localhost:8080/servlet/healthwatcher.view.servlets.ServletWebServer?file=index.html
Additional points that require acting upon before compiling HealthWatcher.
1. Edit \bats\setVars.bat and modify the HW_HOME path to point to the directory which contains the \bin directory.
2. Change the constant FORM_PATH in the \src\healthwatcher\Constants.java before you compile healthwatcher to point to where healthwatcher's html pages are located on your system.
3. When adding the database as a data source in windows make sure you give it the name 'test'.
Documentation:
Concern Shadowing Pattern Shadowing Interaction Shadowing
Results:
Effort Measurements Stability Measurements Java SoC Metrics AspectJ SoC Metrics CaesarJ SoC Metrics Java Coupling, Cohesion and Size Metrics AspectJ Couple, Cohesion and Size Metrics CaesarJ Coupling Cohesion and Size Metrics
Charts:
Thanks to Thiago Bartolomei, Eduardo Magno, Uirá Kulesza, Sérgio Soares, Nelio Cacho, and Marcos Dósea for helping to produce this implementation/documentation.