Previous Entry Share Next Entry
Программирование для моделирования ЧА (1) Разбираемся с UML
исполнитель (пианино)
eugzol wrote in metapractice
Из Оракула: http://metapractice.livejournal.com/368091.html?thread=9616091

В этой теме будем пытаться переложить технологии, методологии, различные теории и практики программирования для моделирования человеческих активностей.

В этом проходе попытаемся разобраться с UML.


  • 1
Мы можем на UML расписать:

--технику?
--метамоделирование?
--упражнение?
--м.б. даже модель?

...в конце концов, я утверждал, что модель есть несколько описаний. Примерно шесть.

Это один вариант. Другой вариант - попробовать чисто по формальному описанию диаграмм прикинуть, какие генерализации даёт:
- использование их по-отдельности
- использование их в комплексе

Ну, тогда лучше для начала разобрать/сопоставить какие диаграммы UML примерно чему в ЧА могут соответствовать.

Типы диаграмм



(Картинки и цитаты из книги Фаулера)

Слева направо, сверху вниз:

Диаграмма: Структурная диаграмма и Диаграмма поведения

Структурная диаграмма: Диаграмма классов, Компонентная диаграмма, Композитная диаграмма структуры, Диаграмма развёртывания, Диаграмма объектов, Диаграмма пакетов

Диаграмма поведения: Диаграмма активности, Диаграмма варианта использования, Диаграмма автомата состояний, Диаграмма взаимодействия

Диаграмма взимодействия: Диаграмма последовательности, Диаграмма коммуникации, Обзорная диаграмма взаимодействия, Временнáя диаграмма

Edited at 2013-04-09 03:03 pm (UTC)

Диаграмма классов



A class diagram describes the types of objects in the system and the various kinds of static
relationships that exist among them. Class diagrams also show the properties and operations of a
class and the constraints that apply to the way objects are connected. The UML uses the term
feature as a general term that covers properties and operations of a class.


Диаграмма классов описывает типы объектов в системе и различные виды статических отношений, которые между ними существуют. Диаграмма классов также показывает свойства и операции классов и ограничения, которые применимы к связям между объектами. UML использует термин характеристика (feature) как общий термин, покрывающий свойства и операции класса.

Edited at 2013-04-09 03:03 pm (UTC)

ДИАГРАММА КЛАССОВ


A class diagram describes the types of objects in the system and the various kinds of static relationships that exist among them. Class diagrams also show the properties and operations of a class and the constraints that apply to the way objects are connected. The UML uses the term feature as a general term that covers properties and operations of a class.

Диаграмма классов описывает типы объектов в системе и различные виды статических отношений, которые между ними существуют. Диаграмма классов также показывает свойства и операции классов и ограничения, которые применимы к связям между объектами. UML использует термин характеристика (feature) как общий термин, покрывающий свойства и операции класса.


Как я понимаю, в диаграмме классов мы должны описать:

-- онтологию наличествующих у нас в конкретном кейсе «штуковин»
--расписать через «характеристики» (а) что эти штуковины ПОСТОЯННО ДЕЛАЮТ (б) как эти штуковины ПОСТОЯННО ВЗАИМОДЕЙСТВУЮ МЕЖДУ СОБОЙ.

…так?

(1) Штуковины.

Субъект. Оператор. Состояния субъекта. Экспрессия состояний субъекта. Экспрессия оператора. Интерфейсы состояний субъекта. Интерфейсы экспрессии оператора. Алгоритм якорения. Якоря. Раппорт. Биологическая обратная связь – БОС. Ресурсы/Нересурсы. Сигналы.

(2) Постоянные характеристики.

Субъект – Испытывает состояния. Экспрессирует состояния на интерфейсах состояний.
Оператор – Реализует алгоритм интеграции якорей. Реализует процесс раппорта. Заполняет интерфейсы экспрессии оператора.
Состояния субъекта – четырех типов: ресурсные, нересурсные, нейтральные, иные.
Экспрессия состояний субъекта – четырех типов: ресурсная, нересурсная, нейтральная, иная.
Экспрессия оператора – соответствует шагам алгоритма якорения.
Интерфейсы состояний субъекта – Ресурсные, Нересурсные, Вербальные, Невербальные.
Интерфейсы экспрессии оператора – Вербальные, Невербальные, Алгоритмические якорения, Раппорта, БОС.
Алгоритм якорения – Описание алгоритма, Алгоритм на интерфейсе оператора. Алгоритм на интерфейсе субъекта. БОС-компонента алгоритма. Раппорт-компонента алгоритма.
Якоря – Два якоря, входящие в алгоритм интеграции якорей. Дополнительные якоря (а) раппорта (бос) и т.п.
Раппорт – Вербальный, Невербальный, Сознательный, Подсознательный, Декодерный, Языкоидный, Буквалисткий и т.п.
Биологическая обратная связь – БОС – сигналы БОС. Параметры сигналов БОС.
Ресурсы/Нересурсы – в виде Описаний, в виде Сигналов, в виде Интерфейсов.
Сигналы – Вербальные, Невербальные, Сознательные, Бессознательные, Ресурсные, Нересурсные, Иные и т.п.

