Задание № 5 "Диаграмма деятельности с плавательными дорожками" - Zato4ka/Laba GitHub Wiki
Коротков А.С.
Диаграмма деятельности - это своеобразная блок-схема, которая описывает последовательность выполнения операций во времени. Их можно использовать для моделирования динамических аспектов поведения системы. Каждое состояние на диаграмме деятельности соответствует выполнению некоторой элементарной операции, а переход в следующее состояние срабатывает только при завершении этой операции в предыдущем состоянии.
В диаграммах деятельности используются пиктограммы "действие", "переход", "выбор" и "линии синхронизации". В языке UML действие изображается в виде прямоугольника с закругленными углами, переходы - в виде направленных стрелок, элементы выбора - в виде ромбов, линии синхронизации - в виде горизонтальных и вертикальных линий.
Состояние действия является специальным случаем состояния с некоторым входным действием и, по крайней мере, одним выходящим из состояния переходом. Когда действие или деятельность в некотором состоянии завершается, поток управления сразу переходит в следующее состояние действия или деятельности. Для описания этого потока используются переходы, показывающие путь из одного состояния действия или деятельности в другое.
Простые последовательные переходы встречаются наиболее часто, но их одних недостаточно для моделирования любого потока управления.
Простые и ветвящиеся последовательные переходы в диаграммах деятельности используются чаще всего. Однако можно встретить и параллельные потоки, и это особенно характерно для моделирования бизнес-процессов. В UML для обозначения разделения и слияния таких параллельных потоков выполнения используются линии синхронизации, которые рисуется в виде жирной вертикальной или горизонтальной линии.
Как строится диаграмма деятельности?
При моделировании течения бизнес-процессов иногда бывает полезно разбить состояния деятельности на диаграммах деятельности на группы. В UML такие группы называются дорожками, поскольку визуально каждая группа отделяется от соседних вертикальной чертой, как плавательные дорожки в бассейне. Каждой присутствующей на диаграмме дорожке присваивается уникальное имя. Каждая дорожка представляет сферу ответственности за часть всей работы, изображенной на диаграмме, и может быть реализована одним или несколькими классами.
Пример
JSON
{
"title": "Производство",
"contents": [
{
"title": "Проектирование",
"Id": "Stage1",
"contents": [
{
"schemeId": "1",
"schemeName": "1",
"author": [
{
"Name": "Тарас Панис",
"Personal code": "1",
"Position": "Designer"
}
],
"assemblyUnits": [
{
"unitId": "1",
"unitName": "Name1"
}
]
}
]
},
{
"title": "Сборка",
"Id": "Stage2",
"depends_on":"Stage1",
"contents": [
{
"schemeId": "1",
"schemeName": "1",
"author": [
{
"Name": "Богдан Коврига",
"Personal code": "2",
"Position": "Engineer"
}
],
"mechanismName": "ToshibaMX500",
"BatchOfDetailsId": "1",
"details": [
{
"DetailId": "1",
"DetailName": "Body",
"Quantity": "1"
},
{
"DetailId": "2",
"DetailName": "Display",
"Quantity": "1"
},
{
"DetailId": "3",
"DetailName": "Camera",
"Quantity": "1"
}
]
}
]
},
{
"title": "Тестирование",
"Id": "Stage3",
"depends_on":"Stage1",
"contents": [
{
"schemeId": "1",
"schemeName": "1",
"author": [
{
"Name": "Николай Селиванов",
"Personal code": "3",
"Position": "Tester"
}
],
"mechanismName": "ToshibaTE9000",
"assembly units": [
{
"unitId": "1",
"unitName": "Name1"
}
],
"phone": [
{
"phoneId": "1",
"phoneName": "Name"
}
]
}
]
}
]
}
JSON-parse Пример javascripta, выводящего все содержимое в одну строку
<script type="text/javascript">
var cart = {
"title": "Проектирование",
"Id": "Stage1",
"contents": [
{
"schemeId": "1",
"schemeName": "1",
"author": [
{
"Name": "Тарас Панис",
"Personal code": "1",
"Position": "Designer"
}
],
"assemblyUnits": [
{
"unitId": "1",
"unitName": "Name1"
}
]
}
]
}
alert ( JSON.stringify( cart ) );
</script>