2.1 Диаграмма вариантов использования
Диаграмма вариантов использования проектируемого приложения представлена на рисунке 3. Приложение предполагает наличие только одного пользователя.
Открыв приложение, пользователь попадает в главное меню, в котором он может выбрать 4 варианта: «Добавить запись», «Удалить запись», «Посмотреть все записи» и «Найти записи по фамилии».
Кнопка «Добавить запись» предполагает добавление нового пользователя в файл. При выборе данного меню, выводится пошаговое меню с заполнением данных.
При выборе найти записи по фамилии. В этом окне пользователю предлагается ввести необходимую фамилию. После ввода необходимых данных происходит поиск всех пользователей, которые соответствуют введенным параметрам и выводят их на экран.

Рисунок 3 – Диаграмма вариантов использования
2.2 Диаграмма классов
В ходе проектирования архитектуры приложения разрабатывается проектная документация, включающая текстовые описания, диаграммы и модели будущей программы. Диаграмма классов служит для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования.
Поле класса или атрибут в объектно-ориентированном программировании – переменная, связанная с классом или объектом. Все данные объекта хранятся в его полях. Доступ к полям осуществляется по их имени. Обычно тип данных каждого поля задаётся в описании класса, членом которого является поле.
Диаграмма классов для приложения представлена на рисунке 4. Она отображает все классы программы, а также их атрибуты, методы и взаимосвязи между ними. На диаграмме можно увидеть основные архитектурные решения.

Рисунок 4 – Диаграмма классов
Связующим из основных классов является DbSet, он отвечает логику операций с данными.
В папке models реализованы классы, которые повторяю структуру хранимых данных.
Описание всех классов и комментарии к их атрибутам и методам представлены в табл.1.
Таблица 1 – Используемые классы папки «Phone »
| «Phone. cs » | |
| Атрибут | Комментарий |
| Int Id | Уникальный идентификатор пользователя |
| String Surname | Фамилия пользователя |
| String FirstName | Имя пользователя |
| String FatherName | Отчество пользователя |
| String Telephone | Телефон пользователя |
Следующая группа содержит в себе классы, которые работают с данными. Описание всех классов и комментарии к их атрибутам и методам представлены в табл.2.
Таблица 2 – Используемые классы папки «Context »
| «DbSet. cs » | |
| Атрибут | Комментарий |
| List<T> Entities | Список записей |
| string fileName | Название файла, где хранятся данные |
| string typeFile | Тип файла |
| Метод | Комментарий |
| void Add(T entity) | Добавляет данные в список |
| void Edit(int id,T entity) | Изменяет данные пользователя |
| bool Remove(int id) | Удаляет данные из списка |
| bool RemoveAll() | Очищает базу |
| T GetId(int id) | Получает данные пользователя по id |
| List<T> GetAll() | Получает все данные из списка |
| List<T> FindAllUsersSurname(string surname) | Получает все данные по сроку годности |
| void SaveChanges() | Сохраняет изменения в файл |
| void GetDataFromFile() | Получает данные из файла |
| «DbContext. cs » | |
| Атрибут | Комментарий |
| DbEntities<Phone> Phones | Объект DbEntities |
Папка «Main », включает в себя классы, связанный с логикой приложения. Описание класса и комментарии к их атрибутам и методам представлены в табл.3.
Таблица 3 – Используемые классы папки «Main »
| «Program. cs » | |
| Атрибут | Комментарий |
| MenuService menuService | Файл класса по работе с меню |
| int menuItems | Номер категории меню |
| «MenuService. cs » | |
| Атрибут | Комментарий |
| DbContext db | Объект файла DbContext, который отвечает за логику работы с данными |
| Метод | Комментарий |
| void MenuAddItem() | Пункт меню добавления пользователя |
| void MenuRemoveItem () | Пункт меню удаления пользователя |
| bool MenuGetItems () | Пункт меню получения пользователей |
| bool MenuFindItems () | Пункт меню поиска пользователей |
2.2 Диаграмма последовательностей
Диаграмма последовательности – диаграмма, на которой для некоторого набора объектов на единой временной оси показан жизненный цикл определённого объекта и взаимодействие действующих лиц программы.

Рисунок 5 – Диаграмма последовательностей для добавления нового пользователя

Рисунок 6 – Диаграмма последовательности удаления пользователя

Рисунок 7 – Диаграмма последовательности получения списка пользователей

Рисунок 8 – Диаграмма последовательности поиск пользователей по фамилии
3 Исследование функциональности приложения хранения данных о товарах
При запуске приложения, открывается главное меню, в котором описаны действия по работе с программой (рисунок 9).
Приложение предлагает 4 варианта на выбор:
- Добавить запись;
- Удалить запись;
- Посмотреть все записи;
- Выбрать записи по сроку годности.

Рисунок 9 – Главное меню
При выборе первого пункта меню, пользователю будет предложено последовательно вводить данные пользователя.
После ввода данных происходит их сохранение в файл. В случае успешного добавления будет выведена соответствующая запись (Рисунок 10).

Рисунок 10 – Добавление пользователя
Вторым пунктом является удаление данных из базы. Где выводится полный список данных, а затем будет предложено выбрать номер пользователя, которого необходимо удалить (Рисунок 11).

Рисунок 11 – Удаление пользователя
Третий пункт является вывод полного списка пользователей (Рисунок 12).

Рисунок 12 – Вывод списка пользователей
В последнем пункте, будет предложено ввести фамилию пользователя, в результате будут выбраны все данные, которые соответствуют данному условию (Рисунок 13).

Рисунок 13 – Вывод найденных пользователей
Таким образом, было проведено тестирование приложения, которое продемонстрировало его полную работоспособность, а также были составлены элементы технической документации.
ЗАКЛЮЧЕНИЕ
Целью работы является повышение профессиональных навыков, связанных с использованием языка программирования и моделирования для проектирования и разработки программного обеспечения программного обеспечения, формализующего функционал телефонного справочника. В ходе выполнения удалось добиться решения следующих задач:
− был проведен анализ существующих решений поставленной задачи, в результате которого для разработки приложения в качестве языка программирования был выбран С#, в качестве среды разработки IDE Visual Studio c, в качестве языка проектирования– UML;
− спроектирована объектно-ориентированная архитектура приложения;
− реализовано спроектированное программное обеспечение, отвечающее требованиям объектно-ориентированного подхода;
− осуществлено тестирование и оценка приложения;
− разработаны элементы технической документации.
В результате повысился уровень компетенции в области программирования: получены навыки работы с объектно-ориентированным программированием.