Tuesday, April 17, 2007

MDA Part 2

I currently run a very small web development business and pick up jobs when I have time and clients, unfortunately I tend to get all my clients at once and end up refusing work that I needed just a few months earlier. I think Model Driven Architecture might be a way that I could work faster, in a more documented fashion, and involve other developers in my work easier. Lately when I have tried to include other developers I have to give them a totally independent piece or I tend to rewrite their code, I would rather be able to give them the specifications and have them create a model that would generate the architecture in the manner that I have configured my MDA tools.

I would not attempt to implement MDA in small odd jobs that I don't anticipate adding to, or getting any additional help on. These sort of jobs I can hammer out in a week or so and usually do not have the lifetime requirements to justify a completely solid, documented foundation. Whenever I do involve multiple people or perceive that my work will be part of a much bigger project I would like the benefits of a well-documented platform independent model like MDA. This way I can easily scale a project, retool a project by modifying just the model and reexecuting the conversion tools to produce the finished project.

This may sound like I'm asking for more trouble than I would be saving but for my purposes I think I would create my own interpreter to take the model and produce the code in the language platform that I am most familiar with. This method would allow me to keep well maintained the product and debug and optimize the application if there are any problems or ever room for improvement. I have already created an code generation engine where I tell a system the specifics about my object and its relation to others and this produces a Business Object Class, a Data Object Class, an admin page to administer the objects in the database as well as a function to be used when this object is referenced as a foreign key. The url to this page is http://wellness.byu.edu/includes/codegen.php (there is a password to keep unauthorized people from writing content) . I have thought about building a tool that uses ajax to tie many objects together and then produce the backend code that is all interrelated and will do this if I continue to receive requests to build larger object-oriented systems.

No comments: