The Technological Point of View
In the first part of this series we have seen that the website design method by Professor deTroyer gives a lot of detailed advice on how to design a website from the technological point of view. This approach is only given in very short notes to give the audience an initial idea of the method. In this second article, some first impressions of the implementation phase of a website will be introduced.
Implementation Design is the complementary phase to the descriptive design phase for concept and navigation. Please remember that the processes described within this series are definitely not complete. Thus, the Implementation Design will deal mainly with three steps:
- Site Structure Design
- Presentation Design
- Logical Data Design
One part of implementation design is not mentioned here. That is the implementation process design. We know what to implement, but not how. This is a typical problem of nearly all processes in software engineering that originate in academic background as does WSDM. Each project manager will discover a useful tool for his own project after reading this article.
The Site Structure Design
This step is to distribute the components found in the conceptual design in a manner that is friendly to the audience as well as logical in its semantic contents. Remember that the WSDM is a user centric approach and therefore all design decisions need to be done with the audience and users' behavior in mind. This point may be difficult from the view of the project manager because he cannot predict the future behavior of the website's audience. Thus, his decisions have to be made on a very speculative basis. The technical aspects are of a more solid nature because there are alternatives that can simply be weighed by technical, financial, or any other calculable reasons. The user's behavior cannot be calculated.
The main task is to create the look and feel of the site, and to utilize a layout that is in line with the audience and the mission of the website. Using templates is highly recommended to ensure consistent design, reduce the amount of testing, increase the speed of building, and to do so using (semi)automated generation of code and graphic components. It should be mentioned that templates are good for layout elements and whole pages, as well as for parts of a page like tables, controls, special functions, etc. When identifying templates, we need to find a good relation of the following:
- What is automated?
- Which layout functions are included? (often increases complexity of templates)
- How often will this template really be used?
- How do we fill in the template with data? (sometimes handmade parts are cheaper)
- How much is it to change the template?
These and questions may be asked when building sites using templates. The hand made design as well as manually inserting data into the views may sometimes be a better way. It only needs to be decided with care.
Logical Data Design
A website has to present information. All information is split off into different parts, single chunks that are presented using the whole tool set we get from psychology. Creating an ontology for the provided information is the main step in the logical data design phase. Creating ontologies can be supported using different techniques and some common tools. Building the logical data model and the corresponding database design can be done with XML, RDF, UML , or whatever you like. It is always important that the created database is maintainable, flexible, robust, and fast enough, and the logical data design cannot be violated by the programmer.
The creation of such systems is always supported by common CASE tools, Query Builder, Charting Tools like Smartdraw, and many other tools available on the market. Connecting data warehouses or using WebFarming Technologies makes it even more complicated, but these are topics for a later article.
For more ideas on creating a website to meet your client's needs, read KEllis' article What it Takes to Build a Website: Client Needs.
The next article in this series discusses automatic code and graphic generation.