Skip to content

Задача №1 (Class Diagram)

VarvariucA edited this page Apr 13, 2018 · 42 revisions

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

Постановка задачи: Преобразовать блоки (activities) F1, F2, F3 к виду диаграммы классов UML (с параметрическими методами)

Описание решения

Общее решение состоит в следующей ассоциации элементов диаграммы IDEF0 с элементами диаграммы классов:

  • стрелки механизмов, относящиеся к персоналу, становятся именами классов
  • стрелки механизмов, относящиеся к инструментам, становятся именами атрибутов (свойств) классов
  • имена блоков становятся именами операций (методов) классов
  • имена входных стрелок и/или стрелок механизмов становятся именами параметров операций (методов)
  • имена выходных стрелок становятся именами типов возвращаемых значений операций (методов)

Иллюстрация решения (диаграмма UML)

UML диаграмма

Описание контрольных примеров (JSON)

JSON-код JSON-код для прямоугольников с текстом
"rectangle":
[{"UL":"10", "UR":"210", "DL":"60", "DL":"210", "Tx":"P1_1"},
{"UL":"60", "UR":"210", "DL":"110", "DL":"210", "Tx":""},
{"UL":"110", "UR":"210", "DL":"160", "DL":"210", "Tx":"F1(C1, F3_O1) = F1_O"}
]
}
JS-код
<script>
<!DOCTYPE html>
<html>
<head>
<script>
var p1,p2,p3,p4,x3,x4;
//Функция рисования
function draw(x1,y1,x2,y2) 
{
p1=x1; p2=y1; p3=x2; p4=y2;
var cx = document.getElementById('canvas').getContext('2d').strokeRect(x1,y1,x2,y2);
}
//Функция проверки
function unit_test()
{
x3=p1+p3;
x4=p2+p4;
if (x3==170 && x4==180) 
{alert('Тест пройден');}else 
{alert('Тест не пройден');}
}
</script>
</head>
<body>
<input type="button" onclick="draw(10,20,160,160)" value="Построить"/>
<input type="button" onclick="unit_test()" value="Проверить"/>
<canvas id="canvas" width="800" height="800">
</body>
</html>




//вариант2
var p1,p2,p3,p4;

//Функция рисования
function draw(x1,y1,x2,y2) 
{
p1=x1; p2=y1; p3=x2; p4=y2;
var cx = document.getElementById('canvas').getContext('2d').strokeRect(x1,y1,x2,y2);
}

//Функция проверки
function unit_test()
{
if (p1==10 && p2==20 && p3==160 && p4==160) 
{alert('Тест пройден');}else 
{alert('Тест не пройден');}
}
</script>


Дополнительные материалы

  1. Диаграммы классов в PlantUML
  2. Примеры диаграммы классов
  3. Классификация диаграмм UML в Википедии
  4. Курс по UML на Интуит