Saturday, February 26, 2005

The Eclipse Modeling Framework

I've downloaded EMF, and I'm trying to figure out how it can help either my final project or my work in general (at work I also use Eclipse). I like the fact that it can generate a model from Java source code, but I wish it could also generate a Rational Rose model.
Can it do that?


Monday, February 21, 2005

My Final Project

Today I had a presentation-exam about my project. I talked about my progress and my future work. It went pretty good, but I didn't get a grade yet. It is expected in a week or so.

To summarize:
My project is about code generation from UML statecharts. Using Java and XSLT, I take the XMI that represents the statecharts, and generate a QHSM state machine in Java/C.

Confused? Sorry. I'll try to explain:
  • Statecharts are a graphical representation of complex systems. They are based on finite state automata, but extend (and complicate) them greatly.
  • UML is the Unified Modeling Language. It is a graphical language that allows software developers to describe their software designs in a visual way. Statecharts are a part of UML. There's a FAQ about UML here.
  • XSLT is a language for transforming XML into other text, including other XML. Here's a tutorial.
  • XMI (the XML Metadata Interchange) is a representation of UML data (and some other metadata) in XML format.
  • QHSM is "Quantum Hierarchical State Machine", which is Miro Samek's implementation of a state machine (a state machine is an executable statechart). It is described in his book.
If I'm not clear enough - please post a question as a comment below, and I'll elaborate on the topic of your choice.

For implementing both Java and C code generation, I use something like Martin Fowler's Two Step View pattern (I was actually told that there exists such a pattern right after I suggested my approach, which I though to be original) - first, I create an XML pseudo-code state machine. Then I take this XML and turn it to either a Java or a C state machine.

It was fun, and I learn a lot, especially on XSLT and XML. I have more things to do for this project. Among them:
  • Implement the C code generator - at the moment I only have a Java code generator, because that's the main priority of the company for which I develop the software.
  • Build some king of testing tool, that can take events from a script file and fire them at a running machine.

Sunday, February 06, 2005

This Blog is Still Alive!

I have not abandoned this blog. I'm still here. It's just that I'm very busy - work, exams, and the project are killing me. I'll be back.