Woes in the World of Architecture

I’ve been reading the Object Oriented Analysis and Design book from Head First lately and its really starting to make me think about the way I develop applications. Aside from being a very well written book, it instantly makes you think back about some of the decisions you have made in the past when designing your applications.

One thing that I have been really struggling with over the last year or so is really nailing down a process and software for the requirements tracking and architecture design of my applications. Those of you who know me, know I have been around the Fusebox community long enough to remember when Fusebox 2 was released and the very cleverly masterminded emails of the most underrated internet icon of all time, the great Stan Cox. So I was big into using Adalon to fill those needs. It really helped to force you into the FLiP process and design great software. After several years though, Synthis stopped working on Adalon so the progress of this great tool came to a halt, along with its usefulness.Unfortunately, I havent been able to find any tools that I felt all that strongly about to help fill that void. I have tried quite a few UML tools which do a fairly decent job for modeling my CFC’s. But, without any stub generation or round tripping, their use becomes even more cumbersome to keep the UML models up-to-date with the code. Their are tons of applications that will do this with other languages such as Java and .NET, but none of them support ColdFusion out of the box. This combined with the fact that you cant architect the front end with these tools leaves me a bit cold.

There is so much effort being put into all the frameworks for ColdFusion to allow us to write more maintainable code. But no effort being put into tools for architecting better applications before we ever write that code. Am I wrong in thinking this way? Am I the only ColdFusion developer in the world that really wants a single tool for requirements management and complete architecture design?

It kind of makes me wonder why Synthis doesnt just opensource Adalon and allow the community to continue to advance the best tool ever developed for architecting ColdFusion applications. The only major feature its missing in the ability to model your CFC’s. We could even create more “skins” for designing applications in other frameworks. It ships with a Fusebox 4.1 specific skin so adding a Model-Glue or MachII skin would be the next order of business.

It makes me curious as to what other developers are doing to handle this. How are you guys modeling/architecting your apps? What tools are you using?

6 thoughts on “Woes in the World of Architecture”

  1. I too am interested in what people are using. I hadn’t heard about adalon myself, but I am a big model-glue fan anyhow so its of no surprise. I tend to use visio (probably the way it wasn’t intended 😛 ), it gets the job done…but its not as good as it could be. I wish there was a generic coldfusion architecture tool that you could perhaps "plugin" framework-specific enhancements! one can dream 🙂

  2. Most times, the design is so simple a diagram doesn’t aid in understanding – it becomes just another thing to maintain (as you mentioned). So, for those cases, I like to skip producing a diagram. In the cases it is helpful to me to have a diagram to understand some relationships, then I’ll write that one.

    I can’t think of (many/one?) time(s) professionally I’ve needed to create a full-on UML class diagram which included all the data members and all the methods in a class – but perhaps my stuff is just simple (of course, "needed to" is different from "been required to"). Even still, that stuff is easily available and easy enough to see in the code (well, the this/variables scope is a little tougher to see than the methods if you are declaring them all over the place).

    Have you looked into creating extensions to these programs like Visio? I haven’t, but I wouldn’t be surprised if they provided an API to program a language extension against.

  3. At the moment I use Enterprise Architect. We don’t get everything down in detail but use sequence diagrams, class diagrams and package diagrams to provide an overview of the architecture of a system. We actually do a lot of UML sketches on whiteboards – take photos and then stick them on Confluence where they can be tracked, commented on, linked to etc. Are you saying you would like a tool which allowed you to generate ColdFusion code, supported roundtriping and could create UML diagrams by pointing it say an application directory? That would be sweet!

  4. Kola,

    Yes thats basically what Im talking about. Adalon would generate all of the Fusebox code and stub out your entire application for you. However, it doesnt support modeling and generating CFC’s for that Fusebox front-end to tie into.

    I use Enterprise Architect too for modeling CFC’s and I found an extenstion that will generate the Stubs for me but no reverse engineering of existing apps or round tripping really gets on my nerves.

    If you could model CFC’s in Adalon and generate the stubs with the rest of your application, that would make it much more useful in my opinion. You would have a single tool for requirements gathering, wireframing, prototyping, modeling your CFC’s and building out your Fusebox (or other framework) code.

  5. It is a problem we’ve been working on at SystemsForge. We have a methodology (Intent Driven Design) for iteratively and efficiently capturing functional requirements and we’re now working on tooling to intergrate this with our application generation and dynamic programming to be able to create applications by continually refining the metadata used for an application, so with the simplest metadata you have a wireframe, but it is really just the live app with too many defaults. Then over time you keep replacing defaults (field types, screen layouts, etc.) with your actual business rules until with a smattering of hand coding at the end to extend the generated classes you have a working app.

    Will keep posting about this as we develop the tooling!

  6. Thanks for very interesting article. I really enjoyed reading all of your posts. It’s interesting to read ideas, and observations from someone else’s point of view… makes you think more. So please keep up the great work. Greetings.

Leave a Reply

Your email address will not be published. Required fields are marked *