25 research outputs found
STAIRS case study : the BuddySync system
This paper presents a case study evaluating the use of STAIRS when specifying a system for connecting service providers and people requesting those services. As part of the case study, we give an example of how STAIRS may be used in combination with development methodologies like e.g. RUP. We conclude that STAIRS seems a promising method for working with UML 2.x interactions, and indicate some possible directions for future research
STAIRS - Understanding and Developing Specifications Expressed as UML Interaction Diagrams
STAIRS is a method for the step-wise, compositional development of interactions in the setting of UML 2.x. UML 2.x interactions, such as sequence diagrams and interaction overview diagrams, are seen as intuitive ways of describing communication between different parts of a system, and between a system and its users.
STAIRS addresses the challenges of harmonizing intuition and formal reasoning by providing a precise understanding of the partial nature of interactions, and of how this kind of incomplete specifications may be consistently refined into more complete specifications.
For understanding individual interaction diagrams, STAIRS defines a denotational trace semantics for the main constructs of UML 2.x interactions. The semantic model takes into account the partiality of interactions, and the formal semantics of STAIRS is faithful to the informal semantics given in the UML 2.x standard. For developing UML 2.x interactions, STAIRS defines a number of refinement relations corresponding to basic system development steps. STAIRS also defines matching compliance relations, for relating interactions to real computer systems.
An important feature of STAIRS is the distinction between underspecification and inherent nondeterminism. Underspecification means that there are several possible behaviours serving the same overall purpose, and that it is sufficient for a computer system to perform only one of these. On the other hand, inherent nondeterminism is used to capture alternative behaviours that must all be possible for an implementation. A typical example is the tossing of a coin, where both heads and tails should be possible outcomes. In some cases, using inherent nondeterminism may also be essential for ensuring the necessary security properties of a system
Relating computer systems to sequence diagrams with underspecification, inherent nondeterminism and probabilistic choice : Part 1
Having a sequence diagram specification and a computer system, we need to answer the question: Is the system compliant with the sequence diagram specification in the desired way? We present a procedure for answering this question for three variations of sequence diagrams.The procedure is independent of the choice of programming language used for the system. The semantics of sequence diagrams is denotational and based on traces. In order to answer the initial question, the procedure starts by obtaining the trace-set of the system by e.g. testing, and then transforming this into the same semantic model as that used for the sequence diagram. In addition to extending our earlier work on refinement relations for sequence diagrams, we define conformance relations relating systems to sequence diagrams.
The work is split in two parts. This paper presents part 1, in which we introduce the necessary definitions for using the compliance checking procedure on sequence diagrams with underspecification and sequence diagrams with inherent nondeterminism. In part 2 [RRS07], we present the definitions for using the procedure on sequence diagrams with probabilistic choice
Refining UML interactions with underspecification and nondeterminism
STAIRS is an approach to the compositional development of UML interactions, such as sequence diagrams and interaction overview diagrams. An important aspect of STAIRS is the ability to distinguish between underspecification and inherent nondeterminism through the use of potential and mandatory alternatives. This paper investigates this distinction in more detail. Refinement notions explain when (and how) both kinds of nondeterminism may be reduced during the development process. In particular, in this paper we extend STAIRS with guards, which may be used to specify the choice between alternatives. Finally, we introduce the notion of an implementation and define what it means for an implementation to be correct with respect to a specification
How to transform UML neg into a useful construct
In UML, the operator neg is used to specify negative, or unwanted, system behaviour. We agree that being able to specify negative behaviour is important. However, the UML neg is currently not wellsuited for this purpose, the main problem being that a single operator is used with several different meanings depending on the context. In this paper we investigate some alternative definitions of neg. We also propose a solution in which neg is replaced by two new operators for specifying negative behaviour
The pragmatics of STAIRS
STAIRS is a method for the compositional development of interactions in the setting of UML 2.0. In addition to defining denotational trace semantics for the main aspects of interactions, STAIRS focuses on how interactions may be developed through successive refinement steps. In this tutorial paper, we concentrate on explaining the practical relevance of STAIRS. Guidelines are given on how to create interactions using the different STAIRS operators, and how these may be refined. The pragmatics is illustrated by a running example
Time exceptions in sequence diagrams
UML sequence diagrams partially describe a system. We show how the description may be augmented with exceptions triggered by the violation of timing constraints and compare our approach to those of the UML 2.1 simple time model, the UML Testing Profile and the UML profile for Schedulability, Performance and Time. We give a formal definition of time exceptions in sequence diagrams and show that the concepts are compositional. An ATM example is used to explain and motivate the concepts
Studentsâ mental models of references in Python
This paper reports on a study exploring studentsâ understanding of references and reference assignments. Students in an introductory programming course in Python were interviewed with respect to what happens during execution of reference assignment statements and function calls involving references. Previous research on Java hasidentified two types of mental models related to reference assignment, which in this paper is referred to as the âCopy value modelâ and the âCopy reference modelâ.An important result in this paper is that each of these models can be divided into two sub-models, giving a total of four different models where only one of them is valid. In addition, we have identified three types of mental models related to references in function calls. This gives valuable insight into studentsâ thinking, which can then be addressed by teachers both in class and in formative assessments. Furthermore, students in two introductory courses were asked to participate in a survey with multiple choice questions asking the students to identify the correct results of executing code examples involving references. The patterns of answers were analyzed based on the mental models identified in interviews. It was found that the identified mental models explained the most common patterns in the student responses
STAIRS â Understanding and Developing Specifications Expressed as UML Interaction Diagrams Doctoral Dissertation by
STAIRS is a method for the step-wise, compositional development of interactions in the setting of UML 2.x. UML 2.x interactions, such as sequence diagrams and interaction overview diagrams, are seen as intuitive ways of describing communication between different parts of a system, and between a system and its users. STAIRS addresses the challenges of harmonizing intuition and formal reasoning by providing a precise understanding of the partial nature of interactions, and of how this kind of incomplete specifications may be consistently refined into more complete specifications. For understanding individual interaction diagrams, STAIRS defines a denotational trace semantics for the main constructs of UML 2.x interactions. The semantic model takes into account the partiality of interactions, and the formal semantics of STAIRS is faithful to the informal semantics given in the UML 2.x standard. For developing UML 2.x interactions, STAIRS defines a number of refinement relations corresponding to basic system development steps. STAIRS also defines matching compliance relations, for relating interactions to real computer systems. An important feature of STAIRS is the distinction between underspecification and inheren
REFINING UML INTERACTIONS WITH UNDERSPECIFICATION AND NONDETERMINISM
interactions with underspecificatio