859.86K
Category: programmingprogramming

Прецеденты и классы

1.

UML
Unified Modeling Language
Lenguaje de modelado unificado (исп)
Унифицированный язык моделирования
1

2.

UML 2.5
Диаграмма
Диаграмма
структуры
Диаграмма поведения
Диаграмма объектов
Диаграмма
прецедентов
Диаграмма классов
Диаграмма
деятельности
Диаграмма пакетов
Диаграмма конечного
автомата
Диаграмма
композитной
структуры
Диаграмма
взаимодейтвия
Диаграмма
компонентов
Диаграмма
развертывания
Диаграмма
последовательности
Диаграмма
коммуникации
Диаграмма таймингов
Диаграмма профилей
Диаграмма обзора
взаимодействия
2

3.

UML 2.5
Диаграмма
Диаграмма
структуры
Диаграмма поведения
Диаграмма объектов
Диаграмма
прецедентов
Диаграмма классов
Диаграмма
деятельности
Диаграмма пакетов
Диаграмма конечного
автомата
Диаграмма
композитной
структуры
Диаграмма
взаимодейтвия
Диаграмма
компонентов
Диаграмма
развертывания
Диаграмма
последовательности
Диаграмма
коммуникации
Диаграмма таймингов
Диаграмма профилей
Диаграмма обзора
взаимодействия
3

4.

Диаграмма прецедентов
Use Case Diagram
使用事例 (Shiyō jirei, яп.)
4

5.

Диаграмма прецедентов АС
Автор: Гаврилов А.Г.
Пользователь АС
Автоматизированная система проверочного расчета на изгибную
выносливость для всех конических прямозубых передач
Настройка
персональных
данных
1
1
Пользователь АС
Удаление
пользователей
1
1
1
Редактирование
данных
пользователей
Выход из системы
<<extends>>
1
Просмотр базы данных
пользователя
Ввод данных
Extension points:
добавление
удаление
редактирование
<<include>>
1
1
<<extends>>
Вход в систему
1
0..1
Администратор
Расчет
<<include>>
Инженер проектировщик
<<extends>>
Анализ данных
Добавление
пользователей
Просмотр результатов
инженеров
1
extension points:
Исправление результатов
<<extends>>
0..1
Эксперт
Внесение
исправлений и
замечаний
Точка: Исправление результатов
Условие: Эксп ерт не удовлетворен результ атами и
нажимает кнопку «исправить»
5

6.

uc <Имя диаграммы>
<параметр> <значение>
Автор: Гаврилов А. Г.
Должность: доцент
и.т.д.
6

7.

uc <Имя диаграммы>
Имя системы
*
Прецедент 1
*
1
Актер1
Прецедент 2
1..*
1
1..*
Прецедент 3
Актер2
7

8.

*
0..1
<Имя прецедента>
<Имя актера>
uc Морской бой
Приложение «Морской бой»
1
1
2
1
Создать сервер
1
Подключится к
серверу
2
Игрок
1
Расставить
кораблик
*
Сделать выстрел
8

9.

Базовый прецедент
Включаемый
прецедент
<<include>>
uc Банкомат
Банкомат
1
Снять наличные
1
<<include>>
1
Клиент
Ввести ПИН
1
<<include>>
Проверить баланс
9

10.

uc Еще один пример
Приготовление плова
Наварить рис
<<include>>
1
Узбек
1
Приготовить плов
<<include>>
Нажарить мяса
<<include>>
Принести охапку
дров
10

11.

Базовый прецедент
Расширяющий
прецедент
<<extend>>
uc Видеоплеер
Видеоплеер
Увеличить скорость
воспроизведения
<<extend>>
1
1
Клиент
Воспроизведение
видео
<<extend>>
Замедлить скорость
воспроизведения
<<extend>>
Зациклить
воспроизведение
11

12.

