Software and Web Application
Design and Development



The purpose of this website is to provide examples of techniques that can be applied to the design of both web and stand-alone software applications.

Web Application Design and Development

The layout of a web page can be controlled by using either Cascading Style Sheets(CSS) or Tables to provide structure.

Examples have been provided of both techniques, but I personally prefer using CSS as the information regarding the underlying structure can be seperated out from the content of the page and held in a seperate style sheet.

To minimize compatibility problems, sites are designed in accordance with the World Wide Web Consortium standards and try to follow all accessibility guidelines

Behaviour can be added to sites using either client side scripting, server side scripting or a combination of both. Again, the behavioural aspects of the site can be seperated out from the content into external pages. This leaves the HTML uncluttered and improves maintenance.

Examples are provided of both, along with demonstrations in the use of the Document Object Model(DOM) to fine-tune behaviour. However, not all browsers support all features so thorough testing is vital, along with a clear understanding of the target audience.

Software Application Development

By using object oriented techniques, the aim is to seperate the specification within a project from the implementation i.e. seperate what an entity has to do from how it does it.

The key to good object design is careful planning, and I use the Unified Modelling Language(UML) in conjuntion with the Unified Process(UP) to plan my software development projects. Examples of different projects are provided.

Database Design

Similarily, any substantial database project requires careful planning where the aim is reduce the duplication of stored data. Duplication can cause many problems including loss of data integrity and problems regarding maintenance of the database.

Techniques such as normalisation are demonstrated which aim to eliminate duplication.