BMSTU/02-ipsm-lab-03-report.tex

87 lines
7.6 KiB
TeX
Raw Normal View History

2023-01-27 22:32:16 +03:00
\documentclass[a4paper,fontsize=14bp]{article}
\input{../common-preamble}
\input{../fancy-listings-preamble}
\input{../bmstu-preamble}
\usepackage{tikz-uml}
\usepackage{pgfopts}
\usepackage{pgfkeys}
\usetikzlibrary{positioning, math}
\numerationTop
\begin{document}
\thispagestyle{empty}
\makeBMSTUHeader
% ... работе, номер, тема, предмет, ?а, кто
\makeReportTitle{лабораторной}{3}{Анализ поведения систем и их компонентов}{Методы исследования и моделирования информационных процессов и систем}{а}{А.Р. Кадырбаева}
\newpage
\thispagestyle{empty}
\tableofcontents
\newpage
\pagestyle{fancy}
\section{Цель}
Ознакомление студентов с методами и средствами анализа поведения систем и их компонентов, выраженного при помощи диаграмм UML.
\section{Задание}
В данной лабораторной работе необходимо ознакомиться с основами стандарта fUML, расширяющего возможности UML, а также освоить применение основанных на использовании этого стандарта программных средств, позволяющих производить анализ диаграмм UML. В таблице \hrf{table:task} представлено индивидуальное задание.
\begin{table}[H]
\centering
\begin{tabular}{|c|p{100mm}|p{30mm}|}
\hline
Вариант & Задание & Количество вопросов для верификации \\ [0.5ex]
\hline
11 & Работа копирайтера. Определяем поведение состояний «Выполнение работы», «Оплата работы», «Поиск работы», «Заключение контракта», «Невозможность оплаты заказа», «Невозможность выполнения заказа» & 5 \\ [1ex]
\hline
\end{tabular}
\caption{Задание по варианту}
\label{table:task}
\end{table}
\section{Выполнение работы}
\begin{figure}[h]
\centering
\begin{tikzpicture}[yscale=-1]
\umlstateinitial[x=-4, y=-6, name=initial]
\umlbasicstate[x=-3, name=search, entry=мораль-, exit=мораль+]{Поиск работы}
\umlbasicstate[x=6, y=-3, name=failExec, entry=мораль-, exit=опыт+]{\shortstack{Невозможно\\выполнение}}
\umlbasicstate[x=-3, y=5, name=contract, exit=опыт+, entry=мораль+]{Контракт}
\umlbasicstate[x=-3, y=10, name=exec, exit=опыт+, entry=мораль+]{\shortstack{Выполнение\\работ}}
\umlbasicstate[x=6, y=10, name=pay, exit=мораль+, entry=мораль+]{Оплата работы}
\umlbasicstate[x=-3, y=15, name=failAward, exit=опыт+, entry=мораль-]{\shortstack{Невозможна\\оплата}}
\umltrans[]{initial}{search}
\umlVHtrans[pos=1.5, arg=Недостаток компетенций]{search}{failExec}
\umlVHtrans[arg=Возврат к поиску]{failExec}{search}
\umltrans[pos=0.5, arg=Найдена работа по силам]{search}{contract}
\umltrans[pos=0.5, arg=Приступаем к работе]{contract}{exec}
\umltrans[pos=0.5, arg=Нормальный процесс]{exec}{pay}
\umlVHtrans[arm1=-30mm, pos=1, arg=Попробовать с тем же работодателем]{pay}{contract}
\umlVHtrans[arm1=-20mm, arg=Выйти на рынок]{pay}{search}
\umltrans[pos=0.5, arg=Форс-мажор]{exec}{failAward}
\umlHVHtrans[arm1=-20mm]{failAward}{search}
\umlHVHtrans[arm1=-40mm, pos=0.7, arg=Неудача]{contract}{search}
\end{tikzpicture}
\caption{Диаграмма конечного автомата по заданию}
\label{pic:fsm}
\end{figure}
По заданию необходимо описать диаграмму состояний агента - копирайтера, осуществляющего свою трудовую деятельность. У агента, согласно задания, возможно шесть состояний:
\begin{enumerate}
\item Поиск работы - состояние, в котором агент осуществляет непосредственный просмотр вакансий;
\item Невозможно выполнение - состояние, в котором агент осуществляет повышение квалификации. В него можно попасть только в результате неудачного поиска (недостаточно компетенций), из него можно выйти только в состояние поиска работы;
\item Контракт - заключение контракта с работодателем, сюда можно попасть только после поиска работы или после успешной оплаты предыдущей работы. Выход из состояния возможен в состояние выполнения работ или если стороны не смогли договориться;
\item Выполнение работы - единственное состояние, которое возможно после заключения контракта. В общем случае, в результате выполнения работы происходит переход в состояние оплаты, а в случае возникновения форс-мажорных ситуаций в состояние невозможности оплаты;
\item Оплата работы - состояние в котором возможно оказаться только в результате выполнения работ. Из этого состояния возможно попытаться заключить с работодателем новый контракт или начать новый поиск работы;
\item Невозможна оплата - состояние, возникающее только в силу форс-мажорных ситуаций и может вести только к инициированию нового поиска работы.
\end{enumerate}
Диаграмма конечного автомата по заданию представлена на рисунке \hrf{pic:fsm}.
\section{Выводы}
Диаграммы конечных автоматов UML можно использовать для моделирования поведения класса, подсистемы, пакета или системы целиком. Диаграммы состояний предоставляют наглядный способ моделирования взаимодействия или коммуникации, которые происходят внутри внешних объектов и системы. Эти диаграммы используются для моделирования систем, основанных на событиях. Состояние объекта контролируется и изменяется с помощью события. Диаграммы состояний используются для описания изменения состояний объекта в прикладной системе.
\end{document}