@article{Lee:2002fr, title = {An enhanced role model for alleviating the role-binding anomaly}, address = {New York, NY, USA}, author = {Joon-Sang Lee and Doo-Hwan Bae}, journal = {Softw. Pract. Exper.}, number = {14}, pages = {1317--1344}, publisher = {John Wiley \& Sons, Inc.}, volume = {32}, year = {2002}, biburl = {http://www.bibsonomy.org/bibtex/2b4853d7c4dbac70cfb73f8b1ae856697/kilow}, abstract = {Today, any large object-oriented software system is built using frameworks. Yet, designing frameworks and defining their interaction with clients remains a difficult task. A primary reason is that today's dominant modeling concept, the class, is not well suited to describe the complexity of object collaborations as it emerges in framework design and integration. We use role modeling to overcome the problems and limitations of class-based modeling. Using role models, the design of a framework and its use by clients can be described succinctly and with much better separation of concerns than with classes. Using role objects, frameworks can be integrated into use-contexts that have not been foreseen by their original designers. Original: Roles and role models have received much attention as useful concepts for developing highly reusable and dynamically evolvable systems. Role models belong to the category of collaboration-based development techniques, but most of the existing approaches to role models do not explicitly incorporate the core principle of collaboration-based developments as an essential property of their primary design goals. Consequently, the existing approaches still suffer from a problematic phenomenon that the structural and behavioral constraints defined in a role system can be violated during the role-binding stage. We call such a problematic phenomenon the role-binding anomaly. In order to alleviate the role-binding anomaly, we propose an enhanced role model, in which all role instances and core objects can exist by themselves, namely, they can be developed, executed, and tested independently. Roles and core classes can be bound to each other at the instance level. In addition, the role system describes and encapsulates the behavior for dynamic reconfigurations among role instances. The enhanced role model is designed so as to be meaningful with respect to software engineering principles, rather than dynamic evolution. It also facilitates role model implementation using general programming languages (i.e. not supporting dynamic specialization) such as Java. To illustrate how the proposed role model makes such benefits, we develop a set of Java classes necessary for implementing the enhanced role model in the form of a Java package role, and present a simplified automatic teller machine system as an example application. Copyright 2002 John Wiley & Sons, Ltd. }, issn = {0038-0644}, doi = {http://dx.doi.org/10.1002/spe.483}, date-modified = {2007-11-21 16:23:25 +0100}, rating = {3}, local-url = {../papers/Lee2002fr.pdf}, cites = {Mezini:2000nx,Smaragdakis:1998dq,VanHilst:1996wq}, keywords = {Roles } }