Dec 01 2010

Models-to-code iterative development process: where to start.

It is likely to produce an iterative model-to-code (M2C) development process for a given firm that will eventually result in benefits (such as, costs, production time, maintenance effort).

Likely. Start from analyzing the produced code-base and selecting the code that is repetitive and follows a certain template. Try to assess how much is the percentage of this repetitive code in terms of the rest of the application. Typical candidates are classes with attribute getters/setters/constructors, database schema’s, etc.

Eventual benefits. The benefits can be split in two categories: short-term and long-term. For instance, instant code-generation is a short-term benefit resulting in reduced costs and production time. Iterative development process on the other hand, is a long-term benefit decreasing the maintenance effort.

Iterative process. Firstly, it is my firm belief that the idea of iterative development is strongly underestimated and not well understood by the research community. The main focus should not fall onto the code generation technology, but rather on design patterns, more advanced Aspect-Oriented techniques, etc. in order to create an iterative process.
Secondly, it is a myth that one could create a development process that would suit all companies. While, sample processes could be consulted, each firm should create its own customized M2C-based development process.

Nov 30 2010

Models-to-code iterative development process: pitfalls.

It is likely to produce an iterative model-to-code (M2C) development process for a given firm that will eventually result in benefits (such as, costs, production time, maintenance effort).

Likely. Firms that operate (improve, maintain, support) on existing products are unlikely to benefit from M2C. It is only brand new projects (or at least new modules/packages), which have to be developed from scratch, that could gain from M2C.

Eventual benefits. Typically the design of such a development process is an iterative undertaking on its own. Obviously, the first product/project using M2C will result in more short-term problems than benefits.

Fully-automated code generation. I like to compare this idea to the “perpetuum mobile”, i.e., a machine that can produce useful energy indefinitely. Any “perpetuum mobile” will eventually require more energy than it will produce. Likely, any method that provides 100% code generation will eventually require more effort than the promised benefits.

Iterative. Designing a prototype M2C approach that does provide short-term benefits is obvious. However, iterative development using M2C is far from trivial. While the community typically blames the existing tools and technologies, the design of an iterative process is actually little related to the tools.

Sep 08 2010

Aspects vs. Objects: The Perpetual Question

Soon I will be hitting on my second experiment where we investigate whether the synergy between aspect-oriented (AO) programming and model-driven development is in fact advantageous. In our first experiment we have looked at this issue in the context of Theme/UML and a stand-alone embedded Java application. As far as research is concerned that experiment was a clear success and has shown that AO does bring benefits over the traditional object-oriented programming. However, personally (given my second life as a real-life application developer), I was absolutely not impressed by several simplifications that took place in the experiment. My main concern were the size and the usability of the application.

To my delight, now we will be dealing with a much more complex and 100% realistic web-application. The setup involves:

  • a web-browser as a client application
  • a number of web-services that retrieve data
  • a web-application consisting of servlets that access the web-services
  • authorization engine based on a state-of-the-art (and a de-facto standard) protocol known as XACML
  • service-level agreements

So far I am finishing up on the generative toolset to turn models into code. The experiment should be starting from next week. More details (including the final paper) will be presented very soon.

Jul 28 2010

Surfseason is open :)

After a considerable time leap finally the white sands, the blue horizon and the wind in my hair. Okay, most of this is a lie, the sand in Bourgas is far from white and i dont have much hair left; but the tremor in the hands and that crazy train within has been launched. I’ve been planing (read flying) along the Bulgarian coastal line.

Days go by: awesome planing sessions combined with some surf teaching to friends. Time to pack the surf is near.

Jul 20 2010

The truth about OMG’s MDA

Although everybody knows the truth about Model-Driven Architecture initiative by Object Management Group, I’ll still try to explicitly write a couple of ideas on the matter.

OMG’s MDA the way it is represented in OMG’s white papers will never work.

Executable MDA will never work. Hell it is way much easier to specify it in the code than draw numerous lines specifying what actions comes after which one. Then some more boxes with if and else, etc. etc. Like the marketing people like to call it “customer pain” will undoubtedly surpass any possible return on investments what concerns the future platform changes.

CIM->PIM->PSM->Code: This is a very nice idea from the marketing perspective, but it is a waste of time even starting criticizing this idea.

Jul 20 2010

Welcome to my blog!

aram hovsepyanHi, this is me on the left. Scary isn’t it. Judging by the amount of those “random security checks”, must be.

My idea for the blog is to post some interesting materials about my professional work as a researcher at the DistriNet lab as well as a project manager at BOZA Solutions. Don’t worry, except for the geeky stuff I’ll also include some fun events and pictures from my personal life.

Aram.