La programación orientada a roles, como forma de programación informática, tiene como objetivo expresar cosas en términos análogos a la comprensión conceptual humana del mundo . Esto debería hacer que los programas sean más fáciles de entender y mantener. [ cita requerida ]
La idea principal de la programación orientada a roles es que los humanos piensan en términos de roles . Esta afirmación suele estar respaldada por ejemplos de relaciones sociales . Por ejemplo, un estudiante que asiste a una clase y el mismo estudiante en una fiesta son la misma persona, pero esa persona desempeña dos roles diferentes. En particular, las interacciones de esta persona con el mundo exterior dependen de su rol actual. Los roles suelen compartir características, por ejemplo, las propiedades intrínsecas de ser una persona. Este intercambio de propiedades a menudo se maneja mediante el mecanismo de delegación .
En la literatura más antigua y en el campo de las bases de datos , parece que se ha tenido poco en cuenta el contexto en el que los roles interactúan entre sí. Este contexto se está estableciendo en los lenguajes de programación orientados a roles y aspectos más nuevos , como Object Teams. Compárese el uso de "rol" como "un conjunto de programas de software (servicios) que permiten a un servidor realizar funciones específicas para usuarios o computadoras en la red" en la jerga de Windows Server . [1]
Muchos investigadores [ cuantifican ] han argumentado las ventajas de los roles en el modelado y la implementación. Los roles permiten que los objetos evolucionen con el tiempo, posibilitan vistas (interfaces) independientes y concurrentes del objeto, explican los diferentes contextos del objeto y separan las preocupaciones . En general, los roles son un elemento natural de la formación de conceptos diaria de los seres humanos. Los roles en los lenguajes de programación permiten que los objetos tengan interfaces cambiantes, como vemos en la vida real : las cosas cambian con el tiempo, se usan de manera diferente en diferentes contextos, etc.
[...] una función de servidor es un conjunto de programas de software (servicios) que permiten a un servidor realizar funciones específicas para usuarios o computadoras en la red.