Juan Carlos Molina leads the research and development activities at Care Technologies , the sister company of IntegraNova . These two companies take care of the development and commercialization of the Integranova Model Execution System (MES) .
They have been around for twenty years now (I guess they are one of the first companies pushing the idea of model-driven development still in the market today) so I thought it would be interesting to know more about their product and how they have been evolving it during all these years. Thus, I hope you all enjoy this interview with Juan Carlos discussing these topics (and many more) as part of our A coffee with series of interviews with MDD tools creators .
Jordi Cabot (JC) – Welcome Juan Carlos. To begin with, can you tell us how did Integranova started?
Juan Carlos Molina (JM) – Integranova started in 1992 as a research line at the Technical University of Valencia that begun with the PhD thesis of Oscar Pastor where he developed a conceptual modeling language to specify software applications. From there, the research continued by developing a set of tools to support this language plus generators to automatically create the final code from those models.
Eventually, the company that was funding the research saw a commercial interest in the work and decided to create the company that today is care-t and then Integranova.
JC – So we could say that you were one of the first in commercializing a MDD tool ?
JM – Exactly. In fact, at the beginning we were selling our tool as a CASE tool, which was the popular term at the time. However, since CASE was already a synonym of “failed promises”, we chose as the name for the company CARE: Computer-Aided Requirements Engineering. More recently, we have adopted the model-driven terminology but in essence we have been doing the same since we started the company, we have always believed that it was possible to generate full applications from models. We have always aimed to generate as much as possible of the application code from models, not just some skeletons.
JC – How has your philosophy evolved during all this time? And how do your position yourselves wrt your current competitors?
It’s true that now there are many offers under the MDA umbrella created by the OMG though we don’t classify ourselves as a MDA tool because, even it is the wrong perception, many people believe that to be MDA-compliant you have to use UML. Instead our language (an evolution of the OASIS language initially developed during the thesis mentioned before, see Oscar Pastor, Fiona Hayes, Stephen Bear: OASIS: An Object-Oriented Specification Language. CAiSE 1992: 348-363) can be regarded as a subset of the UML in some aspects but with added extensions to fully cover the specification of the functional aspects of the application (including the behavior of each single operation) as well as the conceptual specification of the user interaction.
JC – Indeed, there are many tools that do not cover these two aspects. Can you elaborate more on them
JM – At the functional level we offer several primitives that allow the designer to express preconditions, invariants and then for operations we distinguish between atomic operations that are simple modifications of a class instance and molecular ones that can combine several other operations, whether atomic or moleculars, with the basic constructs that one finds in any programming language: sequence, iteration, decision and recursion. The details of each operation can be defined with a kind of platform-independent pseudocode (see the book Model-Driven Architecture in Practice for full details of the conceptual modeling language used in Integranova).
This is then translated into, mainly, Java and C# both for web and desktop applications (including support for different database management systems, application servers) since these are the two platforms which the clients request the most. Next step on this will be providing new versions of the respective transformation engines to enable users to deploy and execute the applications in the cloud.
JC – And regarding the modeling of the user interface?
JM – Yes, we have a textual notation plus a set of wizards that allow designers to define several types of interaction scenarios (mainly form-based interaction, list scenario, instance detail and master-detail) and define validation and navigation conditions on them (more details on this part can be found in chapter 10 of the book Model-Driven Architecture in Practice, as well as in tutorials 9 to 15 included in the evaluation version documentation). We are still improving this part. We have a solid base but we believe we can still improve to cover all the variability we can find (also including all the variability on the presentation aspects for the interface).
JC – To sum up, what are the main diagrams/perspectives of your modeling language?
JM – We have four different perspectives: the structural view (kind of a UML class diagram plus information about the users/roles of the software and their permissions), the functional view (where we define the detailed behavior of the operations), a dynamic view (with state transition systems to control the lifecycle of objects, i.e. defining what kinds of messages an object can receive depending on its state) and finally the presentation view with the navigational and interaction aspects.
JC – Moving to another topic, what is your business model? Selling licenses of the tool or providing services around it?
JM – Both. Regarding the tooling business, we have on the one hand the modeling suite with the modeling tool as main component but that also includes other complementary and fully integrated satellite tools like an internationalization tool (that analyzes the model and extracts all the strings to facilitate their translation and generate resource files with them), a documentation generation tool, a function point metrics evaluator component. On the other hand, we have the transformation engines in charge of generating the code (which, of course can be parameterized). We sell licenses of the modeling suite but instead the transformation engines are software as a service on the cloud and paid depending on the number of transformed models, their size, etc (flat fees are also available). Some clients choose to buy the modeling suite just to create complete specifications of the system-to-be even if then they do not follow a code-generation approach.
We also offer consultancy and development services to external companies using our own technology (which allows us to beat other competitors in terms of costs, time to market and quality). In this line, our clients are small and medium sized companies that use this solution as a way to get their software without increasing their IT infrastructure, companies that are not in the software business (so we are a software factory for them) or big companies and public institutions that use our tool and need some assistance with them or just hire us to outsource (part of) their development activities.
JC – Which of the two is most important right now?
JM – At the moment the services part. Even for companies that end up buying licenses we usually started as a service company for them as a way to evangelize them and convince them about the benefits of using MDD.
JC – What is the profile of the users of Integranova?
JM – The typical user is somewhere in between a business user and a pure programmer, more like an analyst or a senior programmer with knowledge about the business.
JC –And are you agnostic respect to the development process of the client?
JM – Totally
JC –What about platform-specific models, do they play a role in your approach?
JM – They exist but with our business model the user don’t see them. Indeed, the transformation engines create internally a PSM as intermediate result, i.e. the engine executes a double transformation PIM-to-PSM and PSM-to-code. We have thought about opening this to the tool users so that they see and modify the PSMs before the final code generation but so far we have not had many requests to do so. We believe most of our clients are just not interested in this level of detail.
JC –In fact, I still have to find somebody that really believes in the importance of PSMs and that actually uses them to have the chance to optimize the result of code-generation process for a particular technology but this is a different story …
JC –What is your relationship with research groups in universities?
JM – We have a long tradition of collaboration with universities (specially with the Technical University of Valencia for obvious reasons). Now we have slowed down due to economical reasons but our goal is to continue them and we are now applying to projects together with research labs. There is also an academic version of the software for any university that wants to use Integranova for teaching purposes.
JC –Do you eat your own dog food?
JM – Yes, several of the auxiliary tools in the modeling suite have been developed using Integranova itself. Also, the transformation engines are modeled in a framework than then generates the code to execute both transformations (PIM-to-PSM and PSM-to-code).
JC –And what’s your vision of the future of Integranova?
JM – First we want to improve our metamodel to cover better the user interaction specification. On the transformation side we want to broaden our possibilities for the generation of mobile applications and cloud-based applications. However, within our team there’s still some discussion on whether to go for native mobile applications or favor the path of creating web applications that benefit from all the advantages of HTML5.
JC –And last but not least, what’s your vision about the future of MDE?
JM – On this, I’m like Stephen Mellor when he says that Modeling will be commonplace in three years time (with the caveat that, as he said, he has been giving the same answer since 1985!). I’m optimistic because I see that there’s now a little bit less of skepticism when we present our approach to companies and even Microsoft has integrated some modeling and code-generation in its Visual Studio tool. And to the programmers that are afraid of losing control of their work and becoming less relevant for the company, I’d say that their added value to the company cannot just be the pure programming aspect but their knowledge of the domain and of the best strategy to solve the problem. MDD tools and techniques let developers focus more on the problem at hand and be more technology agnostic. It’s not the end of programming, as some see it, but rather a transition to programming at a higher level of abstraction. This transition needs to happen regardless if it’s motivated by the use of MDD to generate the code or because the company outsorces the development to low-wage foreign countries.
Obviously I still see big challenges like the interface definition I was mentioning above and the DSL vs GML discussion. I see the benefits of DSLs but I’m not convinced many companies are interested in putting the effort of creating their own DSL (or have the set of skills required to do so within the organization). It would be great to reach some kind of intermediate point where there’s a (standard) language base that can even guarantee a certain degree of interoperability between tool vendors and where on top of it each company can create their own extensions for its specific domain.
A very interesting interview that I hope you all have enjoyed. Visit the Integranova web page for more information and do not hesitate to give your opinion on the questions and answers of this interview by adding your comments to this post.