Что двигало автором? А вот что (http://heim.ifi.uio.no/%7Etrygver/themes/roles/roles-index.html): 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?
Ну да: мы окружены конкретными вещами, которые участвуют в различных явлениях, занимая там какие-то роли. А описываем окружающий мир в терминах типов -- и получается удивительно плохо. Нужно учиться описывать мир в терминах ролей, чтобы переходить к процессным описаниям. Разборка с ролями, похоже, сейчас самое главное.
Вот фрагмент документации к одной весьма продвинутой программе: "The Guru jumps up and shouts: "Instead of you trying to guess whether it is animal, vegetable, or mineral, the object just tells you!" Yipes!! You have to admit that that's a real powerful idea. ... Microsoft has been a leading proponent of the "role-based" view of objects, and they implement this by using an artifact called an "interface." That is, in fact, one of the most important ideas of what is called COM. The use of interfaces is also common in Microsoft .NET technology. Just remember this: An interface = a role". ... Interfaces are just convenient "places" to group the tightly-bound properties of a role".
Ох, нахлебаемся мы еще этой онтологии-на-ролях по самое не балуйся. И 3D, и 4D онтологии (напомню ссылку на роли в 4D-онтологии -- http://www.matthew-west.org.uk/Documents/RolesFOMI2008.pdf).