home   themes   roles


Role Modeling

Roles are about objects and how they interact to achieve some purpose. For thirty years I have tried to get them into the into the main stream, but haven't succeeded. I believe the reason is that our programming languages are class oriented rather than object oriented. So why model in terms of objects when you cannot program them?

Almost all my documents are about role modeling in one form or another. There are two very useful abstractions on objects. One abstraction classifies objects according to their properties. The other studies how objects work together to achieve one or more of the users' goals. I have for the past 30 years tried to make our profession aware of this important dichotomy, but have met with very little success. The Object Management Group (OMG) has standardized the Unified Modeling Language, UML. We were members of the core team defining this language and our role modeling became part of the language under the name of Collaborations. Initially, very few people seemed to appreciate the importance of the notion of Collaborations. I thought that this would change when Ivar Jacobson came out with his Use Cases because a role model shows how a system of interacting objects realizes a use case, but it is still heavy going. There are encouaging signs in the concept of Components in the emerging UML version 2.0. Even more encouaging is the ongoing work with Web Services where people and components are in the center of interest while classes are left to the specialists. My current project, BabyUML, binds it all together: algorithms coded as classes + declaration of semantic model + coding of object interaction as collaborations/role models.

The best reference is my book Working With Objects. Out of print, but is still available from some bookshops including Amazon as of January 2010.

Below is a selection of relevant documents.

Modeling Systems in UML 2.0
A Proposal for a Clarified Collaboration

A proposal to UML 2.0 proposers and the UML Revision Task Force. June 2001. .PDF
uml, roles, people

I propose that UML 2.0 semantics and notation is clearly separated into two, clearly distinguished, model perspectives: The Class Perspective (CP) and the Role Perspective (RP)

Modeling System Behavior.
The What, the Why and the How of the UML Collaboration

May 2000.
Draft article .PDF
Example Java Applet .HTML
Example code .ZIP
UML, roles, people

Business information systems are becoming far too important to be left to the computer experts. Top management, marketing experts and the user community in general must be actively involved in shaping their future information systems. This means that they must not only know how to operate their current systems; they must also understand how the systems are structured.

It is never easy to make the complex appear simple without lying. What is needed is a common language that lets the computer professional present the nature of an information system in terms that are meaningful and interesting to the user. And the presentation must be complete and true on the chosen level.

The What, Why and How of the UML Collaboration.
(ROOTS 2000 tutorial) .ZIP
(TOOLS 2000 tutorial) PowerPoint
uml, roles The UML Collaboration is a powerful tool for modeling system behavior. We use it for many purposes ranging from enterprise modeling and designing distributed systems architectures right down to shaping the details of object oriented programs. We will focus on the practical application of the Collaboration and illustrate how it helps us create simple solutions to complex problems through separation of concern.
The UML Collaboration, a standard for role modeling.
Everybody Must Understand IT and Managers Must Master IT
(ROOTS 2000 keynote) .ZIP
roles, people  
UML Collaboration semantics.
(A 1999 green(?) paper and a presentation. )
.PDF , .HTML , PowerPoint
uml, roles

A Collaboration describes how a number of objects work together for a common purpose. A CassifierRole is the named specific position of an object participating in a Collaboration. If there can be more than one object corresponding to a given ClassifierRole, one of these instances is selected to represent them all. The other instances are constrained to behave in a way corresponding to the selected representative.

Egil P. Andersen:
Conceptual Modeling of Objects.
A Role Modeling Approach

Dr Scient thesis 4, November 1997, Department of Informatics, University of Oslo.
Original version: .PS.GZ
University of Oslo mirror .PDF .PS.GZ
roles

This is a deeply technical foundation for object oriented modeling. It makes a contribution to the problem of handling complexity due to the size of the modeling task. The subject is highly relevant. Modeling of large compex systems is central to development of computer systems and is not easy.

The role modeling techniques presented are novel contributions and very interesting. The treatment of overlapping states and analysis of legal statespaces is original, and the proposal for fair and unfair action is novel, amongst many other things. The author presents the ideas in a convincing manner and gives a number of good examples of the usefulness of role modeling. The chapter on composition of role models and virtual roles for manipulating conceptual models is also very convincing. (The original idea of role modeling is due to Trygve Reenskaug and Else Nordhagen, but the current dissertation extends the ideas and gives them a theoretical foundation that was missing from the earlier, largely intuitive work.)

The parts on modeling behavior presents a number of ideas for modeling the dynamic behavior of objects and extends work by David Harel and others. In addition to handle the 'state explosion' problem, problems regarding 'composition of separately developed descriptions' and 'separation of concerns' are handled. A number of interesting techniques for analyzing behavior descriptions are presented including deadlock and livelock.

Role Modeling Enters the Main Stream
(A column in ObjectEXPERT January 1997)
.PDF
roles, uml  Conventional wisdom has been that the Object Modeling Technique (OMT) covers all needs for object oriented analysis and design. A new wisdom is now emerging: OMT needs to be augmented with an entirely different abstraction to cover the needs of distributed systems and system reuse.

Working with objects.
The OOram Software Engineering Method.

Manning/Prentice Hall 1996. ISBN 0-13-452930-8.
Out of print, but is still available from some bookshops including Amazon as of January 2010.

You can download this version of the last draft before publication. It has not had the benfit of the copy editor's corrections and improvements, but its substance correspond closely to the printed book.
.PDF

people, is21c, mvc, roles

"The first method that deals realistically with reuse, and one of the few that comes close to describing what I do when I design." (Ralph Johnson, University of Illinois)

Ian Graham voted this book "One of the Three Best Books" of 1996/97. (JOOP September 97):
"This book brings the OOram method before the public, along with its most significant contribution to object-oriented software engineering: role modeling. It also provides plenty of sensible advice for developers adopting object technology, based on the author's evident experience and understanding of the the technical intricacies and human aspects of software development. However, it is a deeply technical book and will put off readers who are not already familiar with an object-oriented programming language."... "As a technical contribution it should become one of the classic texts within the field. The role modeling ideas will undoubtedly influence other object-oriented software engineering methods and I think we will see them quickly adopted in the now emerging third generation methods."

Industrial Creation of Intelligent Network Services
The following suite of reports contains a complete description of a simple example system for the creation and invocation of point-to-point telephone communication:
Set of project reports 1993.
Overview .HTML
roles, frameworks, architecture IN-Lab2 is a software laboratory was set up in 1993 for small-scale experiments with the design and construction of Intelligent Networks. The theme of this suite of reports is to study a simple, but complete value chain for this industry, and to to illustrate appropriate technologies for each of the levels of this value chain by means of a simple worked example. The example illustrates that object orientation in general and the OOram methodology in particular is exceptionally well suited as a base technology for this industry. The controlled reuse of proven components is a key to the effective production of an extensive and evolving offering of services.