Сохранить пароль
условие :{Пользователь ставит галку на пункте Сохранить пароль }
точка расширения: сохранениеПароля
<<extend>>
Аутентификация
extension points:
сохранениеПароля
сохранениеПользователя
<<extend>>
условие:{Пользователь ставит галку на пункте Запопнить
пользователя }
точка расширения: сохранениеПользователя
Запомнить
пользователя
12

13.

Пользователь системы
Обычный пользователь
Модератор
Администратор
13

14.

1
1
Произвести
оплату
Клиент
Оплатить
наличными
Оплатить картой
14

15.

Диаграмма прецедентов АС
Автор: Гаврилов А.Г.
Пользователь АС
Автоматизированная система проверочного расчета на изгибную
выносливость для всех конических прямозубых передач
Настройка
персональных
данных
1
1
Пользователь АС
Удаление
пользователей
1
1
1
Редактирование
данных
пользователей
Выход из системы
<<extends>>
1
Просмотр базы данных
пользователя
Ввод данных
Extension points:
добавление
удаление
редактирование
<<include>>
1
1
<<extends>>
Вход в систему
1
0..1
Администратор
Расчет
<<include>>
Инженер проектировщик
<<extends>>
Анализ данных
Добавление
пользователей
Просмотр результатов
инженеров
1
extension points:
Исправление результатов
<<extends>>
0..1
Эксперт
Внесение
исправлений и
замечаний
Точка: Исправление результатов
Условие: Эксп ерт не удовлетворен результ атами и
нажимает кнопку «исправить»
15

16.

Диаграмма классов
Class diagram
वर्ग रे खाचित्र (Varga rēkhācitra, хинди)
16

17.

