|
@@ -1,85 +1,158 @@
|
|
|
-# Задание на экзамен по ПМ.05
|
|
|
|
|
|
|
+# Задание на экзамен по ПМ.05 (вариант 7 ДЭ2021)
|
|
|
|
|
|
|
|
## Описание предметной области
|
|
## Описание предметной области
|
|
|
|
|
|
|
|
-Вашей задачей является разработка информационной системы для медицинской лаборатории № 1 города Йошкар-Олы.
|
|
|
|
|
|
|
+Вашей задачей является разработка системы для производственной компании, которая
|
|
|
|
|
+ежедневно выпускает продукцию в большом объеме, а также реализует ее агентам, которые в
|
|
|
|
|
+дальнейшем продают эти товары конечным потребителям.
|
|
|
|
|
|
|
|
-Медицинская лаборатория № 1 работает на прием биоматериала из поликлиник города, проводит специализированные исследования, ведет базу данных исследований.
|
|
|
|
|
|
|
+### Основное задание на разработку
|
|
|
|
|
|
|
|
-Порядок работы лаборатории: на каждую единицу принятого **биоматериала** создается **заказ**, который может содержать в себе **услуги** (одну или несколько) – исследования биоматериала. У одного **пациента** может быть несколько заказов.
|
|
|
|
|
|
|
+Наша компания “Глазки-save” занимается производством защитных очков для различных сфер
|
|
|
|
|
+использования. Мы реализуем продукцию не напрямую покупателям, а работаем с агентами,
|
|
|
|
|
+которые уже впоследствии продают нашу продукцию конечному потребителю. Для удобного
|
|
|
|
|
+взаимодействия с агентами и контроля их работы нам требуется система, позволяющая
|
|
|
|
|
+аккумулировать всю информацию по агентам.
|
|
|
|
|
+Вам предстоит разработать подсистему для работы с агентами нашей компании, которая должна
|
|
|
|
|
+включать в себя следующий функционал:
|
|
|
|
|
+* просмотр списка агентов,
|
|
|
|
|
+* добавление/удаление/редактирование данных об агенте,
|
|
|
|
|
+* управление историей реализации продукции агентом.
|
|
|
|
|
|
|
|
-**Обеспечьте хранение в базе данных:**
|
|
|
|
|
|
|
+### Название приложения
|
|
|
|
|
|
|
|
-* биоматериалы, принятые от поликлиник (пациент, уникальный номер материала, дата принятия)
|
|
|
|
|
-файл: `blood.xml`
|
|
|
|
|
|
|
+Используйте соответствующие названия для ваших приложений и файлов. Так, например, наименование настольного приложения должно обязательно включать название компании-заказчика.
|
|
|
|
|
|
|
|
-* услуги лаборатории (наименование, стоимость, код услуги, срок выполнения);
|
|
|
|
|
-файл: `services.csv`
|
|
|
|
|
|
|
+### Руководство по стилю
|
|
|
|
|
|
|
|
-* данные пациентов (логин, пароль, ФИО, дата рождения, серия и номер паспорта, телефон, e-mail);
|
|
|
|
|
-файл: `patients.xml`
|
|
|
|
|
|
|
+Визуальные компоненты должны соответствовать руководству по стилю, предоставленному в качестве ресурсов к заданию в соответствующем файле. Обеспечьте соблюдение требований
|
|
|
|
|
+всех компонентов в следующих областях:
|
|
|
|
|
+* цветовая схема,
|
|
|
|
|
+* размещение логотипа,
|
|
|
|
|
+* использование шрифтов,
|
|
|
|
|
+* установка иконки приложения.
|
|
|
|
|
|
|
|
-* заказ (дата создания, услуги которые входят в заказ, статус заказа, статус услуги в заказе, время выполнения заказа (в днях))
|
|
|
|
|
|
|
+### Обратная связь с пользователем
|
|
|
|
|
|
|
|
-* данные лаборантов (логин, пароль, ФИО, последняя дата и время входа, набор услуг, которые он может оказывать)
|
|
|
|
|
|
|
+Уведомляйте пользователя о совершаемых им ошибках или о запрещенных в рамках задания действиях, запрашивайте подтверждение перед удалением, предупреждайте о неотвратимых
|
|
|
|
|
+операциях, информируйте об отсутствии результатов поиска и т.п. Окна сообщений соответствующих типов (например, ошибка, предупреждение, информация) должны
|
|
|
|
|
+отображаться с соответствующим заголовком и пиктограммой. Текст сообщения должен быть полезным и информативным, содержать полную информацию о совершенных ошибках
|
|
|
|
|
+пользователя и порядок действий для их исправления. Также можно использовать визуальные подсказки для пользователя при вводе данных.
|
|
|
|
|
|
|
|
-Разработанная вами база данных должна быть в **3 НФ**.
|
|
|
|
|
|
|
+### Обработка ошибок
|
|
|
|
|
|
|
|
-## Задание №1, Моделирование системы
|
|
|
|
|
|
|
+Не позволяйте пользователю вводить некорректные значения в текстовые поля сущностей. Например, в случае несоответствия типа данных или размера поля введенному значению.
|
|
|
|
|
|
|
|
-Разработайте диаграмму вариантов использования информационной системы лаборатории № 1. Определите основных актеров, варианты их использования и типы взаимодействия.
|
|
|
|
|
|
|
+Оповестите пользователя о совершенной им ошибке.
|
|
|
|
|
+Обратите внимание на использование абсолютных и относительных путей к изображениям. Приложение должно корректно работать в том числе и при перемещении папки с исполняемым файлом.
|
|
|
|
|
|
|
|
-Формат представления диаграммы: PDF.
|
|
|
|
|
|
|
+При возникновении непредвиденной ошибки приложение не должно аварийно завершать работу.
|
|
|
|
|
|
|
|
-## Задание №2, ERD
|
|
|
|
|
|
|
+### Предоставление результатов
|
|
|
|
|
|
|
|
->Посмотреть что будет на демо-экзамене, может уберем этот пункт
|
|
|
|
|
|
|
+Все практические результаты должны быть переданы заказчику путем загрузки файлов на предоставленный вам репозиторий системы контроля версий git. Практическими результатами
|
|
|
|
|
+являются
|
|
|
|
|
+* исходный код приложения (в виде коммита текущей версии проекта, но не архивом),
|
|
|
|
|
+* исполняемые файлы,
|
|
|
|
|
+* прочие графические/текстовые файлы.
|
|
|
|
|
|
|
|
-Создайте подробную ERD для предметной области.
|
|
|
|
|
|
|
+Результаты работы каждой сессии должны быть загружены в отдельный репозиторий с названием «SessionX» (X – номер сессии).
|
|
|
|
|
|
|
|
-К разработанной диаграмме создайте словарь данных (пример словаря данных в папке с ресурсами).
|
|
|
|
|
|
|
+Для оценки работы будет учитываться только содержимое репозитория. При оценке рассматриваются заметки только в электронном виде (`readme.md`). Рукописные примечания не
|
|
|
|
|
+будут использоваться для оценки.
|
|
|
|
|
|
|
|
-## Задание №3, Работа с БД
|
|
|
|
|
|
|
+## Сессия 1
|
|
|
|
|
|
|
|
-<!-- 1 час -->
|
|
|
|
|
|
|
+### Проектирование требований
|
|
|
|
|
|
|
|
-Создайте таблицы **основных сущностей**, атрибуты, отношения и необходимые ограничения. После создания базы данных требуется импортировать предоставленные данные. Возможно, вам понадобится отформатировать данные, прежде чем загрузить их в таблицы, которые вы только что создали. В любом случае **созданные таблицы должны содержать начальные тестовые данные**.
|
|
|
|
|
|
|
+Для согласования процесса разработки с заказчиком Вам необходимо ознакомиться с описанием предметной области и сделать диаграмму прецедентов (Use Case) для основных пользователей системы.
|
|
|
|
|
|
|
|
-## Задание №4, Программирование
|
|
|
|
|
|
|
+Сохраните файл с диаграммой в формате PDF, используя в качестве названия следующий шаблон:
|
|
|
|
|
+UseCase_XX, где XX - номер вашего рабочего места.
|
|
|
|
|
|
|
|
-При запуске приложения окно входа – первое, что видит пользователь. На ней пользователю предлагается ввести свой логин и пароль. Только после удачной авторизации пользователь получает доступ к остальным модулям системы.
|
|
|
|
|
|
|
+### Спецификации к UseCase
|
|
|
|
|
|
|
|
-При вводе пароль должен быть скрыт маской ввода, но так же должна быть реализована возможность просмотра введенного пароля.
|
|
|
|
|
|
|
+Создайте спецификации к 3 самым важным прецедентам предметной области по вашему мнению. Не забудьте указать в каждой спецификации название прецедента, актера, цель выполнения прецедента, предусловия, главную последовательность по шагам, альтернативные последовательности и постусловия.
|
|
|
|
|
|
|
|
-При входе система выводит фото пользователя, фамилию и имя пользователя, его роль.
|
|
|
|
|
|
|
+### Восстановление базы данных из скрипта
|
|
|
|
|
|
|
|
-После авторизации пользователь получает доступ к нужному функционалу:
|
|
|
|
|
|
|
+Для восстановления таблиц в созданную базы данных воспользуйтесь предоставленным скриптом (`ms.sql`). В процессе разработки приложения Вы можете изменять
|
|
|
|
|
+базу данных на свое усмотрение.
|
|
|
|
|
|
|
|
-* лаборант может принять биоматериал, сформировать заказ;
|
|
|
|
|
-* пациент может посмотреть список своих заказов и список услуг лаборатории.
|
|
|
|
|
|
|
+### Импорт данных
|
|
|
|
|
|
|
|
-Реализуйте необходимые интерфейсы для всех пользователей системы. После входа в любую учетную запись должна быть реализована возможность выхода на главный экран – окно входа.
|
|
|
|
|
|
|
+Заказчик системы предоставил файлы с данными (с пометкой import в ресурсах) для переноса в новую систему. Подготовьте данные файлов для импорта и загрузите в разработанную базу данных.
|
|
|
|
|
|
|
|
-### Прием биоматериала и формирование заказа
|
|
|
|
|
|
|
+## Сессия 2
|
|
|
|
|
|
|
|
-Лаборант получает от курьера биоматериал из поликлиник города. Каждый биоматериал приходит с листом сопровождения.
|
|
|
|
|
|
|
+### Разработка desktop-приложений
|
|
|
|
|
|
|
|
-При приеме биоматериала лаборант формирует заказ. В данном случае заказ - это занесение в базу данных кода биоматериала и перечень услуг (далее - исследований)
|
|
|
|
|
|
|
+#### Список агентов
|
|
|
|
|
|
|
|
-**Реализуйте интерфейс для приема биоматериала и формирования заказа.**
|
|
|
|
|
|
|
+В связи с тем, что компания не реализует продукцию конечным потребителям, у нас есть множество агентов по всей стране, которые продают нашу продукцию от лица нашего бренда. Необходимо вести учёт всех агентов, а также статистику по их продажам.
|
|
|
|
|
|
|
|
-После ввода кода пробирки в окне формирования заказа реализуйте возможность ввода ФИО пациента, услуги. Если пациента в базе данных лаборатории нет, его необходимо добавить. Для этого открывается дополнительное модальное окно добавления пациента, в котором нужно ввести ФИО, дата рождения, серия и номер паспорта, телефон, e-mail.
|
|
|
|
|
|
|
+Реализуйте окно для показа краткой информации об агентах: логотип, наименование, количество продаж за год, телефон и тип агента.
|
|
|
|
|
|
|
|
-Реализуйте возможность добавления нескольких услуг к заказу, поле для добавления новой услуги появляется по нажатию кнопки.
|
|
|
|
|
|
|
+При отсутствии изображения необходимо вывести картинку-заглушку из ресурсов (picture.png).
|
|
|
|
|
|
|
|
-**Реализуйте интерфейс для просмотра списка заказов**
|
|
|
|
|
-
|
|
|
|
|
-Реализуйте поиск пациента и услуг по всем доступным данным.
|
|
|
|
|
|
|
+Количество продаж вычисляется как общее количество проданных единиц продукции за последний год
|
|
|
|
|
+(365 дней).
|
|
|
|
|
|
|
|
-## Задание №5, Тестирование
|
|
|
|
|
|
|
+Пользователь должен иметь возможность отсортировать агентов (по возрастанию и убыванию) по следующим параметрам: наименование и приоритет агента. Выбор сортировки должен
|
|
|
|
|
+быть реализован с помощью выпадающего списка.
|
|
|
|
|
|
|
|
-Напишите UNIT-тесты для процесса добавления заказа.
|
|
|
|
|
|
|
+Кроме этого, пользователь должен иметь возможность отфильтровать данные по типу агента. Все типы из
|
|
|
|
|
+базы данных должны быть выведены в выпадающий список для фильтрации. Первым элементом в выпадающем списке должен быть “Все типы”, при выборе которого настройки фильтра сбрасываются.
|
|
|
|
|
|
|
|
-## Задание №6, Оформление результатов экзамена
|
|
|
|
|
|
|
+Пользователь должен иметь возможность искать агентов, используя поисковую строку. Поиск должен осуществляться по наименованию и контактным данным (email и номер телефона агента).
|
|
|
|
|
|
|
|
-Оформите пояснительную записку в файле `readme.md`. Результаты работы разместите в репозитории.
|
|
|
|
|
|
|
+Поиск, сортировка и фильтрация должны происходить в реальном времени, без необходимости нажатия
|
|
|
|
|
+кнопки “найти”/”отфильтровать” и т.п. Фильтрация и поиск должны применяться совместно. Параметры сортировки, выбранные ранее пользователем, должны сохраняться и во время фильтрации с поиском.
|
|
|
|
|
+
|
|
|
|
|
+#### Добавление/редактирование агентов
|
|
|
|
|
+
|
|
|
|
|
+Необходимо добавить возможность редактирования данных существующего агента, а также добавление
|
|
|
|
|
+нового агента в новом окне - форме для добавления/редактирования агента. Переходы на данное окно
|
|
|
|
|
+должны быть реализованы из главной формы списка: для редактирования - при нажатии на конкретный
|
|
|
|
|
+элемент, для добавления - при нажатии кнопки “Добавить агента”.
|
|
|
|
|
+
|
|
|
|
|
+На форме должны быть предусмотрены следующие поля: наименование, тип агента (выпадающий
|
|
|
|
|
+список), приоритет, логотип компании, адрес, ИНН, КПП, имя директора, телефон и email компании.
|
|
|
|
|
+
|
|
|
|
|
+При открытии формы для редактирования все поля выбранного объекта должны быть подгружены в соответствующие поля из базы данных, а таблица заполнена актуальными значениями.
|
|
|
|
|
+
|
|
|
|
|
+Приоритет агента и количество продукции должны быть целыми неотрицательными числами.
|
|
|
|
|
+
|
|
|
|
|
+Пользователь может добавить/заменить логотип агента.
|
|
|
|
|
+
|
|
|
|
|
+Для того чтобы администратор случайно не изменял несколько агентов, предусмотрите невозможность открытия более одного окна редактирования.
|
|
|
|
|
+
|
|
|
|
|
+#### Удаление агента
|
|
|
|
|
+
|
|
|
|
|
+В главном должна присутствовать кнопка “Удалить”, которая удаляет агента из базы данных. При этом должны соблюдаться следующие условия. Если у агента есть информация о точках
|
|
|
|
|
+продаж агентов или история изменения приоритета, то эта информация должна быть удалена вместе с агентом. Но если у агента есть информация о реализации продукции, то удаление агента из базы данных должно быть запрещено. После удаления агента система должна сразу вернуть пользователя обратно к
|
|
|
|
|
+списку агентов.
|
|
|
|
|
+
|
|
|
|
|
+После редактирования/добавления/удаления агента данные в окне списка агентов должны быть обновлены.
|
|
|
|
|
+
|
|
|
|
|
+### Разработка тестовых сценариев (Test-cases)
|
|
|
|
|
+
|
|
|
|
|
+Для выполнения процедуры тестирования удаления агентов Вам нужно описать пять сценариев. Удаление может быть выполнимо, а может быть отклонено согласно требованиям предметной области.
|
|
|
|
|
+
|
|
|
|
|
+Необходимо, чтобы варианты тестирования демонстрировали различные исходы работы алгоритма. Для описания тестовых сценариев в ресурсах предоставлен шаблон `testing-template.docx.`
|
|
|
|
|
+
|
|
|
|
|
+### Создание руководства пользователя
|
|
|
|
|
+
|
|
|
|
|
+Вам необходимо разработать руководство пользователя для вашего настольного приложения, которое описывает последовательность действий для выполнения всех функций вашей системы.
|
|
|
|
|
+
|
|
|
|
|
+При подготовке документации старайтесь использовать живые примеры и скриншоты вашей системы для более наглядного пояснения шагов работы с различным функционалом.
|
|
|
|
|
+
|
|
|
|
|
+Обратите внимание на оформление документа: оформите титульный лист, используйте автоматическую нумерацию страниц, разделите руководство на подразделы и сформируйте оглавление, используйте ссылки на рисунки, нумерованные и маркированные списки для описания шагов и т.д.
|
|
|
|
|
+
|
|
|
|
|
+Сохраните итоговый документ с руководством пользователя в формате Word, используя в качестве названия следующий шаблон: Руководство пользователя_XX, где XX - номер вашего рабочего места.
|
|
|
|
|
+
|
|
|
|
|
+## Публикация результатов
|
|
|
|
|
+
|
|
|
|
|
+Результаты должны быть опубликованы в публичном репозитории и высланы на проверку экзаменатору.
|
|
|
|
|
+
|
|
|
|
|
+В репозитории должен присутствовать файл `readme.md` с кратким резюме продукта.
|