Previous Entry Share Next Entry
Программирование для моделирования ЧА (2) UML-моделирование
Кецаль
metanymous wrote in metapractice
http://metapractice.livejournal.com/371985.html

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


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


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

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

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

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

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

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

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



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) как общий термин, покрывающий свойства и операции класса.

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



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 определяет несколько разных форм диаграмм взаимодействия, наиболее общепринятая из которых диаграмма последовательности. Типично, диаграмма последовательности ухватывает поведение по ходу одного сценария. Диаграмма показывает несколько образцов объектов и сообщения, которые передаются между этими объектами в рамках варианта использования.

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



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.


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

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



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.


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

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



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


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

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



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 молчит касательно содержания варианта использования, но всё же предлагает формат диаграмм для их представления [...]. Хотя такая диаграмма иногда полезна, она не обязательна. В своей работе над вариантом использования, не вкладывайте слишком много труда в диаграмму. Вместо этого, сконцентрируйтесь на текстовом содержании варианта использования.

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



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 минут.

BPMN



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

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


Это не так.
В блок-схемах предусмотрено описание параллельного поведения. По крайней мере в действующем стандарте, который ГОСТ-1990 он же ИСО 1985г.

Edited at 2013-06-12 12:34 pm (UTC)

мы передадим эту поправку Фаулеру, при случае :)

Что такое "класс"

Всё же ключевой вопрос остался - что такое у нас "класс" и "объект". Уже отмечали, что диаграммы такого толка нам нужны "от моделистов для моделистов". Но каждый отдельный объект - это что такое, в самом общем плане? Это ИНСТРУМЕНТ какой-то? Или это СУБЪЕКТ?

Наверное, это всё же инструмент, а субъектов мы обозначаем также, как программисты обозначают на диаграммах "пользователей".

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

Хм, вообще в программировании объекты тоже живут не понятно где. То ли на диске, то ли в памяти, то ли передаются по каналам связи и т.д. Так что такая дилемма тоже имеет место. Надо подумать, может и можно один в один перенести будет диаграммы в наше "измерение".

Что такое "класс" есть объект ООЧА

Всё же ключевой вопрос остался - что такое у нас "класс" и "объект". Уже отмечали, что диаграммы такого толка нам нужны "от моделистов для моделистов". Но каждый отдельный объект - это что такое, в самом общем плане? Это ИНСТРУМЕНТ какой-то? Или это СУБЪЕКТ?

Классом в случае юмл-моделирования является любой объект некоей онтологии человеческой активности.

Наверное, это всё же инструмент, а субъектов мы обозначаем также, как программисты обозначают на диаграммах "пользователей".

Это может быть и то и то. Главное есть принципы, по которым составлена Общая Онтология Человеческой Активности ООЧА.

Но дальше у нас встаёт другая проблема - у нас каждый "объект" не понятно где "живёт". Как мы выяснили, "инструмент" может быть: - чисто "материальным" (штука во внешнем мире)

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

- "материализованным", т.е. иметь материальную символическую форму, но при этом "идеальное" содержание (например формула как реальная надпись на листе с внутренним смыслом "в голове")

Форма и содержание коммуникации. Нет проблем.

- "идеальным"-представляемым во внешнем мире поверх реальных объектов
- "идеальным"-внутренним не соотнесённым с реальными объектами


А по мне так никаких абсолютно идеальных объектов заводить не надо.

Хм, вообще в программировании объекты тоже живут не понятно где. То ли на диске, то ли в памяти, то ли передаются по каналам связи и т.д. Так что такая дилемма тоже имеет место. Надо подумать, может и можно один в один перенести будет диаграммы в наше "измерение".

Предварительно, идея переноса объектов в наше измерение выглядит привлекательно.

  • 1
?

Log in

No account? Create an account