C++
C#
class KvadratnoyeUravnenie
{
public int a;
public int b;
public int c;
private int D()
{
return (b * b - 4 * a * c);
}
public double getX1()
{
return ( -(b + Math.Sqrt(D() ) / 2 / a);
}
class Vector
{
private:
double x;
double y;
public:
Vector(double new_y, double new_x)
{
x = new_x;
y = new_y;
}
Vector Add(Vector v)
{
x = x + v.x;
y = y + v.y;
}
public double getX2()
{
return ( -(b - Math.Sqrt(D()) ) / 2 / a);
}
}
double Length()
{
return sqrt(x*x + y*y);
}
};
17

18.

сd <Имя диаграммы>
<Имя класса>
<Имя класса>
<Имя класса>
<Атрибуты класса>
<Атрибуты класса>
<Операции класса>
18

19.

A
class A
{
public:
int a;
int b;
+a:integer
+b:integer
int sum(int a, int b)
{
return (a + b);
}
+sum(a:integer, b:integer):integer
};
19

20.

Запись атрибута:
[<видимость>] [‘/’] <имя> [‘:’ <тип>] [‘[‘ <кратность> ‘]’] [‘=’ <значение по
умолчанию>] [‘{‘ <модификатор > [‘,’ < модификатор >]* ’}’]
<видимость> ::= ‘+’ | ‘-’ | ‘#’ | ‘~’
< модификатор > ::= readonly | union | subsets <имя атрибута> |
redefines <имя атрибута> | orderd | unordered |
unique | nounique | sequense
+card_id:integer=0{readonly}
+numbers:integer[10]{ordered}
-names:string[*]
-name:string
-surname:string
+/fullname:string
20

21.

Запись операции:
[<видимость>] <имя> ‘(‘ [<список параметров>] ‘)’ [‘:’ [<тип возврата>] [‘[‘
<кратность > ‘]’] [‘{‘ <свойства операции> [‘,’ < свойства операции >]* ‘}’]],
<свойства операции> ::= redefines <имя операции> | query | ordered | unordered
| unique | nonunique | seq
<список параметров>::=<параметр>[“,”параметр]*
<параметр>::=[<направление>]<имя параметра>[‘:’ <тип>]
[‘[‘ <кратность> ‘]’] [‘=’ <значение по умолчанию>]
[‘{‘ <модификатор > [‘,’ < модификатор >]* ’}’]
<направление> ::= in | out | inout | return
+getName():string{query}
+getValuesBiggerThen(in value:integer):integer[*]
+mix(in a:float, in b:float, out c:integer, out d:integer)
21

22.

Создатель треугольников
Треугольник
-сторона:integer[3]
+создатьТреугольник(сторона1:integer,
сторона2:integer,
сторона3:integer,
out создан:boolean,
out треугольник:Треугольник
)
+задатьСтороны(сторона1:integer,
cтрорна2:integer,
cторона3:integer)
:boolean
+расчитатьПлощадь():double
+расчитатьПериметр():integer
22

23.

Лампочка
Человек
-возраст:integer{readonly}
-вес:integer{readonly}
+цвет_глаз:string;
+цвет_волос:string
+мощность:integer{readonly};
-напряжение:integer;
+Узнать_вес():integer;
+Узнать_возраст():integer;
+Подать_напряжение(V:integer);
Плита
+комфорки:Комфорка[4];
+духовка:Духовка;
+Включить_комфорку(номер:integer,
значение:integer);
+Включить_духовку(значение:integer);
Бакалаврский_диплом
-колличество_пролитых_слез:integer;
+Автор:String;
+Тема:String;
+Cжеч();
Значение = 0..100
0 – выкл
100 – макс вкл.
23

24.

Аудитория
Парты
Стулья
Компьютеры
Станкин
ИТС
МТО
ФЭМ
24

25.

Четырехугольник
л
Трапеция
Паралелограмм
Ромб
Прямоугольник
Квадрат
Голова твоей
мамки азззз
25

26.

Класс 1
Класс 2
Класс 1
Класс 2
26

27.

class Man
{
public:
Man
Dog
+name:string
+surname:string
+phone:string
+name:string
+owner:Man
std::string name;
std::string surname;
std::string phone;
};
class Dog
{
public:
Man owner;
std::string name;
};
Man
+name:string
+surname:string
+phone:string
Dog
+owner
+name:string
27

28.

Плита
+комфорки:Комфорка[4];
+духовка:Духовка;
+Включить_комфорку(номер:integer,
значение:integer);
+Включить_духовку(значение:integer);
Плита
+Включить_комфорку(номер:integer,
значение:integer);
+Включить_духовку(значение:integer);
+комфорка[4]
+плита
Комфорка
+плита
+духовка
Духовка
28

29.

Man
+name:string
+surname:string
+phone:string
Dog
+dog
+owner
Man
+name:string
+surname:string
+phone:string
Man
+name:string
+surname:string
+phone:string
+name:string
Dog
+dog
+owner
Man-Dog
+Man owner
+Dog dog
+name:string
Dog
+name:string
+Man owner
29

30.

class Man
{
public:
std::string name;
std::string surname;
std::string phone;
Man
+name:string
+surname:string
+phone:string
Dog
+dogs[10] +name:string
Dog *dogs[10];
};
Man
class Dog
{
public:
std::string name;
};
+name:string
+surname:string
+phone:string
Dog
+dogs[10] +name:string
30

31.

Man
+name:string
+surname:string
+phone:string
Dog
+dogs[10] +name:string
31

32.

32

33.

33

34.

Транспорт
+название:string
+марка:string
+модель:string
Автомобиль
Поезд
+объем двигателя:double
+количество вагонов:integer
34

35.

UML 2.5
Диаграмма
Диаграмма
структуры
Диаграмма поведения
Диаграмма объектов
Диаграмма
прецедентов
Диаграмма классов
Диаграмма
деятельности
Диаграмма пакетов
Диаграмма конечного
автомата
Диаграмма
композитной
структуры
Диаграмма
взаимодейтвия
Диаграмма
компонентов
Диаграмма
развертывания
Диаграмма
последовательности
Диаграмма
коммуникации
Диаграмма таймингов
Диаграмма профилей
Диаграмма обзора
взаимодействия
35

36.

Класс, реализующий интерфейс
Класс1
Интерфейс1
Класс1
Класс2
Класс, использующий интерфейс
<<interface>>
Интерфейс1
Класс2
36

37.

+датчикТемпературы
Система управления
1
<<interface>>
Датчик
1
+датчик влажности
1
1
+получитьЧисловоеЗначение():integer
Датчик температуры
Датчик
Датчик влажности
Датчик влажности
Система управления
+датчик влажности
Датчик
Датчик температуры
+датчик температуры
37

38.

+/подразделение
{union,readonly}
+/сотрудник
{union}
Подразделение
Рабочий
1
+/цех
{subsets подразделение}
1
Цех
*
+/рабочий цеха
{union, subsets сотрудник}
*
+слесарь
{subsets рабочий цеха}
0..*
Работник цеха
+начальник
{subsets рабочий цеха}
0..1
38

39.

https://www.omg.org/spec/UML/2.5.1/PDF
(OMG Unified Modeling Language (OMG UML) Version 2.5.1)
(на момент 25.03.2022)
39

40.

https://www.omg.org/spec/UML/2.5.1/PDF
(OMG Unified Modeling Language (OMG UML) Version 2.5.1)
(на момент 25.03.2022)
40

41.

41

42.

uc Калькулятор
Калькулятор
Сложение
*
Ввод цифр 0-9
1
Вычитание
1
Выполнение
математических действий
*
0..1
Точки расширения:
cохранение;
Пользователь
Умножение
Деление
<<extend>>
*
Точка расширения: cохранение
Условие: Нажата клавиша M
Запомнить
результат
Использование
сохраненного
результата
42

43.

cd Система упралвения ЖД
<<enum>>
vag_type
Крытый
Изотермический
ПОлувагон
Вагон
1
+номер:int
+модель:string
+/номер_в_составе:int
1 +следующий
1
1
+предыдущий
Локомотив
Грузовой
+Мощность
+локомотив
Пассажирский
+Грузоподъёмность:int
+Макс_объем:string
+Тип:vag_type
1
+грузовой_вагон
1
*
+Кол-во_мест:int
+пассажирский_вагон
1
*
1
Состав
+номер:int
+состав
*
<<datatype>>
GPS
+Долгота:float
+Широта:float
Остановка
1
1
+координаты
+название:string
+Номер
Маршрут
*
+остановка
1
+маршрут
+Номер:int
+Название:int
1
+маршрут
43

44.

cd Библиотека МГТУ СТАНКИН
<<enum>>
Тип
+тип
+книга[1..*]
Книга
Методичка
Научн.литра
Худ. Лит-ра
Диссертация
Автореферат
Журнал
Библиотека
+клиент[1..*]
+читатель
Сотрудник
ППС
+должность:string
+ФИО
Автор
+автор[1..*]
Обучающийся
+группа:string
+ФИО:string
44

45.

Официальная документация по UML:
http://www.omg.org/spec/UML/
Хороший ресурс по UML:
http://uml-diagrams.org
Visual paradigm:
https://online.visual-paradigm.com/ru/diagrams/features/uml-tool/
Software Ideas Modeler:
https://www.softwareideas.net/
Star UML:
https://staruml.io/
Draw.IO:
https://www.draw.io/
Буч Г., Рамбо Дж., Якобсон И.
Введение в UML от создателей языка (2е изд.)
45

46.

47.

сd Калькулятор
Дисплей
+отображаемое_число:Integer;
+отображаемый_символ:Integer;
Сложение
+дисплей
+память
Ячейка памяти
+число:integer
Умножение
Прошивка
<<interface>>
Операция
+a:integer;
+b:integer;
+символ:char
Деление
+операция
<<interface>>
Кнопка
+Кнопка_равно
+Кнопка_сохранить
+Кнопка_с_цифрой[10]
+Кнопка с операцией[4]
+Нажатие();
Вычитание
Кнопка с математической
операцией
Кнопка «равно»
Кнопка
«сохранить»
Кнопка с
цифрой
+цифра:integer
47
English     Русский Rules