Declarative Web Site Construction

In many ways the advent of the web, which provides relatively easy ways to program distributed access to large amounts of complex data, has set back the application of software engineering principles considerably. There has been a rapid evolution of programming techniques from static HTML to the use of client-and server-side scripting, dynamic web programming, the inclusion of data drawn from a database and the use of XML. This has meant firstly that web sites have evolved in an ad hoc manner and secondly that even the fresh construction of a web site consists of detailed programming using multiple programming systems with no emphasis on an overall structure. Alternatively, web design is carried using tools for the construction of the surface and the connection of this to any resources also in an unsystematic manner. Finally, the specific technology used to implement the site is itself subject to rapid change with new languages, data management systems and middleware products emerging regularly.

What is lost in all of this is a coherent and maintainable high level view of the site. A modern site is essentially a large and complex piece of software and as such should be subject to acceptable software engineering practice. Declarative Web Site Design takes the view that the implementation technology used should not drive the design of the web site, but rather the design should start with a high level design which is easily maintainable and from which the implementation can be derived. This means that little time is spent on the implementation of minor detail and that the site can be re-engineered to take advantage of improving implementation products without requiring a complete redesign or having to reprogram each component explicitly.

The particular approach taken here is called a Purpose and Component Design Methodology. This categorises all web sites as attempting to achieve one or more of a number of identifiable purposes which can be general such as selling,information dissemination or representing a club or association, or more specific such as selling books, disseminating information about cooking recipes or describing a sports club. It further identifies that each site is built out of a number of components which include HTML components, stylistic components, data repositories and other resources. Again there can be considerable variability in the specificity of a component. For instance, there are HTML tables which can be specialised to sports league tables; and there are frequently re-used components such a tables of components, alphabetic indexes and so on.

In this context, we are building tools which support the declarative specification of a web site in terms of the purposes used and the components included. This structure is used to manage the three principle aspects of the site - the content, the page structure and the stylistic information. The purposes are identified first and this focusses a selection of the components, since certain components tend to be frequently re-used for similar purposes.