[ORCA] Roy MacLean, Susan Stepney, Simon Smith, Nick Tordoff, David Gradwell, Tim Hoverd, Simon Katz.
Analysing Systems: determining requirements for object-oriented development .

BCS Practitioner Series. Prentice-Hall, 1994.


About this book

This book describes and explains ORCA (Object Oriented Requirements Capture and Analysis). It is aimed at all those interested in the description and analysis of complex systems such as businesses, social organisations, and so on. In particular, it is aimed at those responsible for producing strategies for the use of Information Technology (IT) and requirements for software development.

Although we refer to ORCA as a 'method', this book is not a manual to be followed slavishly during the analysis process. The usefulness of such a manual would in any case be questionable. Rather, this book presents and explains a set of ideas about analysis, together with ways of using these ideas. We hope that these ideas will be useful to the practising analyst. Consequently, the ideas are presented primarily through worked examples, rather than in a generalised, `text book' manner. We believe that this illustrates better how the ideas can be used in practice, and avoids the impression of a rigid, prescriptive method.

Producing and analysing models is a primary activity in ORCA and two complementary modelling languages are provided for this purpose. These languages are illustrated by example models throughout the book. In addition, formal syntax definitions, together with explanations of each language construct, are provided in appendices.

The other aspect of ORCA is its view of the analysis process. This is presented as a basic process together with a number of process variants that are appropriate in different analysis situations. ORCA includes a stage where the analyst should decide on the kind of process required for the given analysis situation. The different processes illustrated in the book (using various case studies) can be used to help in this choice of approach.

One of the example analyses (the weaving factory, in Part II) is considerably more substantial than the others. This is intended to illustrate the analysis of a system that is complex and unfamiliar --- the very situation for which we want an analysis method. Using only 'toy' examples would not convey the difficulties encountered (and, we hope, overcome) in real analyses.

Overview of the book

In Part I we introduce ORCA; this part can be read as a stand-alone overview of the method. Chapter 1 sets the scene, and provides the motivation for developing an analysis method, and for ORCA in particular. Chapter 2 illustrates ORCA using a simple example based on a petrol filling station. The example is not intended to be realistic either in scale or level of detail. However, most of the features of ORCA are covered. Chapter 3 summarises the key ideas of ORCA, including some that are not illustrated fully in Chapter 2.

In Part II we illustrate ORCA's Basic Process in a weaving factory case study. The various chapters introduce the main ORCA concepts in the context of the example; they should be read in sequence. Chapter 4 introduces the weaving factory case study, and gives an overview of the Basic Process. Chapter 5 concerns Preliminary Analysis --- gaining an initial understanding of the client's world, establishing the terms of reference of the analysis, and identifying sources of information. Chapter 6 concerns the activity of deciding on an appropriate analysis process; in this case, the Basic Process is assumed to be adequate. Chapters 7 and 8 develop and analyse models of the Old World --- the existing situation with the weaving factory. Chapter 9 discusses pathologies (what is fundamentally wrong with the current world) and prescriptions to remedy these. Chapter 10 specifies a New World for the weaving factory --- this includes both organisational changes and IT developments.

In Part III we show, in some more detail, how the modelling languages can be used. Chapter 11 discusses the difference between purposive and behavioural models; Chapter 12 discusses behavioural modelling in depth; Chapter 13 offers some general heuristics on using ORCA.

In Part IV we show how ORCA's Basic Process may be tailored to suit different analysis situations, using a variety of example case studies. Many of these are inspired by real-world examples, but have been modified for explanatory purposes. These examples can be used to provide a starting point for a specific tailoring. Chapter 14 introduces the idea of tailoring the Basic Process. Chapter 15 considers the analysis of a loose organisation of semi-independent units --- in this case, a federation of National Parks trusts. Chapter 16 looks at an example of radical restructuring of a manufacturing business --- a change from traditional stock control to 'just-in-time' delivery. Chapter 17 examines the case where the overall mission of an organisation changes and the existing world has to be re-engineered in the light of the new purposes. Chapter 18 considers analysis situations where there does not seem to be an Old World, because a radically new product is being developed, or the world is developing into new areas. Chapter 19 considers an analysis process that involves reuse, by adapting pre-existing generic models, rather than constructing bespoke models from scratch. Chapter 20 provides a technique for analysis of textual documents, for use when these are the only source of information for an analyst. Chapters 15--20 are independent of each other.

In Part V we discuss wider issues concerning ORCA analysis. Chapter 21 considers issues such as planning and monitoring, validation, requirements for human--computer interaction, `non-functional' requirements, configuration management and tool support. Chapter 22 discusses how to proceed into software design and development after an ORCA analysis has concluded.

In Part VI we give a more formal description of ORCA's modelling languages. This part is for reference, and is not intended to be read sequentially. Appendix A describes how we go about defining the modelling languages. Appendix B defines Grampus, the purposive modelling language, and Appendix C defines Beluga, the behavioural modelling language. These appendices are intended for those interested in delving deep into the corners of the modelling language, for example in order to build tools. Appendix D is a glossary of ORCA terminology and other supporting terms.

The ORCA project

The ORCA method was developed during a three-year project that took place between mid-1990 and mid-1993. This project was part-funded by the United Kingdom's Department of Trade and Industry (DTI) and Science and Engineering Research Council (SERC) under the IED programme (project number IED4/1/2134); this support is gratefully acknowledged.

The project collaborators are Logica UK Ltd, Data Dictionary Systems Ltd, and the Department of Computer Science, University of York.

We would like to thank Roy Flowerdew of Wovina Woven Labels for permission to use the case study contained in Part II of this book. Unlike many other texts on systems analysis, this case study represents a real problem for which a real implementation has been carried out. Some specific features were enhanced for use in this book, but the spirit of the example is very much in line with the Wovina system and its implementation.

We would also like to thank Simon Bennett, Alan Brown, Peter Hitchcock, Jennifer Stapleton and Dave Whitley for their ideas, comments and contributions during the course of the project.