Dale's profileDale Churchward's SpacePhotosBlogListsMore ![]() | Help |
|
July 13 Diagrams, diagrams, everywhere I lookBased on some conversations with teammates recently, I have been thinking a lot about system diagrams, and how we do them, especially as we go through the design and implementation phases of an application.
Think for a moment on the large number of artifacts that are produced just to add new functionality to a system. On a project I recently worked on, there were at least 30 different documents I can think of that were prepared for the different audiences that needed some information around the project. The majority of these documents had diagrams attempting to show specific information about the system, and create an audience specific view of what would take place.
Imagine if you will for a moment if we could change this paradigm. What if we had a way of writing a language that could describe a system? Instead on thinking about design from a graphical perspective (Visio), we thought of it from a communications perspective (language)? Like all languages there would be a schema or framework to the language and elements to describe the parts of the application.
By the way, I am not suggesting that humans would get away from making drawings per say as we tend to like to think in terms of pictures, but I am suggesting that these pictures, made in any number of tools, could then be extracted out to a language structure so a machine could use the data. The key to this working of course would be to structure the language so we could all speak the same way.
This is not nearly as unusual as one would imagine. Much like a flowchart where each symbol means something specific or even a Visio diagram where a cloud represents the internet, or a brick wall with a flame represents a firewall, each symbol describes something that is clear to the mind of the reader. If we had a way to translating these pictures to a language that a computer could interpret think of the power we would have.
Instead of each drawing having to be redone for each new audience or each time there is a change, we could simply modify values in the underlying language and the computer could produce a new drawing for us instantly with no manual work on our part. We would also be able to display any portion of our system quickly and with no additional work. And the best feature is that keeping system diagrams up to date then becomes simple as data in individual fields could then be modified and an updated diagram produced as needed.
This idea is not new or unique of course. We use description languages all of the time to make application more effective. Everything from an XSD to a WSDL, or an IDL have been used when we need to portray individual components or messages. It simply makes sense to go the other way and use this same logic to describe the system as a whole as well as the individual components.
While it may be difficult to get acceptance at first and the grammar (schema) and vocabulary (data) are defined if you do it right you can produce a tool that can allow for shorter release cycles and reduce the burden of the resources that create and maintain the system diagrams.
I am interested in your thoughts. Comments (4)
TrackbacksThe trackback URL for this entry is: http://halfmybrain.spaces.live.com/blog/cns!DF6CA820250998D2!129.trak Weblogs that reference this entry
|
|
|