Skip to content

Задача №5 (Activity Diagram)

lizllizl edited this page Apr 17, 2018 · 28 revisions

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

Постановка задачи: Дополнить модель данными для использования диаграммы деятельности (с плавательными дорожками)

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

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

В диаграммах деятельности используются пиктограммы "действие", "переход", "выбор" и "линии синхронизации". В языке 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>