1 General-Purpose Software Development Method(ologie)s
In general terms, the aim of a software development methodology is to make it easier to develop good quality software. A software development organisation may opt to use a well-defined methodology in many development projects in order to minimise the kinds of risks involved in one-off 'seat-of-the-pants' developments. The methodology used may be a well-known standard methodology such as SSADM, or may be one developed by the organisation itself to meet its own specific needs.
A software development methodology takes a particular view of the software development process or 'lifecycle' and provides techniques, tools and working practices for use at various stages in the process. A software development methodology may be expected to offer:
Most general-purpose software development methodologies provide at least some support for requirements engineering activities, though many focus more on the design of the new system rather than discovering and analysing problems with an existing system and the requirements that arise from them. Methodologies targeted more specifically at the early stages of a development project often provide better support for requirements engineering.
2 Method(ologie)s for Requirements Engineering
There are a number of methodologies aimed specifically at providing support for the activities involved in requirements engineering. These can be loosely classified along the dimension of hard --- soft.
'Hard methods' tend to assume that requirements are explicit and quantifiable from the outset. Typically provide more guidance on requirements modelling than elicitation or validation. Very commonly used.
'Soft methods' have been developed as a reaction to the assumptions of hard methods. More effort is spent in working out what ends are desired, rather than what would be the means to a particular end. It is acknowledged that different views on what might be a desirable end are likely to exist at the beginning of a software development project, and the aim is to identify the different views and facilitate a reconciliation. Soft approaches typically focus more on elicitation and validation than formal modelling.
Methodologies for requirements engineering include:
| Soft Systems Methodology (see below) | soft |
| ETHICS (Mumford 79) | | |
| Multiview (Avison 90) | | |
| ORDIT (see below) | | |
| CORE (see below) | | |
| Yourdon (see below) | | |
| JSD (Jackson 82) | hard |
(D. Patching, Practical Soft Systems Analysis, Pitman Publishing, 1990 - see overview in chapter 4)
Soft systems methodology was originally developed by Peter Checkland. It provides a set of guidelines for examining an organisation in order to determine where improvements can most fruitfully be made. SSM adopts a systems perspective i.e. it attempts to consider an organisation (involving people, machines, policies etc) as a whole. It aims to involve system stakeholders in debate about what are desirable solutions, rather than impose a solution which the system developers believe to be the right one. It is best suited to use in situations where the problem to be solved by a new system is initially very vaguely defined.
The soft systems methodology involves 7 main activities. These need not be performed in the order described and may also be tackled in parallel.
Stages 1 & 2: the analyst begins at stage 1 where the problem situation is unstructured and the statement of the problem to be solved is vague and information needs to be collected from many different sources; in stage 2, this information is expressed in the form of a rich picture
Stages 3 & 4: one or more root definitions are defined; root definitions may be defined from a number of different viewpoints; they should contain the following components (which can be memorised using the CATWOE mnemonic):
Clients or customers of the proposed system
Actors who carry out the (human) activities within the system
Transformations - changes that take place within or because of the system
Weltanshaung (or Worldview) - how the system is perceived from a particular viewpoint, assumptions that are made about it etc
Owner of the system i.e. who the system is answerable to, or who could terminate it
Environment - the world that surrounds and may influence the system
Root definitions may be expressed as simple statements eg a root definition of a pub from a customer viewpoint might be:
C - the customers of the pub, casual and regular
A - the employees, visiting entertainers, customers
T - customer needs (for socialising etc) identified and satisfied
W - a pub is a place to socialise and enjoy a pleasant atmosphere
O - the publican
E - laws about licensing etc
Verbs in the root definitions are used as the basis for defining conceptual models, usually in diagrammatic form, which are then checked against a well-defined view of what a system model should be like (a 'formal systems model') to ensure that it is in some sense 'correct'.
Stage 5: the models are compared with what exists in real life eg do activities shown in the model exist in real life? Comparison should reveal areas where changes could be made.
Stage 6: possible changes are assessed, with actors in the system, for eg cultural feasibility, and desirability; an agreed list of changes is generated
Stage 7: action is taken to improve the situation!
(See also chapter 4 in I. Sommerville, Software Engineering, Addison-Wesley, 1992.)
CORE was developed by Systems Designers (now SD Scicon) and BAe in the late '70s, since when two major variants have emerged, both of which are still evolving.
A simplified view of the stages in the System Designers version is:
(See chapter 4 in M. Jirotka and J. Goguen (eds), Requirements Engineering: Social and Technical Issues, Academic press, 1994)
ORDIT stresses social-organisational issues. ORDIT aims to combine and reconcile the differing representations of a system and its operational, organisational and social environments.
ORDIT provides:
Yourdon Structured Method (Yourdon)
(E. Yourdon, Modern Structured Analysis, Prentice-Hall, 1989.)
Yourdon is typical of a number of methods developed in the 1980's. These methods all provide slightly different conceptual frameworks to support the activities of the developer. Most of the methods are based on the use of one or more graphical notations which are intended to allow a developer to describe succinctly what a software system should do. Notations used in Yourdon Structured Analysis include data flow diagrams, state transition diagrams, entity relationship diagrams and data dictionaries.
YSM includes two distinct modelling activities:
[1] D. Avison and A. Wood-Harper, Multiview: An Exploration in Information Systems Development, Blackwell Scientific, 1990.
[2] A.J.C.Blyth, J.Chudge, J.E.Dobson, M.R.Strens, The ORDIT Approach to Requirements Identification, Compsac '92, pp.356-361, 1992
[3] M. Jackson, Systems Development, Prentice-Hall, 1982.
[4] G.P.Mullery, CORE - A Method for Controlled Requirement Specification, in
Proceedings of the 4th International Conference on Software Engineering, Munich, Sept.1979
and in Thayer and Dorfman (see below)
[5] E. Mumford, designing Human Systems, Manchester Business School Publications, 1984.
[6] R. Thayer and M. Dorfman, System and software requirements engineering, IUEEE Computer Society Press,1990.
