From the Author
I am the author of Chapter 9, Toward Unified Models in User-Centered and Object-Oriented Design. In this chapter I present a lightweight approach to user-centred design based around the informal methods associated with UML. The chapter also includes a survey of user-centred techniques and methods currently in use. It should be of interest to anyone trying to develop interactive systems.
From the Inside Flap
Our basic premise is true: Many of the interactive systems that surround us either fail to work well for their users, do not do their job, or are simply unpleasant and frustrating to use. These problems are a result of inadequate methods for software development, particularly with respect to the design of system scope, contents, functionality, and interactivity.1 By contrast, usable systems allow their users to achieve their goals with effectiveness, efficiency, and satisfaction within a particular context of use.2 Highly usable systems have many positive benefits, especially productivity enhancements and user job satisfaction.3
While the design of usable interactive systems often remains a difficult endeavor, the human-computer interaction (HCI) field has made considerable progress in the creation of interactive system design methods that significantly contribute to increased end-system usability. These methods address the scope, content, functionality, and user interface of an interactive system according to a user-centered view that includes the users' understanding of the system and the users' envisioned behavior while using the system. Because object models are relatively central in the HCI field, appropriate HCI methods and method components can be integrated with object-oriented software engineering practice to create interactive system design methods that are specifically concerned with the design of usable systems. Methods that integrate object-oriented and HCI practice (oo&hci methods) apply HCI design techniques early in the design life cycle, when the first visions of the scope, content, and functionality are formed and developed into analysis-level object models. Oo&hci methods offer improved interactive system design capability and increased end-system usability by basing system design on the users' world, goals, and tasks; by the use of design techniques that provide well-founded ways of systematically developing important parts of the interactive system design; and by the use of notations that are designed to convey the design information that is required for effective interactive system design. The output of oo&hci methods is an interactive system design that includes, as a bare minimum, a model of anticipated user behavior, an analysis-level object model, and the design of the appearance and interactivity of the user interface (the concrete user interface design). Oo&hci methods can serve as front-ends to any suitable object-oriented lifecycle or analysis and design method, replacing much of the analysis activity and all user interface design in the back-end method. At least one oo&hci method has been used as a front end to 4GL-based development processes.
An Example of Usability Failure
To focus on the need for augmented methods that integrate the consideration of user issues, it is informative to consider a real-life example that fails on usability issues. The example is provided by a receptionist who is a regular user of a computerized booking system in a relatively expensive London restaurant. The restaurant is divided into an upstairs and a downstairs section, each with different seating characteristics and menus. For the downstairs section of the restaurant, the computer-allocated dining time is as follows: For parties of ten or less a table will be occupied for up to 1 3/4 hours. For parties of eleven or more a table will be occupied for up to 2 1/4 hours. This automatic time allocation is on first sight a performance-enhancing feature; in principle it saves time and effort for telephone operators and the reception staff who take bookings from four locations dispersed throughout the restaurant. However, there is a problem that was not anticipated by the system's designers: The largest tables downstairs have thirteen seats. Consequently, parties larger than thirteen are split across tables. Here the computer accepts the split booking and allocates dining periods for the two tables based on the number of customers sitting at each particular table, not on the total party size. For two-table bookings at least one wrong time is allocated for parties of 14 to 21 diners, leading to overbooking on busy nights. The system reveals so little about a booking when it is made and when it is subsequently accessed that for the first four years of operation no one could work out why the downstairs restaurant was overbooked on, typically, Thursday, Friday, and Saturday.
My informant expressed some of the knock-on effects of failing system usability as: "This isn't good for the host of a large party--the host can end up buying two rounds of drinks while the party waits to be seated . . . The additional cost and a forty-five minute wait aren't what you'd expect when you're already paying an average cover of £60."* Of equal severity, the booking system also changes the nature of the receptionists' work. First, due to the imposed wait, the downstairs receptionists have to deal with customers that are sometimes irate, aggressive, or rude. Second, the receptionists have to take over and try to correct the work of the system, juggling tables and parties as best as they can to minimize waiting time. As yet, several months after identification of the problem, the suppliers of the system have not returned with a solution. The audience of this book could easily imagine how the given dining times are, with the best intent, "cannily" built into the booking system in several places, making the change hard to implement without rewriting the system completely.
This example has been characterized as an example of a failure in requirements gathering. However, the example is more significant. On deeper examination it contains salutary lessons for interactive system design methods. These lessons include the following: Usability issues are significant and wide-ranging and often affect more than the immediate system users. Interactive system design impacts work and is perforce concerned with the design of future work. Failing systems require user accommodation to compensate for their failures; this is seldom desirable.
* For anyone not familiar with the term, "cover" is the dining cost per person. £60 = US$90.
Object Modeling and User Interface Design provides descriptions of nine such methods. Because all the methods use or are compatible with the Unified Modeling Language (UML), they integrate well with popular UML-based approaches to object- and component-based development. The final chapter provides details of relevant HCI theory and practice, a description of the methodological concerns relating to the integration of object modeling with user interface design, and a framework that describes oo&hci methods.
This book's groundbreaking contents are highly relevant to software engineers, user interface designers, and methodologists who work with either or both of object modeling and user interface design methods. P.2 Oo&hci Methods In more detail, the oo&hci methods in the book share many or most of the following characteristics: Interactive system design is an early, up-stream activity that determines the design of user work and/or leisure activities, the division of activities between users and the interactive system, the high-level design of system scope, contents and functionality, and the detailed design of the user interface. Design activities in these areas are often closely coupled; decisions in one area are likely to have an effect elsewhere. Described at a high level, interactive system design is an activity that is concerned with user activities, user understanding of the system, and the system's user interface. Interactive system design is predicated on information about users, their current activities, their needs, and the work and/or leisure context in which they will use the proposed system. This information is gathered in interviews and by observation, and is used as the basis for the design of the interactive system and its anticipated use. User-developer contact is vital to gather information, to ground the design of the system in the world of the user according to user (and therefore, where applicable, business) need, and for the evaluation and improvement of the developing interactive system design. Abstract models are constructed to convey the designers' understanding of how the users will view and use the interactive system. User behavior is expressed in a task model or an augmented use case model. System content is expressed in an object model. Sketches, storyboards, prototypes, scenarios, and other concrete design artifacts, together with users' reactions to them, will probably be used to inform the design of the abstract models. User evaluation of the models (presented in a user-understandable form) and of very early model-based prototypes may lead to model redesign. The abstract models are used in the design of the concrete user interface of the system. This model-based design may be performed in a systematic series of steps, or, less desirably, in a single, unstructured step. User evaluation of prototypes of the developing design may lead to either redesign of the user interface, or redesign of the abstract models and the derived user interface. Successive prototypes are tested by users to provide information for iterative redesign. This is formative evaluation, where the results of the test help form the subsequent design, and where change as a result of evaluation is expected and welcomed as a way of ensuring system usability. An iterative design-prototype-test-evaluate cycle ensures that deeper problems with models and functionality and shallower problems with the operation of the user interface are detected and ironed out before any technical implementation activities are undertaken. Use of inexpensive and malleable prototypes can be used for much or all of this activity. Typically, the interactive system design process provides at least a model of envisioned system use, an analysis-level object model of the system that is composed of objects of interest and relevance to users during task execution, and a concrete user interface design. Some methods may deliver additional models, mostly to express information about system interactivity. These design artifacts enable the output of the interactive system design process to be used as input to any remaining object-oriented analysis (OOA) activities before being used in object-oriented design (OOD).
As discussed in Chapter 10, many of these are made possible because of significant commonalities and points of linkage between user interface design practice performed by HCI designers4 and object modeling based approaches to analysis-level descriptions of interactive systems. P.3 Individual Contributions The structure of this book reflects four of the major themes to methods which integrate object-oriented and HCI (oo&hci) approaches, namely, participatory design, scenario- and task-based design, use case based design, and user-centered design. Each method is described in a chapter in one of these thematic categories. Inevitably, several methods could have been placed in different categories, because these methods overlap categories. The last chapter is in a section on its own, and provides a discussion of the foundations and components of oo&hci methods.
Participatory design is an approach that brings users into the design cycle as active contributors to the developing system design, either for model formulation, or for the design of the concrete user interface. The premise that underlies participatory design approaches is that users have expert knowledge about their work domains, their existing work practices, and the kinds of systems that will support their daily activities. Generally, participatory design involves users as partners in design with developers, such that the users' domain expertise complements specific developer skills in the technical aspects of system design and construction.
Participatory design of the kind in which users themselves form models of the applications and application areas of interest is addressed in the chapter by Simon McGinnes and Johnny Amos, who are responsible for the theoretical background to and commercial practice with Accelerated Business Concept (ABC) modeling. ABC is an application design approach that is facilitated by the use of a modeling tool that helps users formulate models of application domains and interactive systems. These models are abstract models that are expressed in such a way as to allow their creation, communicative use, and modification by normal end users and domain experts in business domains. The associated tool helps in the composition, examination, and modification of models. The tool is subsequently used to automatically generate user interface prototypes for evaluation by users. ABC is designed to be able to be used within the broad design and development framework provided by the Dynamic System Development Method (DSDM). DSDM Stapleton 1997 is a largely European development of a method framework that encourages participatory design within the DSDM approach to rapid application development. Some details of the DSDM approach are found in Chapters 1, 8, and 10.
Scenario- and task-based design methods constitute the second thematic section.
Scenario-based design is primarily concerned with how scenarios can contribute design information as a visualization of system use and context, and how scenarios can be used to determine the subsequent design of an interactive system. While scenarios are broadly defined elsewhere Carroll 1995, the scenarios used here are simple textual descriptions of specific instances of system use. One advantage of scenarios written in the language of the users is that they can be created, understood, and modified by both users and designers, thereby allowing for participatory system visualization (with its own aspects of system design) and participatory evaluation and redesign of the vision.
Task-based design is fundamental to object-oriented and HCI design. It involves the use of task models to articulate existing and envisioned user behavior. The existing task model is used as the basis upon which to consider the design of future user activities, work, and interaction with the proposed system. These latter concerns are expressed in an envisioned task model, which supplies a model of how users are intended to interact with the future system, and thus provides the basis of the design of the system's functionality.
Mary Beth Rosson and Jack Carroll, two ex-IBM researchers and practitioners who are now academics, describe how scenarios can be used for object identification and application structuring, together with their subsequent use in detailed concrete user interface design. The authors point to the use of objects in the design process as a way of considering the allocation of additional functionality to the system, thanks to the tendency of designers to anthropomorphize the objects under consideration. The method includes the formation of descriptions of objects relative to the objects themselves (Point-of-View analysis). This not only provides a description of how objects form a structure and collaborate in an interactive system, but it also provides a vision of the system and its constituents that contributes to anthropomorphism and the consideration of variant functionality. Claims analysis is used to reason about the effects of particular design choices at both abstract and concrete design levels.
As a practitioner, consultant, and researcher, I tried an experimental modification to my own method, Idiom, to incorporate scenario-based design techniques and subsequent task-based design with the system specification techniques offered by an earlier version Idiom van Harmelen 1994. So far, the modified method is far more supportive of designers in their quest for a design solution than the earlier version of the method. Idiom now contains design activities and accompanying representations to enable designers to iteratively develop scenarios and a task model, identify referents (objects used by users), assemble the referents into a conceptual model of the system contents, identify task execution contexts, and develop a concrete user interface.
John Artim, a user interface design specialist and consultant with first IBM and then OOCL Inc., a large multinational shipping organization, and two start-up companies, provides a distillation of his and his colleagues' practice in the design and development of (often large) enterprise systems. The organization of HCI activities and their integration with other design and development activities is crucial to the success of any interactive system development, and becomes more difficult as the project's size increases. Entity objects, tasks, and presenters provide a framework for practitioners to organize and relate the products of their design activities, facilitating HCI design and its organization throughout the development life cycle. The adoption of UML for HCI design helps to integrate HCI design with other UML modeling activities.
Use case based design provides a way of specifying, through use case models, any of system requirements, user behavior, or system functionality, according to the purpose of the use case models. Use cases can be expressed in a wide variety of forms Cockburn 1977a, 1977b. One common style is to use a UML use case model together with some form of use case description for each use case in the model. The use case model depicts how, at a high or abstract level, users playing particular roles (described as actors) interact with the system to achieve some discernible result. The use case model can also depict relationships between use cases, such as inclusion of one use case by another. A use case description is often a finer-grained list of steps performed by an actor while using the envisioned system.
This kind of conventional use case model fails to provide sufficient user-derived and usability-related information in order to be able to reliably design usable interactive systems. Three methods extend and refine use case based practice for interactive system design.
Phillippe Kruchten, of Rational Software Canada, and Stefan Ahlqvist and Stephan Bylund, formerly of the same organization, present the user interface design activities in the Rational Unified Process (RUP). RUP Kruchten 1998 is a well-known, commercially available development method Rational 2000 that covers the entire product life cycle. The chapter provides an interesting illustration of how user interface design can be treated in a method for large developments and brings together topics that might not otherwise be discernible from the published material on RUP. Major components of user interface design within RUP reflect the general structure of RUP and consist of workers, activities undertaken by workers, artifacts used and produced in activities, and workflows that sequence and combine activities, including those of different workers. Here user interface designers, sometimes together with other kinds of workers, perform actor definition, application modeling, the construction of use case storyboards (textual descriptions of proposed use that augment use case models), and the construction and testing of user interface prototypes.
Nuno Nunes from the University of Madeira and João Falcão e Cunha from the University of Porto, both academics with extensive constancy experience, provide a description of Wisdom, which is an integrated lightweight UML-based interactive system design method developed by and used by the authors in small software engineering companies. This provides an interesting counterpoint to the RUP, which is primarily designed for projects that are larger than those that would be undertaken by these small resource-limited concerns. Wisdom uses a variety of object models that support interactive system design, together with an evolutionary design and prototyping process that contains elements of participatory design. In this, the authors make heavy use of the UML customization features.
Larry Constantine and Lucy Lockwood, user interface consultants and the originators of the usage-centered design Constantine and Lockwood 1999, discuss further developments of their method in a chapter that can be read independently from their book. This is the chapter that contains the most information about the variety of use cases that have been used in object-modeling approaches to system design. The authors present a refinement of use case modeling, Essential Use Case modeling, which is part of their usage-centered design method. Essential use cases express user interaction and system behavior abstractly, without any details of implementation and implementation technology. Using an essential approach enables designers to concentrate on the functionality of the proposed system without being distracted by implementation details. The approach addresses one of the dominant issues in interactive system design: how to design interactive system contents and capability without committing to premature and often inappropriate detailed design that later and suboptimally constrains the formation of an appropriate design solution.
User-centered design approaches are discussed in the final theme-based section in the book. User-centered design, which is at the heart of the HCI side of oo&hci methods, is defined by Donald Norman 1986 as an approach that is based on user need as a formative determinant in the design of usable systems. Because Norman did not define the detailed constituents of such an approach, HCI theorists and practitioners have supplied a variety of interpretations. Frequently used components in user-centered design approaches include an early focus on, contact with, and involvement of users, including the early and continual testing of prototypes by users to ensure the quality of the developing design, an appropriate division of work between the users and the computer system, and a multidisciplinary and iterative-design process. Participatory design is a less frequently used component in the approach, but it is gaining in popularity. Accumulated experience in the HCI field is that all of the previous components5 are important in the development of usable systems.
Jan Gulliksen, Bengt Göransson, and Magnus Lif from, respectively, the University of Uppsala Royal Institute of Technology, Enea Redina AB, and Icon MediaLab, describe the foundations of user-centered design and discuss various factors pertaining to user-centered methods and their use. Two methods discussed in previous chapters, RUP and DSDM, are examined in respect to their degree of user-centeredness, and the authors introduce the role of usability designer as a complement to RUP and DSDM. Magnus Lif's User Interface Modeling (UIM) method, an adjunct to use case based practice, is presented as an example of a user-centered design method. Finally, the description of the adoption of a customized user-centered method at the Swedish National Tax Board presents the authors' experience with and observations about one organization's development of a user-centered approach in the light of the organization's software development culture and needs.
William Hudson, a user interface design consultant, provides useful recommendations in adopting a user-centered approach to UML-based developments. Observing an informal UML-based design practice that is broadly adopted in industry, Hudson makes suggestions as to how to add to that practice using usability design techniques. In this the author's intent is to avoid the creation of another method, and to avoid the inevitable overhead in learning to use a new method. As a result of an Internet-based survey of effective usability-related practice adopted by usability practitioners, Hudson provides a ranking of 23 different user-centered techniques and tools and six user-centered design methods. Hudson then provides suggestions as to how the top ten most popular techniques may be integrated with the informal UML method, thereby creating a user-centered approach to interactive system design. The new approach is then compared to the usage-centered design and RUP approaches.
The summary contains a discussion of integrated oo&hci methods. While this is, in part, a vision of the developing field, it also provides a framework within which to view and relate the diversity of the individual contributions in this book. Topics only alluded to in this preface are expanded and related material is introduced. The chapter contains descriptions of background HCI material and information on the antecedents and the major constituents of an oo&hci approach.
The object-oriented and HCI methods discussed in this book can be grossly characterized as methods that diverge considerably in their approach, but generally contain the following features: The intervention of HCI design techniques in early analysis phases allows for the up-front use of user-derived design information at the point in the development life cycle where it has the best effect, that is, when the overall design of the system is being formed. Notably, these techniques may involve participatory design techniques. A very strong emphasis on abstract model construction and a broad-ranging HCI perspective on interactive system design are the means to establish the scope, functionality, and concrete user interface for interactive systems. The methods treat interactive system design as an up-front and formative determinant on the design of user work, and the design of interactive system contents, functionality, and concrete user interface. The concrete user interface design and interactivity of the system is also designed up front, typically in a model-based design approach in which the previously designed abstract models are used in the design of the user interface. The actions of detailed concrete design can motivate changes in the abstract models. This is to be expected and welcomed as an early design activity because changes are introduced for reasons of usability before the models are reused for the remaining OOA and OOD activities. The application of quality checks to the developing interactive system design by the involvement of users in the evaluation of a range of prototypes throughout the design process. The evaluation must be performed formatively, that is, so that it contributes to the further design of the system. The process starts with the evaluation of prototypes that test and help establish the abstract design of the interactive system, and, over time, moves to evaluations of prototypes that contribute to the quality of the detailed concrete user interface design. Change as a result of formative evaluation is expected and welcomed. Iterative redesign based on formative evaluation to converge on viable and usable support of users in their task-based behavior, with an appropriate division of work and activities between users and the interactive system.
There is an important and general point to be made here: It is possible to integrate user interface design and object-oriented software engineering practice at a deep methodological level. The significance of this is of critical importance for software engineers; the integration brings the consideration of user concerns and system usability into the object modeling design and development cycle as an up-front and centrally important activity. Such consideration helps in more than just the formulation of a detailed concrete user interface; it also helps markedly in determining the scope, contents, and core functionality of the interactive system. Importantly, consideration of user concerns determines an appropriate division of work and activities between the users and the system, and determines the subsequent work and activities of both the users and those who come into contact with them.
The commonalities and linkage between object-oriented and HCI practice represents an opportunity for the software engineering community to integrate HCI design techniques with their own discipline of interactive system design. The evidence put forth in this book is that the adoption of an integrated approach leads to an overall increase in usability. Even the adoption of only some of the techniques advocated here, for example, simple and early prototype testing and evaluation, would lead to a reduction in usability flaws.
The editorial motivation for this book was primarily to make the object and component community aware of the possibilities for the integration of object modeling with the design of interactive systems as practiced in the HCI world. To ignore the overall potentialities of an integrated approach that draws on HCI expertise in interactive system design would, I feel, be a grossly negligent act. The consequences include continued exposure of software engineers to the real and considerable risk regarding lack of user acceptance. Worse still, neglect of the possibilities will certainly condemn our users to more decades of suboptimal and unusable systems. As software engineers and methodologists, the choice is ours to make. P.5 Acknowledgments John Artim, Tom Dayton, Barbara Hurwood, and Nuno Nunes commented on versions of this Preface. Any mistakes or errors remain my own responsibility. P.6 Editorial Acknowledgements As the editor of this volume, I would like to formally acknowledge the efforts of all the authors who appear in this book, as well as the efforts of those who submitted contributions that were not accepted.
This work could not have been produced without the kind help and support of several individuals: In Japan, Dr. Katsura Kawakami provided me with the freedom to consolidate my ideas about interactive system design in an object-oriented style at the beginning of the nineties. More recently, I could not have edited this book in the United Kingdom without broad and ongoing support and help from Sarah Fernley, Paul Hinds, and Tant Barlow. Later, in South Africa, Terry Dyssell, and Chris and Elana Verster helped by generously providing access to various facilities that I needed while I finalized and checked the contents of this volume. Various friends and relatives have been amazingly tolerant of my editing work during the past two years; thankfully my relationships with these individuals remain largely unchanged.
Two institutions have given me support during the editing of this book. The Department of Computer Science at the University of Manchester supplied me with library and other facilities; it has been particularly rewarding to continue my long association with this distinguished university, home of the first stored program computer (where, as in modern computers, machine code instructions and data were stored in the same loadable and modifiable memory). The Computer Science Department at the University of Cape Town kindly provided me with access to the university's library and Internet facilities during the last three months of the editing process.
Paul Becker and John Fuller took care of the book at Addison-Wesley. Kathy Glidden of Stratford Publishing Services provided immense help and skill in transforming the manuscript into final copy. It was a delightful privilege to have her work on this volume. Notes 1 Design is the activity of formulating an engineering solution to a problem in light of requirements, other pertinent design information, and technical and economic constraints. The interactive system design discussed here is different from the technical implementation design referred to as object-oriented design (OOD). Interactive system design is discussed later in this preface, but, for now, this is mostly an activity that establishes both the high-level system design and the design of the user interface as perceived, used, and experienced by its future users.
2 Based on the International Standards Organisations definition: "Usability is the extent to which a product can be used by specified users to achieve specified goals with effectiveness, efficiency, and satisfaction in use" ISO 1998. Here efficiency refers to efficiency of interaction when used by users, rather than internal program efficiency. It is important to note that the ISO definition includes issues of system scope, contents, functionality, and impact on user work and leisure activities, as well as the more traditional notion of usability, namely, ease and efficiency in interactively invoking system functionality.
3 See, for example, Landauer 1995 for a readable and wide-ranging discussion of usability and its consequences.
4 User interface design as practiced by HCI designers includes as its scope all the concerns of usability, from the abstract design of system scope, contents, and functionality, to the detailed design of the presentation and interactivity of the actual concrete user interface to the interactive system. This is in contrast to user interface design as practiced by software engineering professionals as an "add-on" activity that occurs after analysis as part of a subsequent implementation-centered OOD phase.
5 This is not to say that these are the only determinants of successful interactive design. For example, the application of social science methods such as ethnography and ethnomethodology to extract design information from field studies of users and their environments is becoming more widespread within HCI practice. However, these methods are some way from being able to be closely integrated with mainstream software engineering approaches.
P.8 References Carroll 1995 J. M. Carroll, Scenario-Based Design: Envisioning Work and Technology in System Development. New York: Wiley and Sons, 1995.
Cockburn 1997a A. Cockburn. Goals and Use Cases. JOOP, 10 (6), SIGS Publications, 1997, 3540.
Cockburn 1997b A. Cockburn. Using Goal-Based Use Cases. JOOP, 10 (7), SIGS Publications, 1997, 5662.
Constantine and Lockwood 1999 L. L. Constantine and L. A. D. Lockwood. Software for Use: A Practical Guide to the Models and Methods of Usage-Centered Design. Reading, MA: Addison-Wesley, 1999.
Dix et al. 1993 A. Dix, F. Finlay, G. Abwood, and R. Beale. Human-Computer Interaction. Englewood Cliffs, NJ: Prentice Hall, 1993.
Dumas and Redish 1993 J. S. Dumas and J. C. Redish. A Practical Guide to Usability Testing. Norwood, NJ: Ablex, 1993.
ISO 1998 International Standardization Organization, ISO9241. Ergonomic Requirements for Office Work with Visual Display Terminals (VDTs), Part 11, Guidance on Usability, 1998.
Kruchten 1998 P. Kruchten. The Rational Unified Process. Reading, MA: Addison-Wesley, 1998.
Landauer 1995 T. K. Landauer. The Trouble with Computers. Cambridge, MA: MIT Press, 1995.
Newman and Lamming 1995 W. M. Newman and M. G. Lamming. Interactive System Design. Reading, MA: Addison-Wesley, 1995.
Norman 1986 D. A. Norman. Cognitive Engineering. In D. A. Norman and S. W. Draper, eds. User Centered System Design. Hillsdale, NJ: Lawrence Erlbaum Associates, 1996.
Preece et al. 1994 J. Preece, Y. Rogers, H. Sharp, D. Benton, S. Holland, and T. Carey. Human-Computer Interaction. Reading, MA: Addison-Wesley, 1994.
Rational 2000 Rational Unified Process 2000 Version 6, CD Manual. Rational Software Corporation, 2000.
Stapleton 1997 J. Stapleton. Dynamic Systems Development Method: The Method in Practice. Reading, MA: Addison-Wesley, 1997.
van Harmelen 1994 M. van Harmelen. Object Oriented Modelling and Specification for User Interface Design. In F. Paterno, ed. Interactive Systems: Design, Specification and Verification. Proceedings of First Eurographics ISDV Workshop, 1994.
van Harmelen et al. 1997 M. van Harmelen, J. Artim, K. Butler, A. Henderson, D. Roberts, M. B. Rosson, J.-C. Tarby, and S. Wilson. Object-Oriented Models in User Interface Design: A CHI97 Workshop. SIGCHI Bulletin, October 1997.
See all Editorial Reviews