6.5. Design Tools and Techniques
Once a methodology has been chosen - and you should have chosen one - you will then need to look at the tools available to support that methodology. In most cases there will be tools available which vary from simple shareware diagramming and outlining tools, through to very sophisticated development and lifecycle management environments.
In most cases as you investigate and decide on a methodology you will discover the tools which others are using. The tools available usually can be considered in three groups: software development environments, diagramming tools and organisation tools.
Software Development Environments e.g. Rational Rose, Visual Studio and Forte, are designed to support the management and creation of code predominantly:
Rational Rose is an interesting tool in that it combines a suite of tools to support the whole process from user requirements gathering to software delivery. This tool has a significant learning curve and is entirely directed towards object orientated analysis and design. It is designed to be used with Java and is well known it that community.
Visual Studio is Microsoft's offering in this arena, and is the host for all the Microsoft development tools and languages. This does not have the extensive design features that tools like Rational Rose has but it is commonly available, and skilled programmers who are familiar with it are much easier to find.
Forte is Sun's offering for Java development which has a very good development environment but has no design tools to speak of.
Again the interaction between different spinning plates means that decisions cannot be taken in isolation. If you choose a particular methodology, you may be making implicit decisions about the development environment and technologies being chosen.
As the number of possible environments keeps growing, it is important for those in the field to share experience - if YOU have any experience you would like to share please feel free to contribute it to this website through the discussion forum for this section.
6.5.1. Diagramming Tools
Diagramming tools are a key to many areas of the design process. You should read the JISC paper produced by Sarah Holyfield on this topic for a good grounding. The paper looks at a variety of approaches to diagramming and provides a context for the work undertaken by many of the JISC funded MLE projects. Microsoft's Visio was used successfully by both the MARTINI project and the De Montford University MLE.
As we have discussed above the design process is highly interactive with a number of different outputs and interested parties. This process is most easily supported by the use of different diagrams and often by using the diagramming techniques with stakeholders. A useful rule of thumb from the INSIDE project is that 'as the audience getter higher up the tree the diagrams need to get simpler, ending up with just boxes and a few arrows.'
6.5.2. Brain Storming
One area, which is not strictly about the design process, but which is very useful to the designer is the technique of user input through Brainstorming type techniques. This may well happen in the user requirements gathering layer but the output is a great aide memoir and design checklist, and you should be using diagrams to reflect back to the users what is in the MLE.
6.5.3. The Unified Modelling Language (UML)
UML, the Unified Modelling Language, is a tool for expressing a whole range of designs. Some of the most useful aspects of UML are:
Use Case diagrams, which display requirements and users
Static Structure (class) diagrams, which are used to express the structure of information in the form of classes, operations, and attributes
Package diagrams, which are used to express dependencies between larger sets of functionality in systems
Component diagrams, which show how functionality is encapsulated into discrete applications and system components
Sequence and Collaboration diagrams, which provide a means of modelling communication between systems and services
State diagrams, which show how a system transitions between states as a result of interaction
Deployment diagrams, which are used to show how parts of a system are physically configured and connected
Taken together, the UML diagram set is a well-rounded view of any system design, and provides the core information needed by developers to implement a design.
Follow this link for key resources for this section (these open in a new window)

