Friday 31 August 2012

Topcased AADL

While learning by doing I had an introduction into TOPCASED v.5.2.0, an Eclipse based IDE for development of complex safety critical real-time hard- and sofware systems in the area of aerospace and automotive. Installation ran smoothly after downloading the bundle from the project page. To get a first overview of the tool, I looked over the official presentations available here (short version) and here (long version) - don't worry, without someone talking besides the slides it won't take much time to read them. I found the article: "TOPCASED: System development using Open Source" very interesting and helpful to find the motivation of the project and place it into the industrial context.

In the context of SOCIS, the AADL Designer that comes with TOPCASED is of interest and should serve as an example of what an AADL modeler should incorporate. The first mystery to solve was, which one of the tools in TOPCASED is the AADL Designer? After long research among the available documentation I was totally confused and didn't find the answer. My mentor helped me forward here and told me the AADL Designer is named "ADELE"! This was a big step forward!

Having a path indicated and some presentations to begin with, I started learning about ADELE. My entry point was the project homepage for general information. Next, I have read the ADELE presentation and played with the tool. Just some basic stuff: creating a project, drawing some elements and interconnecting them. I had the same feeling as I had when playing with the Obeo Designer for the family demo.

This being said, the introduction to the technologies and tools I will be using has got to an end. Now it's time to work and in parallel study in more detail the tools and technologies.

Tuesday 28 August 2012

First steps towards AADL

"[...] when you learn to read then you learn everything you didn't know before. But when you write you write only what you know already [...]" I think Umberto Eco's statement describes very good the situation I find myself in: by reading information available on the web I have the power to learn everything about AADLs, but writing on the blog is very difficult as my knowledge is just starting to shape up.

For others that are in a similar situation to mine, I think writing down my trace to learn AADL could be helpful. The first dilemma to solve is what does the acronym AADL stand for? Initially the acronym meant "Avionics Architecture Description Language", but AADL covers all the embedded real time systems. In 2004 the Society of Automotive Engineers released the standard named "Architecture Analysis & Design Language" which is the current meaning of AADL. According to the definition found here "the AADL is a modeling language that supports early and repeated analyses of a system's architecture with respect to performance-critical properties through an extendable notation, a tool framework, and precisely defined semantics."

At a first reading that definition didn't cleared much my understanding, so I had to dig more into the details. First I left the first 'A' in AADL out, and read shortly about Arhitecture Description Language and found out that AADL is the secondary candidate of being the best ADL. Having the term "ADL" cleared, I moved forward for a general introduction about AADL on wikipedia. The information found in the "The Architecture Analysis & Design Language (AADL): An Introduction" report by Peter H. Feiler, David P. Gluch, John J. Hudak is very detailed and might be just a little bit to much for a snooker. The sketchy description found here can be a much better starting point and then build up with the report previously mentioned.

Going through those lectures I can scarcely say I have a basic idea of what an AADL is. The road is long ahead and resources are plenty - next in line would be the AADL community page and I will move to "learning by doing". Creating a model with already existing AADL modelers will shortly follow on my learning path.

Friday 24 August 2012

Week 4

and I am still learning and getting used to the tools, before starting the real work. As time goes by, the tools and technologies get more specific and custom tailored to solve a specific problem.

This week I had my introduction to the Obeo Designer. I started with small steps reading and trying to understand Viewpoint. For this purpose, the "Viewpoint Specifier Guide" is, in my opinion, a very detailed document - this compared to my zero knowledge on this topic. Further, it was very helpful and made much more sense when put together in a practical example: The Obeo Designer Tutorial.

I have faithfully followed all the steps in creating the basic family example. The Specifier Guide was during the training a very good reference point as I returned for detailed explanations very often to it. It was sometimes a bumpy road, as I didn't correctly understood some steps, or some tools just didn't wanted to work as expected. It was a great volume of information that I assimilated and still there are issues which I do not understand and do not work... A small break, patience, reading once more the documentation and talking to my mentor should fix this.

This week, I have created my first basic graphical modeler for a simple example. I found it very interesting, challenging to assimilate the new technology but also rewarding when elements did, what they were supposed to do!

Monday 20 August 2012

Graphical Modelers

Continuing the learning process, previous week I have worked on finding out the theoretical backgrounds of graphical modelers. I have read, as suggested, about:

The purpose of this lecture was to get a feeling of what is currently available to develop graphical modelers - and I did.

I have spent some extra time in following tutorials for Acceleo 3. After reading some randomly available information on the internet, performing the Quick Start and the Getting Started Guide put order in my thoughts. After these two exercises I have got a slight feeling about the code generator and it's syntax, but the road is still long ahead to feel confident with the tool...


Friday 10 August 2012

The world of the Eclipse Modeling Framework

"The EMF project is a modeling framework and code generation facility for building tools and other applications based on a structured data model. From a model specification described in XMI, EMF provides tools and runtime support to produce a set of Java classes for the model, along with a set of adapter classes that enable viewing and command-based editing of the model, and a basic editor." [source] This text was my entry point to this world, quite interesting as EMF can sustain my work by automatic code generation.

A short walk through the EMF documentation got me familiar with the terminology required to work with the framework, but at a deeper look, I found the information there overwhelming. I choose to try out the "learn-by-doing" method and followed the tutorial "What every Eclipse Developer should know about EMF". This was a far better start to understand the framework and see what you can develop using it. I paid attention to all the details in the first part of the tutorial to better understand the ideas and concepts presented. This was very helpful, but getting to the 4th part of the tutorial, "EMF API" got me totally confused. I fought to get it over and succeeded, but with great gaps of knowledge. Reading about the EMF.Edit Framework here, following another tutorial available on www.vogella.com and having a good night sleep cleared up the things a lot. Reading the extra resources indicated during the tutorial also helped a lot clarifying things. I decided to run once more through the tutorial "What every Eclipse Developer should know about EMF" and it turned out to be a good decision mainly of two reasons:

  1. the tutorial made much more sense. I could understand the connections between the elements and how they work together to build up an application
  2. I now know how bowling league is structured ;)
The tutorial by Lars Vogel added new powers by introducing the Ecore Diagram (instead of directly using the Ecore model). For my personal understanding it was ok to first do this tutorial and then the one by Lars Vogel, but I figured out, that Lars Vogel's tutorial is a glimpse easier. Maybe it would have been a good idea to start with that one. It was especially helpful at the beginning by presenting the packages required to be installed before starting - this information lacked to my first read tutorial. 


I would say, the purpose of this 2nd week of SOCIS2012 to understand what an Ecore metamodel is, to define my own DSLs and how to generate basic editors for it, was achieved.

Friday 3 August 2012

First three days of SOCIS2012

Since Wednesday things got moving, in the right direction I'll say. I had my first contact with my mentor and agreed upon the communication channel.

Walking through the Eclipse IDE tutorial was a nice starting point for accommodating to the technology, but things got more interesting with the Eclipse plug-in development tutorial. Only once in your geek life a new Eclipse application says "Hello world!" to you.

Thursday 2 August 2012

ESA Summer of Code in Space 2012 here we go!

The 1st of August was a special day: I got accepted for the ESA Summer of Code in Space 2012. The complete participants list can be found here. Coding starts in 3....2....1....