3rd International Workshop on
Scenarios and State Machines:
Models, Algorithms, and Tools
(SCESM04) ICSE Workshop W5S
Edinburgh, May 25th, 2004
Themes and GoalsScenarios and state machines have emerged as two important modeling perspectives on the reactive behavior of complex systems. Scenarios typically represent a partial view on the interactions between multiple components; state machines typically represent the complete behavior of individual components. The methodological potentials of the combination of partial and complete behavior perspectives have yet to be fully exploited in the development process for complex, reactive systems. Automated tool support – based on algorithms relating scenarios and state machines for analysis, design, implementation or validation – offers great promise for improving the current practice of software engineering.
Scenarios and state machines complement each other in multiple ways: Scenario modeling focuses on the interactions between system components or actors; communication between such entities is viewed as the principal modeling construct. Interaction modeling has proven useful for getting an overview of the interplay between components to fulfill a certain task, and sharing this insight among project stakeholders. In this sense, scenarios represent projections of the overall system behavior onto individual tasks. State-based modeling, on the other hand, usually concentrates on the internal states of individual components. This yields projections of the overall system behavior onto individual components. State-based formalisms have a distinguished history in software engineering, particularly in object-oriented, distributed and real-time system design. In many cases, the formalisms are amenable to rigorous automated analysis, such as model checking.
The UML is a prominent example of a modeling language providing both scenario- and state-based description techniques for object- and component behavior. Scenarios are captured by means of use cases, or sequence and collaboration diagrams, where component interaction is in the center of concern. Statecharts capture state-based behavior, typically on a per-component basis. In the telecommunications domain, the ITU standards of MSC (Message Sequence Charts) and SDL (Specification and Description Language) provide a similar distinction between exemplary and complete behavior descriptions. In both cases, there exists little methodological or tool support for transitions between scenarios and state machines, let alone means for refining or validating one against the other.
The relation between scenarios and state machines, however, is important and can be exploited throughout the development process. Scenarios can form the starting point for synthesis of prototypic state machines, and thus serve as an element in forward engineering. Scenarios and state machines together foster system comprehension when analyzing existing or planned systems. Scenarios representing traces of system execution help in understanding interacting state machines in a reengineering effort. Both interaction scenarios and state machines can be applied in specifying component interfaces. Simulation tools can use scenarios or animated state machines to make their relationships explicit.
To fully unleash their methodological potentials in practice, the relation between scenarios and state machine models needs to be supported by corresponding algorithms and tools. For instance, conformance between scenarios and state machine models can be analyzed using model checking techniques. The information available in a given set of scenarios can be used to automatically synthesize a state machine or a set of state machines implementing the specified interaction behavior. In each of these cases, the underlying notion of conformance has to bridge the gap between partial scenarios and complete, operational state machines; heuristics typically play an important role in this process.
The main area of interest for this third ICSE workshop will be the application of proposed techniques for relating scenarios and state machines, their proper integration in the overall software development process, and the benefits and limitations of the current proposals in practice. Thus, practical problems (such as scalability) should be discussed by means of the provided case studies or other real-world examples.