Itacio (pronounced e-tuh-theo) is a component model, whose aim is to offer a general development strategy which, relying on component combination, allows static, automatic verification of the software being built.
Its motivation arises from the fact that the process of building software upon components is esentially an artesan activity, and testing is not enough to detect many kinds of errors that could be avoided. So I think a static analysis should be performed; a conservative, exigent, automated analysis that pinpoints any invalid component combination. If it is not guaranteed that a union is correct, it is considered to be incorrect and not acceptable.
Nowadays, if we leave apart the usual (and basic) signature-checking mechanisms, components come mostly with human-readaable documentation. This documentation is ambiguous and incomplete, and anyway, people who read it make mistakes. Should components use a more serious characterization, many problems could be detected almost at design time, simply by matching the exigences and guarantees of the involved components.
Itacio promotes the idea of more solid specifications. But formal methods are usually difficult to understand and use. The aim of the Itacio model is to offer a way of specifying components that is useful in "real world", without very specialized knowledge or skills.
Of course, the specification of a component can offer guarantees that it in fact doesn't fulfill. But this problem has no solution anyway.
At the first stages, the Itacio project had no funding other than the author's own time and money. Afterwards, the ATACS project started as a step towards the global goals stated in Itacio.
"I shut in precious marble for the eternal mansion the tender body of Itacio".This is the translation of the text that appears on the lid of Itacio's sarcophagus. It's a visigotic sarcophagus made of white marble, and some authors think that it dates back to the fifth century. It is conserved in the Pantheon of the Kings at the Cathedral of Oviedo in Asturias (Spain). It is decorated in Byzantine style, and it seems that it was not built in Asturias, but probably in Zamora; it supposedly came to Asturias during the Monarchy (probably in the reign of Alfonso II) after a military incursion. Nobody knows who Itacio was, but the inscription seems to tell that he died at an early age.
Summarizing, we have a hard shell, created for protecting something delicate and mysterious. A shell with an inscription where its mission is clearly stated, giving the precise information about its purpose but almost nothing about what's inside it. A shell built to last forever and withstand centuries. An object that somebody else has made, but that we the Asturians have adopted as if it were ours, integrating it with the rest of our art treasures.
So, apart from making a reference to my cultural roots and the ancient history of Asturias, and having into account what has been said above about the purpose of the project, it seems like a good name for a component model.
It was an excellent opportunity to overview the state of the art in component-based software engineering. The workshop format was a bit different this year; in previous editions, the number of participants was much higher, whereas this time the organizers decided to be much more selective, and only about 15 people were present at the sessions (17 position papers were accepted out of more than 40; having passed that filter is really encouraging).
My presentation was accepted with possitive opinions and no controversy. It seems that, in general terms, the project orientation is good and the ideas behind it have not been already exploited. (By the way, Ireland is beautiful and Irish people are really lovely...)
A second paper about Itacio was presented at the SOCO/ISFI 2001 Workshop on Knowledge Management. Also, I've received some questions about Itacio from a Swiss-based research group.
A new paper was accepted for JISBD 2001 (Conference on Software Engineering and Databases) in Almagro, Ciudad Real (Spain). 38 articles were selected from a set of 89 papers received. This work was presented at the conference with very encouraging opinions.
A little bit of programming work has been done in order to check the ideas presented here. This, of course, is only a prototype. Unfortunately, not all the functionality of this prototype can be exposed, because the inference engine relies on the ECLiPSe CLP system, which I cannot freely distribute.
Since ICSE 2000, I've been working in implementation issues, trying to build something that I can use to make my experiments. I've built a website, wich I operate on my development machine via a Microsoft Personal Web Server. By means of a web-based user interface, now I can execute validations and edit my systems without remembering too much command lines. Also, I've used some third-party Java classes to render system graphs without drawing; I can just describe my systems via text files. The whole thing is based on XML/XSL/VML, with a C++ CGI and the Java classes behind (no applets here)
Right now, I'm trying to leverage the work of Carine Lucas on reuse contracts, collecting her ideas in Itacio, just to show that Itacio can be applied at this abstraction level. This is just a matter of CLP programming, but that ain't easy for me... I've never been even a decent Prolog programmer, so I'm a newbie in this area.
October update: after succesfully implementing two of Carine's eight cases, I've found that I can't rely on current design for next cases. There is a design flaw in knowledge representation that compromises future quality and maintainability. So... I go back, right from the start again. That's life.
January: I've been working in a paper that I've sent to the KM Workshop of SOCO-ISFI 2001, and this helped me formalize a bit the ideas I've collected from my experiments. The project has been stopped for awhile because I've just started a new job. I start thinking in another example (apart from the contracts one) for applying Itacio to a web page generation system like the one used for these ones :-)
February: After starting from scratch as mentioned in October, five of the eight contract modifiers are implemented.
March: Good news. The eight contract modifiers are implemented, and it seems to work. My paper for SOCO/ISFI 2001 has been accepted. I've just sent another paper to the 27th Euromicro conference (about applying Itacio to the contracts model). I've received some questions from other researchers about Itacio.
Also in march, I start to work on applying Itacio to a remote diagnostics system for personal computers. I think it's a good idea, and it seems to work. By the way, I'm starting to enjoy Prolog; maybe in the future I'll master the whole CLP thing.
At the end of april, bad news: the Euromicro paper has been rejected, and so has been a second one to the ATI VIth conference of Software Quality. I don't try to hide it; everybody's got something to hide except me and my monkey.
June-July: I've sent an article to JISBD 2001 and another to SISOFT 2001, and remote diagnostics for PCs based in Itacio is included in the Technological Offer of the University of Oviedo. I also attend the SOCO/ISFI 2001 in Paisley, Scotland, where I present my work.
July: I work on developing a component-based sound processing system. I expect to apply to it the Itacio component model as a practical example. The articles sent to SISOFT and JISBD are accepted.
August: I work on a new (and I expect last) Itacio prototype; this one is database-based.
September: At the end of August (after a hard-working summer) the prototype is already working. I use it in several experiments, including the sound processing system previously mentioned.
Also in September, I present a use case of Itacio (remote diagnostics of Windows-based computers) at the Technology Transfer Conference in the University of Oviedo.
After that, I focuse on the manuscript for my Ph. D. Dissertation, since I have almost reached the point I had previewed. In fact, I had already written a lot of it in previous years, but I decide to start from scratch again.
October: In order to put the Logic Programming aspects of Itacio under public scrutiny, the 12th I send a paper to CLPSE 2001 on applying Itacio to the WaveX system. The 18th it gets accepted with great interest on the part of the organizers.
November: My paper on contract verification is presented at the JISBD in Almagro, with great success; it is accepted with great interest by the attendees.
December: The paper for CLPSE is presented in Paphos (Cyprus) with great success. The experts mostly agree with my ideas and find them good. This was the last facet of Itacio that had not been verified by expert opinions.
On December the 15th, meeting the deadline I had calculated in August, I finish a draft of my dissertation. The abstract and some other details are still missing, but the result of almots five years of hard work is already here.
In February, the dissertation is registered at the Computing Department. The long and winding procedure towards its defense have only started.
Later, a paper about applying Itacio to the reliability model due to Hamlet et al is accepted at IDEAS 2002 as a brief presentation. Unfortunately, I could not travel to Cuba.
June 19, 2002: at last, after surprising steps and arbitrary obstacles, I succeed at the defense of my Ph. D. Thesis about Itacio, with very favourable opinions of the tribunal and the public. It's a reward for a great effort.
March 22, 2005: I notice that it's been AGES since I updated this page for the last time. My research activity has decreased for awhile, due to my teaching and managerial duties. But my work on Itacio continues, evaluating new ideas. My new project ATACS is just another approach to Itacio.
December 2005: Unfortunately, since december 2005 I only work part-time at the University, and this research is pretty much stopped, until some moment when I hope I'll be back. Right now, I only do some research on teaching aspects. But I'll be glad to comment any facet of these projects.