(2) Характеристики, связывающие классы.


Диаграмма последовательности



Interaction diagrams describe how groups of objects collaborate in some behavior. The UML
defines several forms of interaction diagram, of which the most common is the sequence diagram.
Typically, a sequence diagram captures the behavior of a single scenario. The diagram shows a
number of example objects and the messages that are passed between these objects within the use
case.


Диаграммы взаимодействия описывают, как группы объектов сотрудничают по ходу некоего поведения. UML определяет несколько разных форм диаграмм взаимодействия, наиболее общепринятая из которых диаграмма последовательности. Типично, диаграмма последовательности ухватывает поведение по ходу одного сценария. Диаграмма показывает несколько образцов объектов и сообщения, которые передаются между этими объектами в рамках варианта использования.

Edited at 2013-04-09 03:03 pm (UTC)

Диаграмма объектов



An object diagram is a snapshot of the objects in a system at a point in time. Because it shows
instances rather than classes, an object diagram is often called an instance diagram.


Диаграмма объектов является снимком объектов в системе в заданный момент времени. Поскольку она показывает экземпляры, а не классы, диаграмму объектов часто называют диаграммой экземпляров.

Edited at 2013-04-09 03:03 pm (UTC)

Диаграмма пакетов



A package is a grouping construct that allows you to take any construct in the UML and group its
elements together into higher-level units. Its most common use is to group classes, and that's the
way I'm describing it here, but remember that you can use packages for every other bit of the UML
as well.


Пакет это группирующая конструкция, которая позволяет вам взять любую конструкцию UML и сгруппировать её элементы вместе в элементы более высокого уровня. Его наиболее частое использование — для группировки классов, и именно в таком ключе я описываю его здесь, но помните что вы также можете использовать пакеты для любого другого кусочка UML.



A package diagram shows packages and their dependencies. [...] If you have packages for presentation and domain, you have a dependency
from the presentation package to the domain package if any class in the presentation package has a
dependency to any class in the domain package. In this way, interpackage dependencies summarize
the dependencies between their contents.


Диаграмма пакетов показывает пакеты и их зависимости. [...] Если у вас есть пакеты для представления и для предметной области, у вас есть зависимость от пакета представления к пакету предметной области, если какой бы то ни было класс в пакете представления имеет зависимость к какому бы то ни было классу в пакете предметной области. В таком ключе, взаимозависимость пакетов резюмирует зависимости между их содержимым.

Edited at 2013-04-09 03:04 pm (UTC)

Диаграмма развёртывания



Deployment diagrams show a system's physical layout, revealing which pieces of software run on
what pieces of hardware.


Диаграммы развертывания показывают физическую компоновку системы, раскрывая какие части программного обеспечения исполняются на каких частях аппаратного.

Edited at 2013-04-09 03:04 pm (UTC)

Диаграмма варианта использования



As I said earlier, the UML is silent on the content of a use case but does provide a diagram format
for showing them [...]. Although the diagram is sometimes useful, it isn't mandatory. In
your use case work, don't put too much effort into the diagram. Instead, concentrate on the textual
content of the use cases.


Как я сказал раньше, UML молчит касательно содержания варианта использования, но всё же предлагает формат диаграмм для их представления [...]. Хотя такая диаграмма иногда полезна, она не обязательна. В своей работе над вариантом использования, не вкладывайте слишком много труда в диаграмму. Вместо этого, сконцентрируйтесь на текстовом содержании варианта использования.

Edited at 2013-04-09 03:04 pm (UTC)

Диаграмма автомата состояний



State machine diagrams are a familiar technique to describe the behavior of a system. Various
forms of state diagrams have been around since the 1960s and the earliest object-oriented
techniques adopted them to show behavior. In object-oriented approaches, you draw a state
machine diagram for a single class to show the lifetime behavior of a single object.


