Our research activities are aimed at providing better usability,
collaboration, extensibility, and mobility in support for
object-oriented modelling. To do this, we work with several
interconnected activities, including
Understanding Object-Oriented Modelling
Object-oriented modelling consists of an intricate number of connected
activities and techniques. In order to understand this complexity, we
have undertaken a number of empirical studies of actual
object-oriented modelling.
We have focussed on experimental system development approaches
(of which Agile Software
Development forms an important part). This is done because
experimental system development approaches, in which experiments are
undertaken with visions, designs, and solutions, are important and
present the most complex challenges to object-oriented modelling.
Key points to emphasize are that object-oriented modelling in
experimental system development is performed
- by multiple practices,
- in an uncertain environment,
- iteratively, incrementally, and in parallel,
- with heterogeneous input and output, and
- in an open-ended way.
These characteristic challenges have to be handled when creating tools
and techniques for object-oriented modelling.
Support for Fluent, Creative, and Flexible Modelling
Current modelling tools have lacks in their support for
- fluency,
- creativity, and
- flexibility.
Fluency is hampered through the constant need to focus on complex
interaction instead of focussing on the work that is to be performed
through modelling. Focus on hard aspects of software engineering in
modelling tools in contrast to, e.g., idea generation, makes creative
modelling problematic. And, finally, the focus on formality through
the use of the UML means that modelling tools are rigid and inflexible
leading to lack of fluency and creativity in modelling.
We investigate support for these types of modelling primarily through
a focus on tool design. Knight has been designed to be used in
situations resembling what modellers would do without tool support and
Knight aims at supporting the same kind of fluency in these
situations. Creativity and flexibility is achieved through a focus on
process and through experiments with, e.g., levels of
restriction in the UML through which modellers are, e.g., able to
annotate their diagrams with freehand drawings or create incomplete,
flexible models.
Activity-Centred Tool Integration
Object-oriented system development, and object-oriented modelling, is
characterized by a large set of interconnected, heterogeneous, and
open-ended activities. Thus, the only way to provide adequate support
for modelling in experimental system development is to integrate
heterogeneous and open tools.
Part of this integration goes through a focus on software architecture
in which components and connectors of separate tools need to
collaborate in order to provide an integrated modelling
environment. We are building architectures that allow asynchronous
(through XML
Metadata Interchange (XMI)) as well as synchronous (through
component technology) integration.
Another focus area for integration is complementing the unique
modelling capabilities of Knight with tools for radically different
structuring domains. Integration with the Topos environment is an
example of this. Using the Topos environment, electronic material such
as drawings, spreadsheets, and documents may be organized in a three
dimensional space using rich and complex structuring
mechanisms. Combined with lightweight modelling using the Knight tool,
this will allow for unique support for heterogeneity in modelling.
Distributed Collaboration Support
The Knight tool supports co-located object-oriented modelling in
itself by employing electronic whiteboard-suitable interaction, such
as gesture recognition. An ongoing activity aims at supporting
distributed collaboration enabling modellers to use Knight at
different locations and on heterogeneous devices in a fluent way.
From a technical point of view, the goals of creating distributed
collaboration support for Knight are to
- create techniques for distribution of general, highly structured
data (which in the Knight case is UML data),
- experiment with architectures for discovery of, use of, and
transitions between different resources for distributed collaboration,
and
- to empirically test the type-based publish/subscribe
paradigm in this setting.
Type-based
publish/subscribe is a novel distribution paradigm based on using
instances of application-defined types, i.e. objects, as
events. It enables us to get a natural and flexible granularity of
distributed communication combined with a decoupling in time, space,
and flow of distributed collaboration clients.
From a usability point of view, the goals of creating distributed
collaboration support for Knight are to
- create interfaces for the effective use of and transition between
different hardware resources and
- experiment with lightweight session management, concurrency
control, and awareness.
Teaching and Learning Object-Oriented Modelling
Modelling is a central part of object-oriented software
development. However, current modelling techniques and notations have
problems when used for teaching and learning object-oriented
modelling. In particular the ubiquituous Unified Modeling Language
(UML) modelling notation standard have problems in
- Extent. The UML has nine diagram types, more than 100
distinct meta-classes, and even more relationships between these.
- Complexity. The many elements of the UML have complex
semantics and there is no concept of level of use related to the
expertise of modellers.
- Usability. Even though the UML is large and complex, it has
no support for many commonly occurring modelling practices such as
freehand drawing and the inclusion of other diagramming styles.
The Knight tool provides functionality for remedying some of these
problems and we are experimenting with enhancing this
support. Concretely, we envision the Knight tool being used in several
collaborative and individual teaching scenarios and in the transitions
between these:
- Lecture use. Lecturers can use Knight to gradually explore
and explain UML and modelling in a teaching situation.
- Peer instruction use. Teaching assistants and students may
use Knight to present and develop solutions collaboratively and
interactively.
- Peer group use. Just as software developers may use Knight
for collaborative modelling, students may use Knight for ordinary
modelling and as a transitions to other scenarios of teaching and
learning.
- Individual use. Knight is effective in use on an ordinary
desktop PC.
Pervasive Modelling Support
Pervasive computing, in which devices are becoming smaller,
more intelligent, increasingly connected, and more ubiquituous,
present new challenges to supporting object-oriented modelling:
- Heterogeneity of input and output devices. Input and output
can be done on a range of devices ranging from small devices without a
display to large devices covering complete walls. All devices will be
connected via the Internet.
- Awareness of people, places, and things. The context of a
pervasive computing system determines how and what the system should
offer its users.
- Virtuality contra physicality. Computing capabilities will
be built into a range of physical devices that will open new
possibilities of integrating these into a virtual environment.
Both in supporting modelling of pervasive computing systems and
modelling with pervasive computing systems, the Knight tool
provides a natural starting point for experiments with pervasive
modelling support.
Given the Knight tool as starting point, we are technically beginning
an investigation into infrastructures for a pervasive modelling
environment. This infrastructure will build upon experiments with
distributed collaboration, support for heterogeneity, and peer-to-peer
modelling technology. From a grounding point of view, new empirical
studies of new ways of working in object-oriented modelling will
provide essential input.