4 research outputs found
Exploration games for UML software design
The Unified Modeling Language (UML) has become the standard language
for the design of object-oriented software systems over the past
decade. Even though there exist various tools which claim to support
design with UML, their functionality is usually focused on drawing UML
diagrams and generating code from the UML model. The task of choosing
a suitable design which fulfils the requirements still has to be
accomplished by the human designer alone.
The aim of this thesis is to develop concepts for UML design tools
which assist the modeller in improving the system design and
requirements incrementally. For this approach a variant of formal
games called exploration games is introduced as underlying
technique. Exploration games can be defined on the basis of incomplete
and imprecise UML models as they occur frequently in practice. The
designer repeatedly plays an exploration game to detect flaws or
incompleteness in the design and its specification, which are both
incorporated in the game definition. At any time the game definition
can be incremented by the modeller which allows him to react to the
discoveries made during a play and experiment with new design solutions.
Exploration games can be applied to UML in different variants. For
each variant must be specified how the UML diagrams are used to set up
the game and how the semantic variation points of UML should be
interpreted. Furthermore some parts of the game definition may not be
contained in the UML model and have to be provided separately. The
emphasis of this thesis is on game variants which make use of UML
diagrams for modelling system behaviour, especially state machines
and activity diagrams.
A prototypical implementation demonstrates how the concepts developed
in this thesis can be put into practice. The tool supports the user in
defining, playing and incrementing a game. Moreover it can compute
winning strategies for the players and may act as opponent of the
modeller. As example a game variant based on UML state machines has
been implemented. The architecture that has been chosen for the tool
leaves room for extension by additional game variants and alternative
algorithms
Games for UML software design
In this paper we introduce the idea of using games as a driving metaphor for design tools which support designers working in UML
Games for UML software design
Abstract. In this paper we introduce the idea of using games as a driving metaphor for design tools which support designers working in UML. We use as our basis a long strand of work in verification and elsewhere. A key difference from that strand, however, is that we propose the incremental development of the rules of a game as part of the design process. We will argue that this approach may have two main advantages. First, it provides a natural means for tools to interactively help the designer to explore the consequences of design decisions. Second, by providing a smooth progression from informal exploration of decisions to full verification, it has the potential to lower the commitment cost of using formal verification. We discuss a simple example of a possible game development. 1 Introduction The Unified Modeling Language (UML)[10] is a widely adopted standard for modelling object-oriented software systems. It consists of several diagram types providing different views of the system model. UML is a semi-formal language defined by a combination of UML class diagrams, natural language and formal constraints written in the object constraint language (OCL). There are many of tools available which support, or claim to support, design with UML. They aid in drawing UML diagrams, generation of code fragments in different object-oriented languages and documentation of software systems. Some of them are able to perform consistency checks such as for example the accessibility between packages. However, these features seem to be useful for the recording and verifying of a chosen design, rather than for the design activity itself. There is nothing available to the mainstream object-oriented business software developer which will actively help him or her to explore different design decisions and work out which is the best option. It is natural to look to verification to fill this gap