Architecting SystemsUML is the probably the best diagramatical representation of logic for fitting together complex websites. But does diagramming entity relationships enhance or regulate creativity?
The secret is in mastering the macro expression in language that most closely matches the structure and then becoming able to express concepts accurately in the language. The key to great programming is susinct language and yet so many programmers will over express the path to the goal by being hurried along by sales for a demo model of the system.
Lack of architecure affects many forms of system maintenance. When dealing with a legacy base, and introducing a strict technology such as XSLT processing, we have to be very sure that our code is completely bug free both as code and whatever final HTML grammer is generated has to work in the browser universe.
There are two kinds of XML processing but only one guarantees browser independence. And until browsers are more stable than the current crop and have implemented XSLT Version 2 we are stuck with a powerful macro language which at server end can combine simple templates with database generated XML. Adding internal functionality like sorting columns makes for a useful and flexible user interface.
But it is a three to six month project for the first one. Take a modular approach all the way and resist the chant of sales persons who want the thing to "just work". The job of the Xtreme Programmer is to think outside the square in debugging and sometimes producing workarounds. Its not a life.
Architecture is the vision of structure. The fleshing out of this structure occurs befofe implemnetation. The beauty of Object oriented design is that it is not that hard to write a buffering object and then reuse it in lots of other objects. So you need a video stream. Later on you hook it via a buffering object. Its simple code jigsaws that easily fit because the object contains the data interface in conceptually labeled XML structures.