Monday, January 26, 2009

A systems simulator

When you define a system, one of the things that happened is that to see it working, generally you must implement it. In the analisys and design phase all is in your head, and many details can be hidden.

That´s why I believe that a tool that can be used in these phases to show the modeled behavior, can be extremely usefull to enhance the quality of the new system.

I found something called an Architecture Description Language (ADL), that seems to serve well to this porpouse.

Two things I like fro it:

1. Its has a formal language basis (a process algebra Communicating Sequential Processes (CSP) ).
2. There are some interesting tools like ACME (Carnegie Mellon), that let us to make an implementation of the model and analize its behavior.

Maybe, this can be a new way for software architects and analists, for making software specs.

Friday, January 23, 2009

From ideas to code: a long and windy road

It´s good that companies and individuals have needs that imply software development, but to realice these ideas in cost, time & quality is hard.

During the last few months a question rounds around my head: how to define a new app/system in such a clear and detailed way that developers can translate the specification to code without uncertainty or even how to automate the translation?

I've been studing lots of modeling and designing articles and books, and there's no clear answer to this, so it´s an opportunity area.

I´ve made an specification for a solution under RUP, using UML (just a subset) , and the additional fact is that there is a lot of information that is redundant. Documentation can be broken into information unit but there´s a need for an information system that contain all this work and knowledge.

As usual, to syncronize design artifacts, documentation and code its not trivial.

Round-trip tools sound good, but they are expensive.

But I think the start point is the method. I´ve been reading about Iconix, and at first hand, it sound great, but the mapping described in the book was based in a framework I don´t use.

However, the important concept there is LIMIT.

Iconix limit the UML artifact, and get some good results; even there, its needed a set of rules of how to apply artifacts (not just the UML syntax).

However the object definition remains loose in many projects, so one way to limit this design freedom is to stablish a context, maybe with patterns, and MVC is a good one.

I'm going to experiment with all these, and later I will tell you what happends.

Cheers