To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
So far we have discussed the properties that a model of parallel computation ought to have and have claimed that models built from categorical data types have these properties. In this chapter we show how to build a simple but useful categorical data type, the type of join or concatenation lists, and illustrate its use as a model. We show how such a model satisfies the requirements, although some of the details are postponed to later chapters.
The language we construct for programming with lists is not different from other parallel list languages in major ways in the sense that most of the list operations are familiar maps, reductions, and prefixes. The differences are in the infrastructure that comes from the categorical data type construction: an equational transformation system, a deeper view of what operations on lists are, and a style of program development. When we develop more complex types, the construction suggests new operations that are not obvious from first principles.
For the next few chapters we concentrate on aspects of parallel computation on lists. We describe the categorical data type construction in more detail in Chapter 9 and move on to more complex types. The next few sections explain how to build lists in a categorical setting. They may be skipped by those who are not interested in the construction itself. The results of the construction and its implications are summarised in Section 5.5.
We have already discussed why a set of cost measures is important for a model of parallel computation. In this chapter we develop something stronger, a cost calculus. A cost calculus integrates cost information with equational rules, so that it becomes possible to decide the direction in which an equational substitution is cost-reducing. Unfortunately, a perfect cost calculus is not possible for any parallel programming system, so some compromises are necessary. It turns out that the simplicity of the mapping problem for lists, thanks to the standard topology, is just enough to permit a workable solution.
Cost Systems and Their Properties
Ways of measuring the cost of a partially developed program are critical to making informed decisions during the development. An ideal cost system has the following two properties:
It is compositional, so that the cost of a program depends in some straightforward way on the cost of its pieces. This is a difficult requirement in a parallel setting since it amounts to saying that the cost of a program piece depends only on its internal structure and behaviour and not on its context. However, parallel operations have to be concerned about the external properties of how their arguments and results are mapped to processors since there are costs associated with rearranging them. So, for parallel computing, contexts are critically important.
It is related to the calculational transformation system, so that the cost of a transformation can be associated with its rule.
In this chapter we define the categorical data types of graphs. Graphs are ubiquitous in computation, but they are subtly difficult to work with. This is partly because there are many divergent representations for graphs and it is hard to see past the representations to the essential properties of the data type.
We follow the now familiar strategy of defining constructors and building graphs as the limit of the resulting polynomial functor.
Graphs have a long history as data structures. Several specialised graph languages have been built (see, for example, [69]), but they all manipulate graphs using operations that alter single vertices and edges, rather than the monolithic operations we have been advocating.
An important approach to manipulating graphs is graph grammars. Graph grammars [71] are analogues of grammars for formal languages and build graphs by giving a set of production rules. Each left hand side denotes a graph template, while each right hand side denotes a replacement. The application of a rule occurs on a subgraph that matches the left hand side of some rule. The matching subgraph is removed from the graph (really a graph form) and replaced by the right hand side of the rule. Various different conventions are used to add edges connecting the new graph to the rest of the original graph. Graph grammars are primarily used for capturing structural information about the construction and transformation of graphs. They do not directly give rise to computations on graphs.
The following concerns are addressed in this concluding chapter:
An assessment of the development of MUSE and MUSE*/JSD. For instance, have appropriate case-studies and tests been used to support the development and demonstration of the methods?
An assessment of the methodological characteristics of MUSE and MUSE*/JSD. For instance, is their scope of human factors design appropriate? Are requirements identified in Chapters One and Two satisfied by MUSE and MUSE*/JSD, and have they any limitations?
A review of potential developments of MUSE and MUSE*/JSD. For instance, how could the methods be enhanced with respect to (a), (b) and (c) above? What computerbased tools could be developed to support the methods; and should declarative human factors knowledge be collated and integrated with them to facilitate method application at each stage of system development?
These concerns are discussed in turn in the sub-sections that follow.
An Overview and Assessment of Method Development Activities of MUSE and MUSE*/JSD
Generally, activities for developing the methods were implemented as planned, e.g. literature surveys; specification and test of method conceptions; case-study selection, planning and familiarisation; etc. An assessment of how key concerns of method development were addressed is discussed below:
Case-study selection. It was clear that the number of case-studies undertaken specifically to develop and test the methods would be limited by the resources available. Thus, considerable care was devoted to the planning and selection of appropriate casestudies for developing and testing the methods.
The last thing one knows in constructing a work is what to put first.
Blaise Pascal, 1909, Pensées
The meaning of things lies not in the things themselves but in our attitude towards them.
Antoine de Saint-Exupéry
Having developed a structured method that supports human factors specification at each stage of system development (namely MUSE), its explicit integration with similarly structured software engineering methods may be considered. In this way, the problems associated with the ‘too-little-too-late’ contribution of human factors to system development may be addressed more completely (see Chapter One). To this end, the following concerns of methodological integration are discussed in this chapter:
(a) A conception of what constitutes an integration of structured human factors and software engineering methods. The requirements to be satisfied by the integrated method are thus defined.
(b) The pre-requisites and issues to be addressed during the integration of structured human factors and software engineering methods.
The above concerns are reviewed generally, followed by an illustration of how they have been addressed in the integration of MUSE (the structured human factors method) with the Jackson Systems Development (JSD) method (a structured software engineering method). For completeness and to provide a contrast with the latter work, other integrations of human factors with structured software engineering methods (work undertaken elsewhere) are also reviewed. Three structured software engineering methods are covered in the latter review, namely the Jackson System Development (JSD) method; the Structured Systems Analysis and Design Method (SSADM); and the Structured Analysis and Structured Design (SASD) Method.
To be still searching what we know not by what we know…….
Milton, 1644, Areopagitica
Leaving the old, both worlds at once they view, That stand upon the threshold of the new.
Edmund Waller, 1606–1687
In this chapter, the stages of the Design Synthesis Phase of the method, namely the Statement of User Needs Stage, the Composite Task Model Stage, and the System and User Task Model Stage, will be described in the order by which design is advanced. The account includes the design products derived to support target system specification using the method. Using the format outlined in Chapter Three, design activities of each of the stages are described in terms of sub-processes that transform its inputs into a number of products. As in Chapter Four, case-study examples are used to illustrate the products.
The Statement of User Needs (SUN) Stage
The Statement of User Needs Stage summarizes the conclusions of extant systems analysis and defines user requirements for the target system. Thus, the information collated would include a mixture of the following:
(a) existing user needs and problems;
(b) existing design requirements, rationale and constraints;
(c) rationale underlying extant design features to be ported to the target system;
(d) performance criteria and domain semantics for the target system.
The primary purpose of the products derived at this stage is to establish constraints to support later design decisions and extensions, e.g. during the synthesis of task models at the Composite Task Model Stage.
Figure 5-1 shows the location of the Statement of User Needs Stage relative to other stages of the method (the stage is indicated by a box outlined in bold).
All things exist in time. They are not unchanging, and they cannot be designed without regard for the way they operate and are used over time.
Charles Owen, 1986, Design Processes Newsletter
To every Form of being is assigned', Thus calmly spoke the venerable Sage, ‘An active principle.
William Wordsworth, 1814, The Excursion
In Chapter One, the ‘too-little-too-late’ problem of human factors contribution was identified. The problem highlights the importance of earlier and wider human factors involvement in system development. Although additional areas of human factors contribution have been identified, the problem could not be simply or directly rectified, since the contributions map poorly onto the design support requirements of each stage of system development. In particular, existing human factors design processes were observed to be largely implicit, and its design techniques provide only a narrow coverage of the system design cycle.
To solve this problem, a more explicit and complete conception of human factors design with respect to system development, is required. Such a conception would facilitate the identification of more specific requirements for human factors support. On the basis of the requirements, existing means of human factors contribution may then be recruited and extended as appropriate.
We (Ergonomists) borrow and invent techniques to serve our special needs.
A. Chapanis, 1990.
Current human factors input to system development is effected through methods, tools and guidelines. Although the input prompts the consideration of human factors concerns during system development, reports have highlighted inadequacies with respect to the scope, granularity, format and timing of the contributions (see Smith, 1986; Chapanis and Burdurka, 1990; Sutcliffe, 1989; etc.).
To improve the effectiveness of human factors input to system development, problems with existing approaches need to be examined. Such an examination would:
highlight requirements pertaining to the role of human factors in system development; such as the concerns of the ‘who’, ‘what’, ‘when’ and ‘how’ of human factors input;
support the enhancement of existing approaches for human factors input;
facilitate the specification of new and more promising solutions to existing problems of human factors input.
This book argues that current problems of input to system development cannot be solved by early human factors involvement alone. Instead, it is emphasised that the problems would be solved only by ensuring early human factors involvement that is then continued throughout system development. To achieve this objective, human factors designers must also contribute actively to system specification as opposed to system evaluation only. In addition, the requirements and activities of human factors specification should be made explicit. Thus, both software engineering and human factors needs may be represented and accommodated appropriately by an overall system development agenda. Intersecting design concerns between the disciplines may also be identified and addressed more effectively in this way.
Annexes A and B are provided here for the sake of completeness.
Annex A completes the set of human factors descriptions that may be derived for the case-study described in Chapter Four. The extant system descriptions shown are applicable only if the system to be developed is very similar to an existing system. In addition, note that the procedures described here are simplified versions of the sets presented in Chapters Four to Six.
Annex B provides the reader with an advance view of possible enhancements of the design descriptions and notations of MUSE. The case-study descriptions presented are for illustration only.
Annex A: Case-study Illustration of Secondary Activities and Products of the Extant Systems Analysis (ESA) Stage (Network Security Management System)
This account completes an illustration of the Extant Systems Analysis (ESA) Stage, for the case-study used in Chapters Three to Six; namely the Network Security Management System. Specifically, secondary human factors activities and products applicable in a variant design scenario are described. Note that the extent to which such activities and products are addressed depends largely on how similar the domain characteristics and implementation technology are between the extant and target systems. Consequently, illustrations of design products are provided only when their derivation was considered appropriate during the case-study.
The end of our foundation is the knowledge of causes, and the secret motions of things; and the enlarging of the bounds of human Empire, to the effecting of all things possible.
Francis Bacon, 1627, New Atlantis
Following the derivation of a conceptual design of the target system, user interface specification is undertaken in the Design Specification Phase of the method. Presently, the design stages comprising the phase, namely the Interaction Task Model, Interface Model and Display Design Stages, are described in the sequence performed during design (i.e. in the given order). As before, human factors design activities and products of each of the stages are summarised using a block diagram, and case-study examples are provided where appropriate.
The Interaction Task Model (ITM) Stage
Having defined the on-line task conceptually in a Target System Task Model, the high-level cycles of human-computer interaction may be decomposed further. The human factors description derived at this stage is termed a Target Interaction Task Model (or ITM(y)). Note that the model is concerned primarily with the description of error-free user-computer interaction. Potential user errors are addressed at later stages of the method (see later). Figure 6-1 shows the location of the Interaction Task Model Stage relative to other stages of the method.
The objective of deriving a Target Interaction Task Model is to specify the device level interactions required to achieve on-line task goals on the computer. The model is described in terms of expected user interactions with the designated hardware, and with bespoke, variant and standard objects and actions of the chosen user interface environment.