Using a subset of AADL to define medical application architectures

Code Gen Vision
The driving vision behind the MDCF Architect: An app’s architecture is specified in AADL, translated to Java and XML skeletons, and then run on a compatible platform.

Late last year (October-ish) I began working on a way to specify the software architecture of applications (apps) that run on medical application platforms (MAPs).  The specification takes the form of a subset of the Architecture Analysis and Description Language (AADL) and some supporting tooling — namely a plugin for OSATE2 (an Eclipse distribution which supports the editing of AADL) that translates from AADL to runnable MAP (aka Java) code. This work, referred to as the “MDCF Architect,” is part of my research here at K-State, and in fact this task constitutes a large part of my research proficiency exam — the (oral) examination all KSU PhD students must complete in order to become PhD candidates.

The work reached some good milestones in April, culminating in a paper submission to the Software Engineering in Healthcare workshop at this year’s meeting of Foundations of Health Information Engineering and Systems. My paper was accepted, and in about a month I’ll get to go to Washington DC and give my first conference presentation — I’m pretty excited.

Working with AADL, Eclipse, and a host of supporting technologies necessary for sound software engineering (Jenkins for automated building, JUnit for testing, Maven for building, Sphinx for documentation, Pygments for code highlighting, Jacoco for code coverage) was pretty cool, and one of the main reasons I enjoy studying in the SAnToS lab at K-State: not only am I working on the science part of computer science, but the ideas we work on get translated into real-world, publicly distributed tools.  So, while it’s not exactly likely that anyone outside of academia would find this work super interesting (yet!), the project is open-source (under the EPL), and freely available.