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
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
(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
Everybody Must Understand IT and Managers Must Master IT
(ROOTS 2000 keynote) .ZIP
|UML Collaboration semantics.
(A 1999 green(?) paper and a presentation. )
.PDF , .HTML , PowerPoint
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
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)
|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.
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
|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):
| Industrial Creation of Intelligent Network
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.
|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.|