Файл: Автоматизация управления жизненным циклом продукции.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 18.10.2024
Просмотров: 7
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Кафедра безопасности информационных систем
ОТЧЁТ
по лабораторной работе № 5, 7
по дисциплине «Автоматизация управления жизненным циклом продукции»
Выполнили: студенты группы ИБ-81вп
___________/Покладов Д. В./
_____________/Чамата Т. А./
_____________/Суянов С. В./
«__» ___________ 2022г.
Принял: доцент каф. ИСАУ
__________/Олимпиев, А. А./
«__» ___________ 2022г.
САНКТ-ПЕТЕРБУРГ
2022
Провести анализ прецедентов, которые относятся к отдельной операции, происходящей в контексте процессов жизненного цикла изделия, и выделить основные особенности учета информации об изделии при выполнении данной операции. Сформировать системную диаграмму последовательностей для анализируемой операции. Спроектировать и реализовать в документо-ориентированной базе данных электронный паспорт изделия.
-
Решение задачи.
В результате анализа предметной области были выявлены основные процессы и действующие лица. Подробное описание:
-
Загрузку технического задания выполняет заказчик (Проект-менеджер) в автоматизированную систему управления (далее АСУ). Статус документа «В разработке». -
Стороння команда получает запрос на разработку документа (плана графика), по итогу формирования которого, загружает его в АСУ на согласование со статусом «В разработке». -
Со стороны заказчика осуществляется проверка и согласование документа. По итогу рассмотрения статус документа меняется на «согласован» или «не согласован» с комментариями причин и предложений. -
Заказчик запрашивает предоставление промежуточных отчётов в ходе выполнения проекта, обозначенных в согласованном «плане графике». -
Исполнитель подготавливает отчёт и загружает его в АСУ на согласование со статусом «В разработке». -
Со стороны заказчика осуществляется проверка и согласование документа. По итогу рассмотрения статус документа меняется на «согласован» или «не согласован» с комментариями причин и предложений. -
Согласно документу «План график», заказчик запрашивает финальный отчёт. -
Исполнитель подготавливает отчёт и загружает его в АСУ на согласование со статусом «В разработке». -
Со стороны заказчика осуществляется проверка и согласование документа. По итогу рассмотрения статус документа меняется на «согласован» или «не согласован» с комментариями причин и предложений.
На рисунке №1 представлена схема UML-диаграмма последовательностей. Рисунок наглядно отображает функциональную составляющую программы автоматизирования процессов. Описание функций:
-
Проект-менеджер создаёт проект в АСУ загрузитьТехзадание(техзадание) для исполнения сторонней организацией. Далее он же делает запрос планГрафик=запроситьПланГрафик сторонней команде для согласования. -
Сторонняя компания разрабатывает «планГрафик», обозначив в нём промежуточные даты для согласия и предоставления промежуточных отчётов запуская функцию загрузитьПланГрафик(планГрафик). -
Проект-менеджер делает запрос проверкаПланГрафика() согласно предоставленному графику. Проверка отчётов может быть делегирована команде проект-менеджера, но права на смену статуса принадлежат только проект-менеджеру, как лицу, принимающему решение (далее ЛПР). ЛПР запускает функцию загрузитьСтатусПроверки(). -
АСУ запускает функцию уведомитьСменаСтатуса(). -
Проект-менеджер делает запрос выполнитьЭтап(планГрафик, техзадание), что бы получить промежуточные результаты выполненных работ. -
Сторонняя команда в ответ на запрос делает загрузку, используя функцию загрузитьОтчёт(). -
Проект-менеджер, после согласования использует функцию загрузитьСтатусПроверки(). -
АСУ запускает функцию уведомитьСменаСтатуса(). -
По итогу согласования всех промежуточных операций, проект-менеджер делает запрос на согласование итогового отчёта запросОтчёта(). Процедура согласования аналогична промежуточным. В том числе и смена статуса, который делает ЛПР со стороны заказчика. -
Стороння команда загружает отчёт в АСУ с помощью функции загрузитьОтчёт().
Рисунок 1 – UML-диаграмма последовательностей
-
Построение диаграммы классов
Проанализировав все полученные данные, были выделены следующие классы:
-
Компания – юридическое лицо; -
Пользователь – сотрудники компании, с доступом к АСУ; -
Проект – обозначение текущих процессов (объект данных); -
Статус –класс, являющийся моделью программного обеспечения, служит для сокращения системного кода; -
Документ – модель передачи информации по проекту (объект данных).
Рисунок 2 диаграмма классов
Связи классов:
-
как минимум одна компания может иметь n работников, т.е. пользователей; -
пользователь может составить 0 или n документов; -
каждый документ имеет только один статус; -
и множество документов может быть в составе одного проекта.
-
Построение документно-ориентированная база данных
Создание коллекции, в базе данных, по примеру диаграммы классов в соответствии с рисунком 3.
Рисунок 3 коллекция документно-ориентированной базы данных
Рисунок 4 схема коллекции «lab57»
Рисунок 5 класс «MongoHandler»
Выводы: при выполнении лабораторной работы был проведен анализ фрагмента программной архитектуры разрабатываемого изделия, построена диаграмма последовательностей, диаграмма классов. Был приобретен опыт работы с документно-ориентированной базой данных.
-
ЗАДАНИЕ № 7. Разработка макета программы для автоматизации процессов жизненного цикла
Выполненные требования к ИС:
-
функции программы соответствуют техническому заданию, которое было составлено при решении задания 4; -
в программе реализованы экранные формы, которые соответствуют проработанной бизнес-логике в соответствии с заданием (рисунок 7); -
в программе присутствуют классы, которые соответствуют разработанным диаграммам; -
результаты действий пользователя (вводимые данные, установка свойств, переключение состояний и т. п.) сохраняются NoSQL документно-ориентированной базе данных и соответствуют запросам, которые были проработаны в задании 5.
Рисунок 6 управление документами
Ниже представлен код страницы просмотре документов, реализованный с помощью фреймворка Vue (рисунок 6):
Выбрать статус
{{ doc.name }}
{{ doc.project }}
{{ doc.status }}
{{ doc.created_by }}
{{ doc.date }}
Рисунок 7 экранные формы для внесения данных
Код страницы, содержащей форму для создания документа (рисунок 7), представлен ниже:
Рисунок 8 обновление данных
Рисунок 9 выбор статуса
Рисунок 10 выбор статуса
Код веб-сервера, передающий запросы к классу управления базой данных, представлен ниже:
main.py
from asyncio import ensure_future
from sanic import Sanic
from web.routes import setup_routes
from web.plugins import middlewares
from sanic_cors import CORS
class Web:
def __init__(self, app, run_test=False):
super().__init__()
self.sanic = Sanic(name='Lab57')
self.__app = app
self.loop = app.loop
CORS(self.sanic,
resources={r"/api/*": {"origins": "*"}, r"/auth/*": {"origins": "*"}},
automatic_options=True
)
self.sanic.update_config({
"ACCESS_LOG": True,
"FALLBACK_ERROR_FORMAT": "json",
"KEEP_ALIVE": True,
"KEEP_ALIVE_TIMEOUT": 600})
middlewares.setup_middlewares(self.sanic)
setup_routes(self, app)
def start(self):
self._init_web_server()
def _init_web_server(self):
self.server = self.sanic.create_server(
host='0.0.0.0',
port=9999,
return_asyncio_server=True,
debug=False
)
task = ensure_future(self.server)
routes.py
from os import path
from sanic.response import json
def setup_routes(web, app):
sanic = web.sanic
db = app.mongo_handler
@sanic.route("/api/companies", methods=['GET'])
async def handler(req):
data = db.get_company()
for d in data:
del d["_id"]
return json(status=200, body=data)
@sanic.route("/api/documents", methods=['GET'])
async def handler(req):
data = db.get_documents()
for d in data:
del d["_id"]
return json(status=200, body=data)
@sanic.route("/api/documents", methods=['POST'])
async def handler(req):
data = req.json
db.set_document(data)
return json(status=200, body={})
Выводы: при решении задания были получены знания о работе системы управления документно-ориентированными базами данных, приобретены навыки работы в ней на языке программирования Python.