Диаграммы автомата состояний являются привычной техникой описания поведения системы. Различные формы диаграмм состояний имели место примерно с 1960-х и первые объектно-ориентированные техники заимствовали их для иллюстрации поведения. В объектно-ориентированном подходе, вы рисуете диаграмму автомата состояний для отдельного класса, чтобы показать жизненный цикл поведения отдельного объекта.

Диаграмма активности



Activity diagrams are a technique to describe procedural logic, business process, and work flow. In
many ways, they play a role similar to flowcharts, but the principal difference between them and
flowchart notation is that they support parallel behavior.


Диаграммы активности являются техникой для описания процедурной логики, бизнес-процессов, производственных процессов. Во многих аспектах они играют роль, близкую к блок-схемам, но принципиальная разница между ними и блок-схемами заключается в поддержке параллельного поведения.

Диаграмма коммуникации



Communication diagrams, a kind of interaction diagram, emphasize the data links between the
various participants in the interaction. Instead of drawing each participant as a lifeline and showing
the sequence of messages by vertical direction as the sequence diagrams does, the communication
diagram allows free placement of participants, allows you to draw links to show how the participants
connect, and use numbering to show the sequence of messages.


Диаграммы коммуникации, разновидность диаграм взаимодействия, подчёркивают во взаимодействии каналы передачи данных между разными участниками. Вместо того, чтобы изображать каждого участника как линию жизненного цикла и показывать последовательность сообщений упорядочиванием вдоль вертикали, как делает диаграмма последовательности, диаграмма коммуникации дозволяет свободное расположение участников, позволяя вам изображать связи для того, чтобы показать как участники соединяются, и использовать нумерацию, чтобы показать последовательность сообщений.

Композитная диаграмма структуры



One of the most significant new features in UML 2 is the ability to hierarchically decompose a class
into an internal structure. This allows you to take a complex object and break it down into parts.


Одна из наиболее значительных новых возможностей в UML 2 — возможность иерархически раскладывать класс на составляющую его внутреннюю структуру. Это позволяет вам взять сложный объект и разбить его на части.

Диаграмма компонентов



Other than the icon, components don't introduce any notation that we haven't already seen.
Components are connected through implemented and required interfaces, often using the ball-and-
socket notation (page 71) just as for class diagrams. You can also decompose components by using
composite structure diagrams.


Компоненты не вводят никаких новых обозначений к тем, что мы уже видели, кроме как иконку. Компоненты соединяются через реализованные и требуемые интерфейсы, часто используя знак "шарнира" (стр. 71), в точности как диаграммы классов. Вы также можете разложить компоненты на составные части, используя копозитную диаграмму структуры.

Диаграмма сотрудничества



Collaborations have been around since UML 1, but I admit I've hardly used them, even in my
patterns writing. Collaborations do provide a way to group chunks of interaction behavior when roles
are played by different classes. In practice, however, I've not found that they've been a compelling
diagram type.


Диаграммы сотрудничества существовали со времён UML 1, но, признаться, я их редко использовал, даже в моих описаниях паттернов. Диаграммы сотрудничества действительно дают способ сгруппировать фрагменты поведения по взаимодействию, когда роли разыгрываются разными классами. На практике, однако, я не обнаружил чтобы они были притягательным типом диаграмм.

Обзорная диаграмма взаимодействия



Interaction overview diagrams are a grafting together of activity diagrams and sequence diagrams.
You can think of interaction overview diagrams either as activity diagrams in which the activities are
replaced by little sequence diagrams, or as a sequence diagram broken up with activity diagram
notation used to show control flow. Either way, they make a bit of an odd mixture.


Обзорные диаграммы взаимодействия являются прививкой диаграмм активности к диаграммам последовательности. Вы можете думать об обзорной диаграмме взаимодействия либо как о диаграмме активности, в которой активности заменены маленькими диаграммами последовательности, либо как о диаграмме последовательности, разбитой разметкой диаграммы активности, используемой чтобы показать поток управления. В любом случае, они представляют собой немного странную смесь.

Временная диаграмма



Timing diagrams are another form of interaction diagram, where the focus is on timing constraints:
either for a single object or, more usefully, for a bunch of objects. Let's take a simple scenario based
on the pump and hotplate for a coffee pot. Let's imagine a rule that says that at least 10 seconds
must pass between the pump coming on and the hotplate coming on. When the water reservoir
becomes empty, the pump switches off, and the hotplate cannot stay on for more than 15 minutes
more.


