役割指向プログラミングは、コンピュータプログラミングの一形態として、人間の世界に対する概念的理解に類似した用語を用いて物事を表現することを目指している。これにより、プログラムの理解と保守が容易になるはずである。
役割指向プログラミングの基本的な考え方は、人間は役割という観点から思考するという点です。この主張は、しばしば社会関係の例によって裏付けられます。例えば、授業に出席している学生と、パーティーに参加している同じ学生は同一人物ですが、その人物は二つの異なる役割を担っています。特に、この人物と外部世界との相互作用は、現在担っている役割に依存します。これらの役割は通常、人間であることの本質的な特性など、共通の特徴を持っています。このような特性の共有は、多くの場合、委譲メカニズムによって処理されます。
従来の文献やデータベースの分野では、役割が互いに相互作用するコンテキストについてはほとんど考慮されてこなかったようです。このようなコンテキストは、Object Teamsなどの新しい役割指向およびアスペクト指向のプログラミング言語で確立されつつあります。Windows Server の用語で「役割」を「サーバーがネットワーク上のユーザーまたはコンピューターに対して特定の機能を実行できるようにするソフトウェア プログラム (サービス) のセット」として使用する例と比較してください。[ 1 ]
多くの研究者が、モデリングと実装における役割の利点を主張してきました。役割によって、オブジェクトは時間とともに進化し、オブジェクトの独立した同時存在可能なビュー(インターフェース)を実現し、オブジェクトのさまざまなコンテキストを明確にし、関心事を分離することができます。一般的に、役割は人間の日常的な概念形成における自然な要素です。プログラミング言語における役割は、現実世界で見られるように、オブジェクトが変化するインターフェースを持つことを可能にします。つまり、物事は時間とともに変化し、さまざまなコンテキストで異なる方法で使用されます。
[...] サーバーの役割とは、サーバーがネットワーク上のユーザーまたはコンピューターに対して特定の機能を実行できるようにするソフトウェア プログラム (サービス) のセットです。