Задание № 5 "Диаграмма деятельности с плавательными дорожками" - Zato4ka/Laba GitHub Wiki

Разработчики

Коротков А.С.

Что такое диаграмма деятельности?

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

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

Состояние действия является специальным случаем состояния с некоторым входным действием и, по крайней мере, одним выходящим из состояния переходом. Когда действие или деятельность в некотором состоянии завершается, поток управления сразу переходит в следующее состояние действия или деятельности. Для описания этого потока используются переходы, показывающие путь из одного состояния действия или деятельности в другое.

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

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

Как строится диаграмма деятельности?

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

Пример

JSON

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>
⚠️ **GitHub.com Fallback** ⚠️