Временны́е диаграммы являются иной формой диаграмм взаимодействия, фокусирующейся на временных ограничениях: либо для отдельного объекта, либо, что более полезно, для кучи объектов. Возьмём простой сценарий, включающий насос и нагревательный элемент кофемашины. Положим, правило говорит, что по меньшей мере 10 секунд должны пройти между включением насоса и включением нагревательного элемента. Когда водный резервуар опустошается, насос выключается, и нагревательный элемент не может оставаться включенным более чем ещё на 15 минут.

Edited at 2013-04-09 03:51 pm (UTC)



Основная цель BPMN — создание стандартного набора условных обозначений, понятных всем бизнес-пользователям. Бизнес-пользователи включают в себя бизнес-аналитиков, создающих и улучшающих процессы, технических разработчиков, ответственных за реализацию процессов и менеджеров, следящих за процессами и управляющих ими. Следовательно, BPMN призвана служить связующим звеном между фазой дизайна бизнес-процесса и фазой его реализации.
http://ru.wikipedia.org/wiki/BPMN

Первичный феномен = дирижёр

Терминология BPMN:

(1) Надпись сверху "Покупатель" и слева "Продавец" озаглавливает так называемый «pool» (пул). Пул покупателя как он тут есть называется свёрнутым — ну то есть просто не изображён на данной диаграмме кроме как заголовками и входящими/исходящими стрелочками путей сообщений (пунктирные). Потому что это избыточная информации, либо просто недоступная/неизвестная.
(2) Надписи "менеджер..." и "сотрудник..." и соответствующие разделительные линии обозначают «lanes» (линии, трассы). Обычно принято под отдельную линию выделять отдельную роль (человека/сотрудника), так здесь и сделано.
(3) Пунктирные линии, как уже было сказано, обозначают потоки сообщений. Значок белого конвертика в кружочке означает "ожидать, пока придёт сообщение". Значок чёрного конвертика в кружочке означает "отправить сообщение". Потоки сообщений связывают на диаграмме место отправки сообщения с соответствующим ему местом приёма сообщений.
(4) Текст в прямоугольниках — основной элемент — задачи. Задачи выполняются в рамках одной и только одной линии. Если задача на деле совместная/коллективная, принято её обозначать на линии ответственного за её исход сотрудника.
(5) Сплошные стрелки — пути потоков работ. Обозначают непосредственный безусловный переход к следующей задаче по завершению предыдущей. Сплошная стрелка может быть (по правилам нотации BPMN) только в рамках одного пула!

Говорят, что отдельным пулом управляет «ДИРИЖЁР».

Это некая абстрактная сущность. Существование дирижёра обосновывает запрет на соединение сплошной стрелкой задач в разных пулах. В данном примере "продавец" (заглавие одного из пулов, а значит фактически имя "дирижёра") не может непосредственно управлять "покупателем" (поэтому покупатель вынесен в отдельный пул, а не отдельную линию). А может лишь посылать и реагировать на сообщения.

С другой стороны, задачи с разных линий (задачи разных людей) вроде "Сформировать предложение" и "Рассмотреть предложение" соединены сплошной стрелкой, а не циклами/логикой обмена сообщений.

Это показывает, что переход от одной задачи к другой координируется скорее не каким-то отдельным сотрудником, А ТЕМ САМЫМ ДИРИЖЁРОМ.

На деле роль дирижёра может выполнять специальный софт, в который загружается подобная диаграмма - софт будет отслеживать выполнение задачи одним сотрудником и скидывать соответствующую следующую задачу в ящик задач другого сотрудника, и т.д.

Но даже если такой софт не используется, сам процесс разработки и демонстрации BPMN-диаграммы как раз и имеет своим главным действием выработку В ГОЛОВЕ сотрудников этой РОЛИ ДИРИЖЁРА! И сами процессы уже из-за этого будут меняться, упрощаясь (избавляясь по меньшей мере от лишних циклов взаимных перепроверок и исправления чужих ошибок).

offtopic: разметка текстов с

Нашёл интересное приближение к удобному средству многослойной аннотации текстов:
http://brat.nlplab.org/introduction.html
Несколько примеров:
http://brat.nlplab.org/examples.html

Re: offtopic: разметка текстов с

Ха, прикольно, спасибо :)

Re: offtopic: разметка текстов с

Не получилось его запустить локально.... Жалко.

  • 1
?

Log in

No account? Create an account