Вашей задачей является разработка системы для производственной компании, которая ежедневно выпускает продукцию в большом объеме, а также реализует ее агентам, которые в дальнейшем продают эти товары конечным потребителям.
Наша компания “Глазки-save” занимается производством защитных очков для различных сфер использования. Мы реализуем продукцию не напрямую покупателям, а работаем с агентами, которые уже впоследствии продают нашу продукцию конечному потребителю. Для удобного взаимодействия с агентами и контроля их работы нам требуется система, позволяющая аккумулировать всю информацию по агентам. Вам предстоит разработать подсистему для работы с агентами нашей компании, которая должна включать в себя следующий функционал:
Используйте соответствующие названия для ваших приложений и файлов. Так, например, наименование настольного приложения должно обязательно включать название компании-заказчика.
Визуальные компоненты должны соответствовать руководству по стилю, предоставленному в качестве ресурсов к заданию в соответствующем файле. Обеспечьте соблюдение требований всех компонентов в следующих областях:
Уведомляйте пользователя о совершаемых им ошибках или о запрещенных в рамках задания действиях, запрашивайте подтверждение перед удалением, предупреждайте о неотвратимых операциях, информируйте об отсутствии результатов поиска и т.п. Окна сообщений соответствующих типов (например, ошибка, предупреждение, информация) должны отображаться с соответствующим заголовком и пиктограммой. Текст сообщения должен быть полезным и информативным, содержать полную информацию о совершенных ошибках пользователя и порядок действий для их исправления. Также можно использовать визуальные подсказки для пользователя при вводе данных.
Не позволяйте пользователю вводить некорректные значения в текстовые поля сущностей. Например, в случае несоответствия типа данных или размера поля введенному значению.
Оповестите пользователя о совершенной им ошибке. Обратите внимание на использование абсолютных и относительных путей к изображениям. Приложение должно корректно работать в том числе и при перемещении папки с исполняемым файлом.
При возникновении непредвиденной ошибки приложение не должно аварийно завершать работу.
Все практические результаты должны быть переданы заказчику путем загрузки файлов на предоставленный вам репозиторий системы контроля версий git. Практическими результатами являются
Результаты работы каждой сессии должны быть загружены в отдельный репозиторий с названием «SessionX» (X – номер сессии).
Для оценки работы будет учитываться только содержимое репозитория. При оценке рассматриваются заметки только в электронном виде (readme.md). Рукописные примечания не
будут использоваться для оценки.
Для согласования процесса разработки с заказчиком Вам необходимо ознакомиться с описанием предметной области и сделать диаграмму прецедентов (Use Case) для основных пользователей системы.
Сохраните файл с диаграммой в формате PDF, используя в качестве названия следующий шаблон: UseCase_XX, где XX - номер вашего рабочего места.
Создайте спецификации к 3 самым важным прецедентам предметной области по вашему мнению. Не забудьте указать в каждой спецификации название прецедента, актера, цель выполнения прецедента, предусловия, главную последовательность по шагам, альтернативные последовательности и постусловия.
Для восстановления таблиц в созданную базы данных воспользуйтесь предоставленным скриптом (ms.sql). В процессе разработки приложения Вы можете изменять
базу данных на свое усмотрение.
Заказчик системы предоставил файлы с данными (с пометкой import в ресурсах) для переноса в новую систему. Подготовьте данные файлов для импорта и загрузите в разработанную базу данных.
В связи с тем, что компания не реализует продукцию конечным потребителям, у нас есть множество агентов по всей стране, которые продают нашу продукцию от лица нашего бренда. Необходимо вести учёт всех агентов, а также статистику по их продажам.
Реализуйте окно для показа краткой информации об агентах: логотип, наименование, количество продаж за год, телефон и тип агента.
При отсутствии изображения необходимо вывести картинку-заглушку из ресурсов (picture.png).
Количество продаж вычисляется как общее количество проданных единиц продукции за последний год (365 дней).
Пользователь должен иметь возможность отсортировать агентов (по возрастанию и убыванию) по следующим параметрам: наименование и приоритет агента. Выбор сортировки должен быть реализован с помощью выпадающего списка.
Кроме этого, пользователь должен иметь возможность отфильтровать данные по типу агента. Все типы из базы данных должны быть выведены в выпадающий список для фильтрации. Первым элементом в выпадающем списке должен быть “Все типы”, при выборе которого настройки фильтра сбрасываются.
Пользователь должен иметь возможность искать агентов, используя поисковую строку. Поиск должен осуществляться по наименованию и контактным данным (email и номер телефона агента).
Поиск, сортировка и фильтрация должны происходить в реальном времени, без необходимости нажатия кнопки “найти”/”отфильтровать” и т.п. Фильтрация и поиск должны применяться совместно. Параметры сортировки, выбранные ранее пользователем, должны сохраняться и во время фильтрации с поиском.
Необходимо добавить возможность редактирования данных существующего агента, а также добавление нового агента в новом окне - форме для добавления/редактирования агента. Переходы на данное окно должны быть реализованы из главной формы списка: для редактирования - при нажатии на конкретный элемент, для добавления - при нажатии кнопки “Добавить агента”.
На форме должны быть предусмотрены следующие поля: наименование, тип агента (выпадающий список), приоритет, логотип компании, адрес, ИНН, КПП, имя директора, телефон и email компании.
При открытии формы для редактирования все поля выбранного объекта должны быть подгружены в соответствующие поля из базы данных, а таблица заполнена актуальными значениями.
Приоритет агента и количество продукции должны быть целыми неотрицательными числами.
Пользователь может добавить/заменить логотип агента.
Для того чтобы администратор случайно не изменял несколько агентов, предусмотрите невозможность открытия более одного окна редактирования.
В главном должна присутствовать кнопка “Удалить”, которая удаляет агента из базы данных. При этом должны соблюдаться следующие условия. Если у агента есть информация о точках продаж агентов или история изменения приоритета, то эта информация должна быть удалена вместе с агентом. Но если у агента есть информация о реализации продукции, то удаление агента из базы данных должно быть запрещено. После удаления агента система должна сразу вернуть пользователя обратно к списку агентов.
После редактирования/добавления/удаления агента данные в окне списка агентов должны быть обновлены.
Для выполнения процедуры тестирования удаления агентов Вам нужно описать пять сценариев. Удаление может быть выполнимо, а может быть отклонено согласно требованиям предметной области.
Необходимо, чтобы варианты тестирования демонстрировали различные исходы работы алгоритма. Для описания тестовых сценариев в ресурсах предоставлен шаблон testing-template.docx.
Вам необходимо разработать руководство пользователя для вашего настольного приложения, которое описывает последовательность действий для выполнения всех функций вашей системы.
При подготовке документации старайтесь использовать живые примеры и скриншоты вашей системы для более наглядного пояснения шагов работы с различным функционалом.
Обратите внимание на оформление документа: оформите титульный лист, используйте автоматическую нумерацию страниц, разделите руководство на подразделы и сформируйте оглавление, используйте ссылки на рисунки, нумерованные и маркированные списки для описания шагов и т.д.
Сохраните итоговый документ с руководством пользователя в формате Word, используя в качестве названия следующий шаблон: Руководство пользователя_XX, где XX - номер вашего рабочего места.
Результаты должны быть опубликованы в публичном репозитории и высланы на проверку экзаменатору.
В репозитории должен присутствовать файл readme.md с кратким резюме продукта.