Актерная модель в разработке программного обеспечения
Actor modeling
Актерная модель в разработке ПО: определение, преимущества для анализа требований и понимания потребностей пользователей. Упрощает проектирование сложных систем.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
В информатике, акторное моделирование — это форма моделирования программного обеспечения, ориентированная на программных акторов. Акторное моделирование наиболее часто используется для раннего моделирования требований, что позволяет понять, кто является пользователями и заинтересованными сторонами системы и каковы их интересы и потребности относительно этой системы. Растущая сложность современных систем делает этот подход более целесообразным, чем традиционный, более механистический подход. Рассматривая систему с точки зрения пользователей и их потребностей, легче понять, для чего она предназначена. Этот подход также помогает пользователям сформулировать требования к системе. Акторное моделирование обычно комбинируется с моделированием целей и задач для более глубокого понимания контекста пользователя. Существуют различные языки моделирования, поддерживающие акторное моделирование, например i* и EEML.
In computer science, Actor modeling is a form of software modeling which focuses on software actors. Actor modeling is most prominently used for the early modeling of requirements; through this it becomes possible to understand who the users and stakeholders of a system are and what their interests and needs are regarding that system. The increasing complexity of today's systems makes it more appropriate to take this approach, instead of a traditional, more mechanically focused approach. When thinking along the dimensions of users and their needs, it is easier to comprehend what the system is designed to accomplish. This approach furthermore helps the users to define the requirements for the system. The approach of actor modeling is normally combined with the modeling of goals and tasks to give a better understanding of the situation the user is in. There are different modeling languages that support actor modeling; examples include i* and EEML.
Роли
Роли позволяют представить актора в обезличенном виде. Возможно смоделировать роль и связать ее с актером, который ее исполняет. Если актер, исполняющий роль, прекращает это делать по какой-либо причине, его можно легко заменить другим актером, который с этого момента будет исполнять эту роль; это может быть временная или долгосрочная замена. Кроме того, существующему актеру можно назначить новые и/или другие роли. Преимущество этого подхода заключается в том, что сама модель не требует изменений; необходимо лишь перенастроить связи между актерами и ролями.
Roles allow an impersonalized representation of an actor. It is possible to model a role and connect that role to the actor that is filling that role. If the actor that fills the role stops to do so for whatever reason, it can be easily replaced by another actor that from that point on fills the role; this can be as a temporary replacement or as a long term arrangement. It is furthermore possible to assign new and/or different roles to an already existing actor. The advantage of this is that the model itself doesn't need to be changed; only the connections between the actors and the roles need to be redone.
Ограничения модели актера
Использование акторов снижает вероятность возникновения гонок данных, но не устраняет их полностью. Го́нки данных возможны, если сообщения или базовая логика, с которыми работают объекты-акторы, включают изменяемые общие объекты. Реализация действительно параллельных структур данных – непростая задача. Модель акторов улучшает некоторые аспекты этой проблемы, но не решает её полностью. Возможны взаимоблокировки (дедлоки) в различных ситуациях. Модель акторов реализует передачу сообщений актору, но не предоставляет возможности отправить запрос и получить конкретный статус или ответ на него. Синхронные ответы требуют использования блокирующей логики. Информацию об объектах, обеспечивающих подобное поведение, можно найти в разделе о "futures" (обещаниях).
Use of actors reduces mechanisms for race conditions but does not eliminate them. Data race conditions are possible if the messages or underlying logic touched by the actor objects includes mutable shared objects. Implementation of truly concurrent data structures is non trivial. The actor model improves on some of these issues, but does not solve all of the problems. Deadlocks are possible under a number of situations. The Actor model implements message passing in the direction of the actor, but does not facilitate sending a request and receiving a specific status or a reply to a request. Synchronous replies require some sort of blocking logic. For information on objects which can provide this behavior, look at "futures".