Рисунок 3.4. Диаграмма последовательностей для сценария «Просмотр выполненных договоров»
Имя: просмотрВыполненныхДоговоров().
Обязанности: Вывести на экран имеющиеся договоры.
Ссылки: Прецедент «Просмотр выполненных договоров».
Примечание: Использовать самый быстрый доступ к БД.
Исключения: Нет.
Предусловия: Требуется авторизация пользователя.
Постусловия: Создаётся форма, содержащая данные выполненных договоров.
Диаграмма последовательностей для сценария «Просмотр настроек стоимости договоров» представлена на рис. 3.5.
Рисунок 3.5. Диаграмма последовательностей для сценария «Просмотр настроек стоимости договоров»
Имя: просмотрНастроекСтоимостиДоговоров().
Обязанности: Сохранить изменения стоимости выполнения договора.
Ссылки: Прецедент «Просмотр настроек стоимости договоров».
Примечание: Использовать самый быстрый доступ к БД.
Исключения: Нет.
Предусловия: Требуется авторизация пользователя.
Постусловия:
· Атрибуты объекта :Стоимость были изменены (модификация атрибута).
Диаграмма последовательностей для сценария «Просмотр зарплаты сотрудников компании» представлена на рис. 3.6.
Рисунок 3.6. Диаграмма последовательностей для сценария «Просмотр зарплаты сотрудников компании»
Имя: просмотрЗарплатыСотрудниковКомпании().
Обязанности: Вывести на экран информацию о зарплатах сотрудников.
Ссылки: Прецедент «Просмотр зарплаты сотрудников компании».
Примечание: Использовать самый быстрый доступ к БД.
Исключения: Нет.
Предусловия: Требуется авторизация пользователя.
Постусловия: Создаётся форма, содержащая данные зарплаты сотрудников.
Диаграмма последовательностей для сценария «Генерация бухгалтерских отчётов» представлена на рис. 3.7.
Рисунок 3.7. Диаграмма последовательностей для сценария «Генерация бухгалтерских отчётов»
Имя: генерацияБухгалтерскихОтчётов().
Обязанности: Сформировать и сохранить на компьютер пользователя отчёт о зарплатах сотрудников.
Ссылки: Прецедент «Генерация бухгалтерских отчётов».
Примечание: Использовать самый быстрый доступ к БД.
Исключения: Нет.
Предусловия: Требуется авторизация пользователя, хотя бы один сотрудник и один выполненный договор.
Постусловия: Создаётся отчёт с зарплатами сотрудников в файле Excel.
Диаграмма последовательностей для сценария «Работа с клиентами» представлена на рис. 3.8.
Рисунок 3.8. Диаграмма последовательностей для сценария «Работа с клиентами»
Имя: работаСКлиентами().
Обязанности: Вывести на экран страницу с меню для работы с клиентами.
Ссылки: Прецедент «Работа с клиентами».
Примечание: Использовать самый быстрый доступ к БД.
Исключения: Нет.
Предусловия: Требуется авторизация пользователя.
Постусловия: Создаётся форма с существующими клиентами
Имя: добавитьКлиента().
Обязанности: Добавлять клиентов в базу данных.
Ссылки: Прецедент «Добавление клиента».
Примечание: Использовать самый быстрый доступ к БД.
Исключения: Нет.
Предусловия: Требуется авторизация пользователя.
Постусловия: Создан объект :Клиент (создание экземпляра).
Имя: изменитьКлиента().
Обязанности: Изменять клиентов в базе данных.
Ссылки: Прецедент «Изменение клиента».
Примечание: Использовать самый быстрый доступ к БД.
Исключения: Нет.
Предусловия: Требуется авторизация пользователя.
Постусловия: Атрибуты объекта :Клиент были изменены (модификация атрибута).
Имя: удалитьКлиента().
Обязанности: Удалять клиентов из базы данных.
Ссылки: Прецедент «Удаление клиента».
Примечание: Использовать самый быстрый доступ к БД.
Исключения: Нет.
Предусловия: Требуется авторизация пользователя.
Постусловия: Объект :Клиент удалён из базы данных.
Диаграмма последовательностей для сценария «Работа с договорами» представлена на рис. 3.9.
Имя: работаСДоговорами().
Обязанности: Вывести на экран страницу с меню для работы с договорами.
Ссылки: Прецедент «Работа с договорами».
Примечание: Использовать самый быстрый доступ к БД.
Исключения: Нет.
Предусловия: Требуется авторизация пользователя.
Постусловия: Создаётся форма с информацией о договорах компании
Имя: добавитьДоговор().
Обязанности: Добавлять договоры в базу данных.
Ссылки: Прецедент «Добавление договора».
Примечание: Использовать самый быстрый доступ к БД.
Исключения: Нет.
Предусловия: Требуется авторизация пользователя.
Рисунок 3.9. Диаграмма последовательностей для сценария «Работа с договорами»
Постусловия:
· Создан объект :Договор (создание экземпляра).
Имя: изменитьДоговор().
Обязанности: Изменять договоры в базе данных.
Ссылки: Прецедент «Изменение договора».
Примечание: Использовать самый быстрый доступ к БД.
Исключения: Нет.
Предусловия: Требуется авторизация пользователя.
Постусловия: Атрибуты объекта :Договор были изменены (модификация атрибута).
Имя: удалитьДоговор().
Обязанности: Удалять договоры из базы данных.
Ссылки: Прецедент «Удаление договора».
Примечание: Использовать самый быстрый доступ к БД.
Исключения: Нет.
Предусловия: Требуется авторизация пользователя.
Постусловия:
· Объект :Договор удалён из базы данных.
Диаграмма последовательностей для сценария «Оценка квартиры с помощью нейросети» представлена на рис. 3.10.
Рисунок 3.10. Диаграмма последовательностей для сценария «Оценка квартиры с помощью нейросети»
Имя: оценкаКвартирыСПомощьюНейросети(площадь, этаж, и т.д.)
Обязанности: Вычислить примерную стоимость квартиры при помощи нейросети.
Ссылки: Прецедент «Оценка квартиры с помощью нейросети».
Примечание: Нет.
Исключения: Нет.
Предусловия: Требуется авторизация пользователя.
Постусловия:
· Вычисляется стоимость квартиры и выводится на экран.
Диаграмма последовательностей для сценария «Просмотр статистики по оценщикам» представлена на рис. 3.11.
Рисунок 3.11. Диаграмма последовательностей для сценария «Просмотр статистики по оценщикам»
Имя: просмотрСтатистикиПоОценщикам().
Обязанности: Вывести на экран всех оценщиков и их текущие договоры.
Ссылки: Прецедент «Просмотр статистики по оценщикам».
Примечание: Использовать самый быстрый доступ к БД.
Исключения: Нет.
Предусловия: Требуется авторизация пользователя.
Постусловия: Создаётся форма, содержащая информацию о занятости оценщиков.
3.4 Диаграмма классов
Диаграмма классов была разбита на четыре части. Некоторые классы продублированы для облегчения интерпретации связей между частями диаграммы.
На первой части диаграммы (рис. 3.12) представлены классы Пользователь, Оценщик, ДругойРаботник, Роль. Класс Пользователь является родительским классом для всех остальных классов, представленных на этой части диаграммы, кроме класса Роль. Класс Пользователь содержит такие поля, как ФИО, логин и пароль, дата рождения и дата начала работы в компании, а также одну из трёх ролей. Пользователя можно добавить в базу данных, изменить или удалить. Класс Оценщик добавляет только одно поле к полям класса Пользователь - поле должность. Как и класс Пользователь, Оценщика можно добавить, изменить и удалить из базы данных. Класс ДругойРаботник добавляет поле зарплата. Класс Роль содержит только одно поле - название роли. По умолчанию присутствуют три роли в системе, которые нельзя изменить или удалить - оценщик, бухгалтер и директор.
На второй части диаграммы (рис. 3.13) представлены классы Договор, Оценщик, ОбъектОценки, Клиент, ФизическоеЛицо, ЮридическоеЛицо и Адрес. Класс Клиент является родительским для классов Физическое лицо и Юридическое лицо. Он необходим для осуществления связи с классом Договор и содержит поля id и тип клиента. Класс Физическое лицо содержит следующие поля: ФИО, адрес проживания и поля для паспортных данных.
Рисунок 3.12. Диаграмма классов разрабатываемой системы. Часть 1
Адрес проживания связан с классом Адрес. Класс Юридическое лицо содержит поля: название компании, ОГРН, ИНН, номер счёта, электронная почта и адрес расположения, который связан с классом Адрес. Класс Адрес содержит необходимые поля для сохранения адреса клиента - город, район, улица, дом и квартира. Рассмотрим класс Договор. Он содержит в себе информацию о заключённом договоре, с кем заключён договор, что необходимо оценить и кто будет проводить оценку. Основные поля класса - сумма договора, размер предоплаты, дата начала и дата окончания. Классы Клиент, Оценщик и ОбъектОценки связаны с классом Договор. Класс объект оценки будет рассмотрен в следующей части диаграммы классов. Каждый экземпляр класса можно добавлять, изменять и удалять из базы данных.
Рисунок 3.13. Диаграмма классов разрабатываемой системы. Часть 2
В третьей части диаграммы (см. рис. 3.14) представлены классы ОбъектОценки, Автомобиль, Участок, Квартира и Адрес. Класс ОбъектОценки является родительским классом для классов Автомобиль, Квартира и Участок. Он содержит следующие поля: цель оценки и тип оценки. Класс Автомобиль содержит поля: марка и модель автомобиля, регистрационный номер и год выпуска. Класс Участок содержит поля: площадь, тип использования и ссылку на экземпляр класса Адрес. Класс Квартира содержит поля площадь, количество комнат, этаж и ссылку на экземпляр класса Адрес. Класс Адрес уже был рассмотрен в предыдущей части. Каждый экземпляр класса можно добавлять, изменять и удалять из базы данных.
В четвёртой части диаграммы (рис. 3.15) представлены классы НастройкиЗарплаты и НастройкиНейросети. Они независимы и никак не связаны с какими-либо другими классами системы. Класс НастройкиЗарплаты отвечает за подставляемую стоимость выполнения договора при его создании и содержит информацию о том, сколько из стоимости выполнения договора получит его исполнитель - оценщик. Эта информация хранится для каждого типа договора отдельно.
Рисунок 3.14. Диаграмма классов разрабатываемой системы. Часть 3
Класс НастройкиНейросети позволяет изменять входные параметры, подаваемые во встроенную в систему нейросеть, которые не зависят от оцениваемой квартиры. Например, величина средней зарплаты в Перми или ВВП России. Поскольку экземпляры данных классов должны существовать всегда, их нельзя удалить из базы данных. Единственный доступный метод - это изменение.
Рисунок 3.15. Диаграмма классов разрабатываемой системы. Часть 4
3.5 Диаграмма компонентов
В данном разделе представлена диаграмма компонентов, которая позволяет отобразить компоненты системы и связи между ними. Диаграмма компонентов для проектируемой системы представлена на рис. 3.16. Система имеет две основные части: серверная часть и клиентская часть. Контроллеры серверной части обращается к базе данных посредством Microsoft Entity Framework через модели данных, получает настройки из файла appsettings.json и генерирует отчёты в формате Excel. Клиентская часть системы получает и передаёт данные на сервер по протоколу HTTP. Компоненты содержат веб-страницы, в которые подставляются данные с сервера. Для преобразования данных в клиентской части системы присутствует локальное хранилище данных - Store.
Рисунок 3.16. Компоненты разрабатываемой системы
3.6 Проектирование пользовательского интерфейса
Приложение будет реализовано с помощью технологии ASP.NET Core для серверной части системы и React для клиентской части системы.
Рассмотрим основные типы страниц:
1. Страница входа в систему - на этой странице пользователю предоставляется возможность ввести свой логин и пароль (см. рис. 3.17).
2. Страница с данными - на этой странице реализовано основное меню программы, на неё выводятся данные из базы данных.
3. Страница для ввода данных - на страницах этого типа пользователю предоставляется возможность заполнить поля, необходимые для добавления или изменения записи в базе данных.
Рисунок 3.17. Эскиз страницы входа
Страница с данными будет содержать в себе следующие элементы:
1. Элемент menuList - этот элемент создаёт удобное меню с появляющимися вкладками. Через этот элемент будет осуществляться основное использование программы пользователем.
2. Элемент label - этот элемент будет выводить текстовую информацию.
3. Элемент table - этот элемент будет отображать данные из базы данных в табличном виде.
4. Элемент button - этот элемент позволят пользователю управлять приложением - переключать страницы и вызывать функции.
Эскиз страницы с данными представлен на рисунке 3.18.