The Knight Project Knight logo

Research Areas

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

Most research areas have been investigated in one or more of our research papers.

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.

Last updated on 17 June 2002

Valid HTML 4.0! Valid CSS!