Mahemoff.com
Design Reuse in HCI and Software Engineering
These papers were published during my PhD thesis, "Design Reuse in Human-Computer Interaction
and Software Engineering" (Mahemoff, 2001). In addition to papers directly
on that topic, there is a paper on internationalisation (known to some as
"internationalization") and another on model-view-controller, because those
topics were used as the basis for two of the
pattern languages that were created during the thesis. There is also a bibliography of refereed papers.
Below are postscript/PDF versions, as well as some HTML versions. The HTML
versions were produced by a unique blend of LaTeX2HTML and Vim.
Please send comments, questions, and flames here. Any feedback is welcome!
Pattern Languages and Design Reuse in Human-Computer Interaction
Ordered by significance to thesis research.
- Mahemoff, M. J. and Johnston, L. J. Usability
Pattern Languages: the "Language" Aspect. In Hirose M. (ed.),
Human-Computer Interaction: Interact '01, Tokyo, Japan, pages 350-358, IOS
Press (For IFIP).
Abstract
The pattern language concept, adapted from building architecture and
detailed software design, has recently been applied to HCI by a number
of researchers. We argue that the ``language'' aspect of pattern languages
is critical and outline thirteen research efforts in HCI patterns. Many
pattern collections have broad scopes, and we argue that this results in
patterns which are not as interdependent as a narrow scope would allow.
The argument is illustrated with our Planet pattern language, which helps
developers reuse knowledge for internationalised software. The narrow
scope, namely a focus on the needs of internationalised users, allows us to
produce interdependent patterns which range in abstraction level, from
organisational process to high-level specification to detailed software
design. Thus, the language supports a generative, interdisciplinary,
approach to reusing knowledge in HCI.
Entire Document
PDF | HTML
-
Mahemoff, M. J. and Johnston, L. J. (1998).
Principles for a Usability-Oriented Pattern
Language
In Calder, P. and Thomas, B. (Eds.), OZCHI '98 Proceedings
, 132-139.
Los Alamitos, CA. [In Adelaide, Australia, November 30 to December 4,
1998]
http://mahemoff.com/paper/principles/
Abstract
High-level usability principles (e.g. ``Familiarity'') are difficult to
apply to specific projects, and style guides providing more detailed
instructions are often misinterpreted and inaccessible. An approach to
usability based on design patterns enables designers to learn how
certain recurring problems can be solved according to high-level
principles. This paper summarises a review of the desirable properties
advocated by five popular style guides, and discusses how this list has
been modified to provide an underlying philosophy which is appropriate
for a usability-oriented pattern language. A sample pattern which
exemplifies this philosophy, involving iteration through selectable
objects, is described.
Entire Document
Postscript |
HTML
-
Mahemoff, M. J. and Johnston, L. J. (2000).
Brainstorming with Generic Tasks: An Empirical
Investigation In Paris, C., Ozkan, N., Howard, S., and Lu, S.
(eds.), OZCHI 2000 Proceedings, 224-231.
CHISIG, Ergonomics Society of Australia, Sydney, 2000.
Abstract
This paper addresses the concept of generic tasks--low-level tasks which
recur across different systems (e.g. remove, compare). We propose that
generic tasks can facilitate rapid brainstorming of functionality
during early system design, and also indicate that they could provide a
common vocabulary for concepts at a higher level of abstraction than UI
objects. A taxonomy of generic tasks was prepared from fourteen
software projects; a pilot study was conducted to investigate how
people use the generic tasks. In this study, six subjects were
presented with two hypothetical systems, and initially used a standard
structured technique to propose as many new tasks as possible for each.
Subsequently, they were introduced to the generic task list. The
results indicate that using the list helped subjects to generate new
tasks which they had not previously proposed.
Entire Document
PDF |
HTML
- Hussey, A. and Mahemoff, M. Safety-Critical
Usability: Pattern-based Reuse of Successful Design Concepts. In M. McNicol (ed.), 4th
Australian Workshop on Industrial Experience with Safety Critical Systems and Software (SCS) 99, Canberra, Australia, pages 19-34, ACS.
Abstract
Users of safety-critical systems are expected to effectively control or monitor complex systems, with errors potentially leading to catastrophic
consequences. For such high-consequence systems, safety is of paramount importance and must be designed into the human-machine interface.
There are many case studies available which show how inadequate design practice led to poor safety and usability, but concrete guidance on good
design practices is scarce. This paper argues that the pattern language paradigm---which is widely used in the software design community---is
a suitable means of documenting appropriate design strategies. We discuss how typical usability-related properties (e.g., flexibility) need some
adjustment to be used for assessing safety-critical systems and document a pattern language which is based on corresponding
``safety-usability'' principles.
Entire Document
Zipped
postscript | Rough, text-only, HTML
-
Mahemoff, M. J. and Johnston, L. J. (1999).
Reusing Knowledge about Users. In Zowghi, D. (ed.)
Fourth Austrlaian Conference on Requirements Engineering (ACRE),
59-69. Macquarie University, Sydney, 1999.
Abstract
Requirements engineers should work towards specifications of systems
which address both utility (relevance to user needs) and usability
(e.g. learnability, efficiency). Our limitations in predicting human
behaviour prevent us from preparing a user-centered specification from
first principles. We argue that developers can improve on the
situation by reusing the discovered knowledge itself, as well as
reusing the processes of obtaining and using that information. The
focus of this paper is internationalisation. We describe the design of
a repository of cultural knowledge, and a pattern language which
captures the process of acquiring that knowledge. Finally, we
demonstrate our vision for these tools with an hypothesised scenario.
Entire Document
PDF
-
Mahemoff, M. J. and Johnston, L. J. (1999).
The Planet Pattern Language for Software
Internationalisation. In Manolescu, D., and Wolf, B. (Eds.),
Pattern Languages of Program Design (PLOP) 1999. [In
Monticello, IL, September 15-18, 1999]
Proceedings online at
http://jerry.cs.uiuc.edu/~plop/plop99/proceedings/.
Abstract
There are compelling reasons to produce software for international
audiences. The needs of users from diverse cultures must be taken into
account if the software is to be usable and useful. Due to differences
in language and user psychology, it is necessary to produce multiple
versions of the same application. This leads to a large number of
technical and non-technical issues. The Planet pattern language
addresses the high-level issues which developers encounter in
specifying requirements for international software. It helps developers
document
and access information about target cultures and shows them how these
resources can help them to customise functionality and user-interface
design.
Entire Document
PDF
| Rough, text-only, HTML
- Interact '99 Workshop W3 (Pattern Languages) Position Paper
HTML
-
Mahemoff, M. J. and Johnston, L. J. (1998).
Pattern Languages for Usability: An Investigation
of Alternative Approaches. In Tanaka, J. (Ed.), Asia-Pacific
Conference on Human Computer Interaction (APCHI) 98 Proceedings ,
25-31. Los Alamitos, CA: IEEE Computer Society. [In Shonan Village, Japan,
July 15-17, 1998]
Abstract
The best way to ensure usability is to treat human factors as an input to
design, rather than merely evaluating prototypes or design
documentation. The capability of pattern languages to facilitate the
design process, improve communication, and record design philosophies
suggests that they may assist the user-centred design process.
Researchers have not yet investigated in detail what a pattern language
for usability would offer, or how it could be used. This paper explores
several alternative conceptualisations of usability-oriented patterns.
Patterns of tasks provide high-level detail about tasks users often
perform and how they can be supported. User profile patterns help
analysts ensure different kinds of users are supported. Relationships
between user-interface objects can also be captured by patterns,
assisting system implementors by providing information more directly.
Patterns of individual user-interface objects, as well as entire
systems are also considered, but appear to have more limited
application.
Entire Document
Postscript |
HTML
-
NOTE: This is a full version of
the above paper on Safety-Critical Systems
Mahemoff, M. and Hussey, A. (1999).
Patterns for
Designing Safety-Critical Interactive Systems
Technical Report 1999/25, Department of Computer Science and Software
Engineering, The University of Melbourne.
Abstract
Users of safety-critical systems are expected to effectively control or monitor complex systems, with errors potentially leading to catastrophic
consequences. For such high-consequence systems, safety is of paramount importance and must be designed into the human-machine interface.
There are many case studies available which show how inadequate design practice led to poor safety and usability, but concrete guidance on good
design practices is scarce. This paper argues that the pattern language paradigm---which is widely used in the software design community---is
a suitable means of documenting appropriate design strategies. We discuss how typical usability-related properties (e.g., flexibility) need some
adjustment to be used for assessing safety-critical systems and document a pattern language which is based on corresponding
``safety-usability'' principles.
Entire Document
GZipped postscript
Software Internationalisation
-
Mahemoff, M. J. and Johnston, L. J. (1998).
Software Internationalisation: Implications for
Requirements Engineering. In Fowler, D. and Dawson, L. (Eds.),
Proceedings of the Third Australian Workshop on Requirements
Engineering, 83-90. Deakin University: Geelong. [In Geelong,
Australia, October 26-27, 1998]
http://mahemoff.com/papers/reqsi18n/
Abstract
When developers produce software for users from different cultures,
they should consider how both overt and covert cultural factors impact
on the requirements. Overt factors (e.g. measurement units,
calendars) are well-defined and easily understood. Covert factors
(e.g. mental disposition, perception) are more vague and may not be
immediately obvious. Both types of factors demand early attention to
produce usable software. Usability tests and local consultants can
help to identify requirements for internationalisation, but should be
supplemented with recorded information about cultural factors. We
provide a classification of factors which impact on requirements, and
propose that it could form the basis for a repository of cultural
information accessible by developers.
Entire Document
Postscript |
HTML
Software Architecture
-
Mahemoff, M. J. and Johnston, L. J. (1999)
Handling Multiple Domain Objects
with Model-View-Controller. In Mingins, C. and Meyer, B. (eds.),
Technology of Object-Oriented Languages and Systems 32, in Melbourne,
Australia, pages 28-39, Los Alamitos, CA: IEEE Comp. Soc.
Abstract
The Model-View-Controller (MVC) architecture style separates software into
models representing core functionality, views which display the models to the
user, and controllers which let the user change the models. Although more
sophisticated architectures have since been developed, MVC is interesting
to explore because its simplicity makes it more acceptable to practitioners and
it is beginning to become well-known in industry. However, MVC is rarely
studied with regard to systems containing more than one domain model. Several
issues are either ambiguous or missing in the literature: the distinction
between views and controllers, the way model states are updated in a
multiple-model architecture, and the creation of reusable domain-specific
components. A program was developed to investigate these issues, and this
paper documents the corresponding design decisions. MVC proved
helpful in creating a multiple-model system with reusable components, although
some weaknesses remain.
Entire Document
PDF
This work is licensed under a Creative Commons Attribution 3.0 Unported License.