Abstract
This thesis describes the
role-based model for software architecture applied to object-oriented systems and frameworks. The purpose of the role-based model is to separate the architecture of a software system into parts that may be considered independently or omposed and viewed as elements of a larger whole. The model factors a system into groups of interacting objects, called
role teams. A
role team consists of nested role teams and
roles, which describe the properties required of objects to participate in the role team. An object is represented in the system by the
role or
roles it plays in the context of a role model. The behaviour of a role team is expressed as a causal sequence of activities; role players (objects) are responsible for performing the activities. The structure of a system is the composition of possibly many role teams, and the overall behaviour of a system results from linking the behaviour of the individual teams in a causal sequence. Objects play roles in multiple teams subject to structural and temporal constraints. Structural constraints limit which roles an object may play and temporal constraints limit when an object may play a role. The role-based model is particularly useful for representing systems that have dynamic structure, e.g., object creation, destruction, and movement. Models of dynamic structure appear to missing in current object-oriented techniques.
Informal visual notations are used to specify systems in the role-based model. An architectural notation is developed as part of this thesis. System behaviour is described using a subset of Buhr’s timethreads notation. The goal is to capture the essential system architecture and large recurring behaviour patterns as these form the basis for understanding more detailed issues.
The role-based model is developed by extending the concepts of a more general metamodel. The role-based model is applied to an existing object-oriented framework for creating semantic graphic editors (HotDraw).
Discussion
- Please feel free to discuss this article directly on this page. Constructive comments are welcomed! Please sign your TWiki name.