Overview
The purpose of the detailed design stage is to produce a detailed technical specification for the
selected system design so that this can be used by programmers to generate the software. Thus this
stage of the life cycle turns an implementation-independent design into a design that includes specific
hardware and software.
The deliverable from this stage is a technical specification which includes:
a) program design and specification,
b) specification of the user interface, including reports
c) file and record specifications,
d) hardware specifications, including costs,
e) implementation schedule.
Major issues involved with this stage are:
Compatibility with existing systems
Software selection and design
Hardware selection
User interface design
Security of information
Compatibility with Existing Systems
In addition to other internal company systems, any new system needs to be compatible with
customers' systems and suppliers' systems. This may require compatibility with large external
systems like the Internet, and the world wide web.
Software Selection
Major options for the software are:
A a Third Generation programming language, 3GL, e.g. BASIC or PASCAL
A a Fourth Generation programming language, 4GL (usually linked to a specific database)
A an integrated package, e.g. Microsoft Office
A an application package, e.g. Fourth Shift
Hardware Selection
Factors to consider in selecting the hardware include:
- amount of processing power needed,
- volume of data to be stored,
- cost,
- ease of use,
- response times required,
- support for future expansion.
Page 1 of 6
Page 2 of 6
Software Design
In all cases except an application package, a detailed software design must be produced. This
specifies exactly what each part of the system should do and how the parts are linked. There are two
main ways of doing this:
A Functional Decomposition - identify high-level functions and then break them down into
smaller functions
A Object Orientation - identify objects within the system along with related data and functions
Functional Decomposition
This can be done in different ways, one of which uses structure charts showing high level functions
and the detailed functions needed to perform them, e.g. preparing an employee's payslip.
Modularity
Breaking software into small chunks, called modules, is important for control, testing and
maintenance. Unfortunately the word 'module' is used in different ways:
(1) a very small section of software, with a specific purpose, clear input(s) and output(s)
(2) a collection of sections of software with a common purpose, e.g. inventory control.
This section focuses on the first of these uses.
Coupling and Cohesion
Interactions between software modules can be described using 2 terms:
- Coupling - refers to the links between modules, e.g. common data, or parameters passed
between
- Cohesion - refers to suitability of the different data and tasks within a module to being
grouped together
In general the modules in a system should have weak coupling and strong cohesion. This means that
changes made to one module are unlikely to affect another - very helpful when:
- programming the software
- fixing errors
- maintaining the system
Page 3 of 6
The following diagram shows 2 different systems each with 4 modules. These systems have different
degrees of coupling and cohesion:
Object Orientation
This is the more modern approach to achieving weak coupling and strong cohesion. It has been
developed largely in response to continued difficulties with maintaining software systems. Three
problems had been identified with functional decomposition:
A poor modularity (i.e. weak cohesion)
A excessive 'visibility' of data (i.e. strong coupling)
A functional decomposition is not the best way of identifying modules
The basic concept is that by identifying discrete objects within a system (e.g. customer), the data
related to each object can be identified and 'protected' by a set of related functions or 'methods'.
These methods are used to communicate data values as well as performing object functions. In this
way the data is not accessed directly by any other part of the system (weak coupling). Detailed
review of object orientation is outside the scope of this course.
Designing the User Interface
In designing the user interface, account must be taken of different types of user:
Novice or expert - novices will require more on-line help than experts
Casual or regular - regular users become knowledgeable about the system; they require:
A fast response times
A flexible commands
Passive or interactive - interactive users are systems developers, modellers or those that
construct specific enquiries
Common problems that occur in interface design are:
- Screen displays cluttered with information
- Inconsistent ways of carrying out tasks
- Unclear user prompts (due to confusing terminology)
- Patronising and unhelpful error messages
- User manuals that are difficult to understand
Page 4 of 6
System Menus
Design issues include the:
A number of options to include
A sequence in which they are shown
A names that are used to identify the options
A number of levels of menus
A way in which users select an option
Graphical User Interfaces
Graphical User Interfaces (GUIs) are usually used with mice, and for the PC can be known as mice,
icon, windows systems. They offer many advantages over the early text-based systems. One
example is pull-down menus. The full impact of a Graphical User Interface is much larger than this.
They produce significant changes in the way that users work with an information system. Some, like
Microsoft Windows, have guidelines about standard ways of doing things. This ensures that different
systems have a consistent interface; e.g. the standard 'File', 'Edit' and 'Help' menus; situations to use
pull-down lists etc.
Screen Displays
Screen displays should:
A be restful to look at
A contain all relevant information but not be overcrowded
A be self-explanatory, with information on how to get on-line help
A present data in a logical sequence (grouped where appropriate)
A only have important information highlighted
A be consistent throughout a system
Error Messages
Unhelpful messages include ones like:
"033: File handling error"
A more useful message is:
"File already in use by another application"
In graphical user interface systems like Microsoft Windows, there are often extra clues as to the
nature or severity of the message. Different symbols are used to indicate different severities of
message:
Information
Warning
Critical
Page 5 of 6
Summary
Detailed design produces a technical specification for the selected system design. The major issues
are:
Compatibility
Software design
Hardware selection
User interface design
Security
Two main ways of designing software are functional decomposition and object orientation. Modular
design is very important, with the related concepts of coupling and cohesion. Three major design
problems are:
Poor modularity
Excessive visibility of data
Functional decomposition.
Design of the user interface requires:
Clarity
Consistency
Uncluttered displays.
Page 6 of 6