The concept of role modeling has been introduced in different fields and at different times in order to model context-related information, including the dynamic change of contexts. But up to now, roles have mainly been used in an isolated way for context modeling in programming languages, in database modeling or to specify access control mechanisms. Never have they been used consistently at all levels of abstraction in the software development process, i.e. modeling of concepts, languages, applications and software systems. Only then, software can be defined as consistently context-sensitive.

The central research goal of this program is to prove the feasibility of consistent role modeling and its applicability. Consistency means that roles are used systematically for context modeling on all levels of the modeling process. This includes the concept modeling (in meta-languages), the language modeling, and the modeling on the application and software system level.

There are four aims of this program that will contribute to the main goal of research in this field:

  • Formalizing the universal concept of roles. The aim is to prove that it is a feasible concept for developing context-sensitive software. This means to integrate the concept in classical, object-oriented modeling implying thus its expansion.
  • Researching the dynamic aspect of roles.
  • Investigating the consequences of those new attributes of role-based software on the duration. New concepts for coping with dynamic processes have to be developed. Research will focus on the influence context-specific aspects of the role-concept have on the process of developing software and the lifetime of software.
  • Evaluation of context-sensitive role-modelling using practical examples. This will help to illustrate the results and to present the advantages of these concepts.

Research will focus on three topic clusters as illustrated in the following figure:

TB1: Roles in Concept- and Language Modeling

The basic and very central problem of role-based development is the need to establish formal, semantic basics of the role-concept. If the role concept is embedded in existing languages, e.g. modeling languages, data definition languages, query languages and programming languages, it must be investigated which characteristics the host language must provide. Also, the question has to be answered, which advantage the role concept provides in terms of expressiveness. Furthermore, it is not yet clear which meta-predicates with similar features already exist that lead to a broadening or that are derived from roles. Metalevel M3 (meta-meta-models) and M2 (meta-models) are in the focus of this topic cluster.


TB2: Roles in Software Development

Many types that appear in programs or databases should be defined as roles rather than types in terms of entities. Therefore, it is necessary to classify them in a dynamic, context-sensitive way by roles (as types). Modern software architectures as in service-oriented structures of applications excel by a higher variability and more chances for expansion. Traditional module-concepts are not capable of this to a satisfying extent. Therefore, a dynamic, context-sensitive classification by roles should not only be used for modeling applications but also for software-architecture. There, it can be used as a basis for the dynamic configuration and extension of systems. Roles are dynamic and they are referring to a certain context. Nevertheless, they are not unspecific. Therefore important features in the process of developing – like testing correctness – can still be applied. The variability and flexibility of a role is limited within a certain frame. The boundaries of this frame have to be stated very clearly in a role-definition. The planned theses will research on how the specifications will have to work. Topic cluster 2 focusses on questions of the use of the notion of roles on an object-level. This is the basis for the development of applications with roles (modeling applications, creating schemes, modeling systems).


TB3: Roles at Runtime

Introducing roles as „first-class citizens“ in the process of modeling and developing new software means to raise questions concerning the software runtime. As roles are very volatile, different configurations will be chosen – which one is selected will depend on the moment of examination. It will also depend on which roles certain entities have. On the one hand, these configurations will have a direct impact on the availability, storage and discoverability of data. On the other hand, it will have an influence on the connection to role-specific behaviour. A role model not only describes a dynamic system of a type. Single roles can have also their own functions and data that are not connected with their real identity. Topic cluster 3 investigates the use and the impact of the term of roles and of models depending on the runtime of roles (level of entity).