Файл: Варианты построения интерфейса программ: особенности и эволюция..pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 30.03.2023

Просмотров: 323

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

1) имя подключения;

2) строка подключения, где указывается имя сервера БД, имя базы

данных и другие необязательные параметры;

3) имя провайдера.

Строка подключения на примере приложения Bookstore представлена на Рисунке 14.

Рисунок 14. Строка подключения приложения Bookstore

Ключевой частью доступа к данным является проект Data Access.EF. Его структура представлена на рисунке 15. В нем располагается класс, представляющий из себя контекст базы данных, который описывает основные свойства модели. Также в данном проекте находится папка Migrations, в которой расположены миграции, создаваемые автоматически при изменении каких-либо свойств в модели. Миграции создаются при помощи команды enable - migrations в менеджере консоли. После выполнения этой команды, в проекте создается папка миграций с файлом конфигурации. Этот файл представляет собой объявление одноименного класса, который устанавливает настройки конфигурации. После этого, также с помощью менеджера консоли, требуется создать сами миграции. Это происходит при вызове команды Add-Migration. Затем, после автоматического создания миграций, разработчику требуется только обновить базу данных при помощи команды Update-Database в том же менеджере консоли. Миграции во многом могут упростить жизнь разработчику, поскольку ему не приходится пересоздавать базу данных по – новому при каком – либо изменении в модели. Рисунок 15.

Рисунок 15. Структура проекта Data Access.EF.

Для постоянной перегенерации базы данных был разработан проект, в виде консольного приложения, названный DbRecreation, структура которого представлена на рисунке 16.

Рисунок 16. Структура проекта DbRecreation

В этом проекте находится папка JsonData, в которой разработчики могут располагать файлы формата JSON, с данными, которые будут заноситься в БД. Также разработчики могут наполнять базу данных различными тестовыми данными, непосредственно в классе Program. Диаграмма этого класса представлена на рисунке 17.

Рисунок 17. Класс Program проекта DbRecreation

В главном методе Main этого класса, происходит проверка на существование базы данных, указанной в строке подключения. Если она существует, то происходит процесс ее удаления. Затем инициализируется новая база данных на основе миграций и происходит вызов методов, создающих объекты моделей. Например, для приложения Bookstore, вызываются методы, создающие книги, авторов книг, книжные подразделения и т.д. Также присутствует общий метод, именованный CreateItems, который непосредственно является частью фреймворка. Этот метод считывает данные, расположенные в папке JsonData, конвертирует их и отправляет в базу данных. На примере приложения Bookstore, в базе данных было создано 15 таблиц, содержащих данные о книгах, авторах, клиентах, пользователях и т.д. На рисунках 18 и 19 представлена схема получившейся базы данных.


Рисунок 18. Схема базы данных приложения Bookstore. Часть 1

Рисунок 19. Схема базы данных приложения Bookstore. Часть 2

2.5. Структура Фреймворка

Исходя из выбора архитектуры MVVM для построения данного Фреймворка, изначально для решения было создано три проекта: модель, модель представления и представление. В качестве модели и модели представления послужили стандартные библиотеки классов C#. Также для разработки был выбран подход ViewModel First, с помощью которого можно реализовать удобную поддержку дочерних окон. Для приложения Bookstore разработано три различные модели представления. При этом какой-либо разработчик, который будет пользоваться Фреймворком, может проектировать любое количество своих моделей представления. Созданные ViewModels были унаследованы от класса ChildViewModelBase, который поставляется в свободно распространяемом Фреймворке IkitMita.Mvvm.ViewModels, добавленным в проект с помощью менеджера загрузок. Также модели представления были помечены атрибутом Export, с помощью которого они добавляются в IoC-контейнер и впоследствии соединяются со своими представлениями. Диаграмма классов моделей представления для приложения Bookstore представлена на рисунке 20.

Рисунок 20. Диаграмма классов моделей представления для приложения Bookstore

Представления были разработаны в виде WPF проектов. Они проектировались на языке разметки XAML. Представлений создано ровно такое же количество, как и моделей представления. Они также были помечены атрибутом Export для связи со своими моделями представления в IoC-контейнере под контрактом интерфейса IView, который является частью свободно распространяемого Фреймворка IkitMita.Mvvm.Views. На рисунке 21 представлено View для авторизации в приложении Bookstore.

Рисунок 21. Авторизация приложения Bookstore

На рисунке 22, изображено представление, которое является главной формой приложения Bookstore.

Рисунок 22. Основная форма приложения Bookstore

На рисунке 23 представлено View для создания заказа в приложении Bookstore.

Рисунок 23. Создание заказа в приложении Bookstore


Во фреймворке был разработан специальный проект для защиты данных. В нем представлен интерфейс ISecurityManager с методами, которые обеспечивают корректную авторизацию пользователя и проверку его роли в

системе. Также здесь представлен класс PasswordManager, методы которого

хэшируют пароли. С помощью данной технологии процесс взлома становится трудоемкой задачей. Какой-либо злоумышленник не сможет открыть таблицы в базе данных и посмотреть пароли, так как они хранятся в хешированном виде. На рисунке 24 представлена диаграмма классов данного проекта.

Рисунок 24. Диаграмма классов для защиты информации

Исходя из того, что Фреймворк будет предназначен для построения многозвенной распределенной информационной системы, одной из ключевых его частей является проект веб-сервиса. Пользовательские клиентские приложения, построенные на описываемом Фреймворке будут взаимодействовать не с конкретной СУБД, а именно с веб - сервисом. То есть данные, полученные из БД, будут сначала обрабатываться на дополнительном сервере и только потом поступать на клиентскую сторону. Проект веб - сервиса был разработан на шаблоне MVC. Контроллеры в данном случае исполняли роль посредников при передаче моделей из клиентской стороны на сторону базы данных и обратно с их обработкой на промежуточном сервере. На рис. 25 представлен фрагмент промежуточного веб - сервера, на котором происходит обработка моделей.

Рисунок 25. Фрагмент веб – сервиса

Также ключевой частью Фреймворка является проект DataAccess.WebApi, который обеспечивает доступ к данным на уже упомянутом веб - сервисе. Структура данного проекта представлена на рисунке 26.

Рисунок 26. Структура проекта DataAccess.WebApi

Данный проект содержит класс AuthModel и интерфейс IAuthTokenProvider, которые предоставляют токен для обеспечения безопасности пользователя при авторизации и его идентификации. Также здесь присутствует класс SecurityManager, реализующий вышеупомянутый интерфейс ISecurityManager для обеспечения корректной авторизации пользователей. На рисунке 27 изображена диаграмма классов проекта DataAccess.WebApi.

Рисунок 27. Диаграмма классов проекта DataAccess.WebApi

Ключевую роль здесь играет абстрактный класс WebApiClient. В нем представлены основные методы, которые отвечают за обработку данных на промежуточном веб - сервере. От него наследуются классы с методами, реализующими операции для приложения Bookstore. Любой разработчик, классы для обеспечения каких-либо операций, унаследовать эти классы от WebApiClient, и данные операции будут обрабатываться уже на веб-сервере.


Таким образом, был разработан свободно распространяемый Фреймворк для проектирования распределенной информационной системы. На первом этапе были рассмотрены основные инструментальные средства и

выбраны оптимальные. На дальнейшем происходила разработка приложения Bookstore, которое послужило отправной точкой для проектирования Фреймворка. В дальнейшем, можно будет создавать другие приложения, для которых каркасом будет служить разработанный Фреймворк.

ЗАКЛЮЧЕНИЕ

Пользовательский интерфейс, интерфейс пользователя – одна из разновидностей интерфейсов, который является совокупностью средств и методов взаимодействия пользователя с вычислительными устройствами (в частности, ПК).

Анализ первой главы курсовой работы на тему «Варианты построения интерфейса программ: особенности и эволюция» выявил следующее:

Во- первых, Интерфейсы выполняют конкретные задачи и их эффективность измерима. Однако они могут выходить за рамки чисто практического применения. Лучшие интерфейсы те, которые вдохновляют, пробуждают чувства, удивляют и усиливают наш опыт общения с миром.

Во-вторых, за более чем полвека своего существования ЭВМ проделали огромный путь, развившись в сложные и мощные системы, нашедшие применение практически во всех современных отраслях. Если присмотреться к интерфейсам современных операционных систем, то можно заметить явные сходства с графическими оболочками родоначальников всех GUI Xerox Alto и Apple Lisa.  Да, первые графические интерфейсы были примитивны, но была в них одновременно и та подкупающая простота, которой так иногда не хватает перегруженным визуальными эффектами оболочкам современных программ и операционных систем.

Во второй главе курсовой работы был спроектирован свободно распространяемый Фреймворк для построения распределенной информационной системы. Ключевой особенностью разработанного продукта является то, что в будущем он будет выступать каркасом для проектирования приложений с распределенной обработкой данных. Благодаря этому, большое количество разработчиков, сэкономит немало времени для решения задач, связанных с их собственной бизнес - логикой.

Результатом курсовой работы стал программный продукт – Фреймворк для построения распределенной ИС. Разработка велась на платформе .NET Framework на языке программирования C# с использованием технологии WPF. Для осуществления доступа к данным были использованы Entity Framework и WebApi.


В дальнейшем развитие Фреймворка планируется его внедрение на сервис NuGet, который представляет собой систему управления пакетами. С помощью этого, программисты смогут встраивать разработанный Фреймворк в свои приложения и полностью пользоваться его функционалом.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Абросимова, М.А. Информационные технологии в государственном и муниципальном управлении: Учебное пособие / М.А. Абросимова. — М.: КноРус, 2015. — 248 c.
  2. Агальцов, В.П. Информатика для экономистов: Учебник / В.П. Агальцов, В.М. Титов. — М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2015. — 448 c.
  3. Акперов, И.Г. Информационные технологии в менеджменте: Учебник / И.Г. Акперов, А.В. Сметанин, И.А. Коноплева. — М.: НИЦ ИНФРА-М, 2015. — 400 c.
  4. Антопольский, А.Б. Информационные ресурсы России: Научно-методическое пособие / А.Б. Антопольский. — М.: Либерия, 2016. — 424c.
  5. Балдин, К.В. Информационные системы в экономике: Учебник / К.В. Балдин, В.Б. Уткин. — М.: Дашков и К, 2013. — 395 c.
  6. Балдин, К.В. Информационные технологии в менеджменте: Учеб. для студ. учреждений высш. проф. образования / К.В. Балдин. — М.: ИЦ Академия, 2012. — 288 c.
  7. Божко, В.П. Информатика: данные, технология, маркетинг / В.П. Божко, В.В. Брага, Н.Г. Бубнова. — М.: Финансы и статистика, 2017. — 224 c.
  8. Варфоломеева, А.О. Информационные системы предприятия: Учебное пособие / А.О. Варфоломеева, А.В. Коряковский, В.П. Романов. — М.: НИЦ ИНФРА-М, 2016. — 283 c.
  9. Васильков, А.В. Информационные системы и их безопасность: Учебное пособие / А.В. Васильков, А.А. Васильков, И.А. Васильков. — М.: Форум, 2015. — 528 c.
  10. Велихов, А. С. Основы информатики и компьютерной техники: учебное пособие / А. С. Велихов. – Москва: СОЛОН-Пресс, 2017. – 539 с.
  11. Волкова В.Н. Теория информационных процессов и систем. — М.: Юрайт, 2016. — 504 с.
  12. Гаврилов, М.В. Информатика и информационные технологии: Учебник для бакалавров / М.В. Гаврилов, В.А. Климов; Рецензент Л.В. Кальянов, Н.М. Рыскин. — М.: Юрайт, 2016. — 378 c.
  13. Гейн, А.Г. Основы информатики и вычислительной техники / А.Г. Гейн, В.Г. Житомирский, Е.В. Линецкий, и др.. — М.: Просвещение, 2017. — 254 c.
  14. Горнец, Н. Н. ЭВМ и периферийные устройства. Компьютеры и вычислительные системы: учебник для студентов вузов, обучающихся по направлению «Информатика и вычислительная техника» / Н. Н. Горнец, А. Г. Рощин. — М.: Академия, 2017. — 240 с.: ил. — (Высшее профессиональное образование Информатика и вычислительная техника).
  15. Грошев А.С. Информатика: лабораторный практикум. Сев. (Арктич.) федер. ун-т им. М.В. Ломоносова. – Архангельск: ИД САФУ, 2017. – 154 с.
  16. Завгородний, В.И. Информатика для экономистов: Учебник для бакалавров / В.П. Поляков, Н.Н. Голубева, В.И. Завгородний; Под ред. В.П. Полякова. — М.: Юрайт, 2018. — 524 c.
  17. Ивасенко, А.Г. Информационные технологии в экономике и управлении: Учебное пособие / А.Г. Ивасенко, А.Ю. Гридасов, В.А. Павленко. — М.: КноРус, 2017. — 158 c.
  18. Информатика / Под ред. Н.В. Макаровой. — СПб.: Питер, 2018. — 160 с.
  19. Информатика Учебник для вузов Макарова Н. В., Волков В. Б. Издательство: Питер, 2017 г., 575 с.
  20. Информатика. Базовый курс / Под ред. С.В. Симоновича. — СПб.: Питер, 2018. — 640 с.
  21. Информатика. Базовый курс: учебное пособие для высших технических учебных заведений / [С. В. Симонович и др.]. – Санкт-Петербург: Питер, 2018. – 639 с.
  22. Информатика: Энциклопедический словарь для начинающих / ред. Д.А. Поспелов. — М.: Педагогика-Пресс, 2016. — 352 c.
  23. Иопа, Н. И. Информатика: (для технических специальностей): учебное пособие / Н. И. Иопа. – Москва: КноРус, 2018. – 469 с.
  24. Исаев, Г.Н. Информационные технологии: Учебное пособие / Г.Н. Исаев. — М.: Омега-Л, 2018. — 464 c.
  25. Керниган, Б.У. Язык программирования С / Б.У. Керниган, Д.М. Ритчи; Пер. с англ. В.Л. Бродовой. — М.: Вильямс, 2015. — 304 c.
  26. Киселев, Г.М. Информационные технологии в экономике и управлении (эффективная работа в MS Office 2007): Учебное пособие / Г.М. Киселев, Р.В. Бочкова, В.И. Сафонов. — М.: Дашков и К, 2017. — 272 c.
  27. Кудряшов Б.Д. Теория информации. — СПб.: Питер, 2009. — 320 с.
  28. Логинов, В.Н. Информационные технологии управления: Учебное пособие / В.Н. Логинов. — М.: КноРус, 2016. — 240 c.
  29. Ляхович В.Ф., Молодцов В.А., Рыжикова Н.Б. Основы информатики. — М.: КноРус, 2017. — 348 с.
  30. Макарова Н. В. Информатика и информационно-коммуникационные технологии.- СПб.: Питер, 2017. — 224 с.
  31. Михеева Е.В. Информационные технологии в профессиональной деятельности. — М.: Академия, 2018. — 384 с.
  32. Патрушина, С.М. Информационные системы в экономике: Учебное пособие / С.М. Патрушина, Н.А. Аручиди. — М.: Мини Тайп, 2016. — 144c.
  33. Просветов Г.И. Анализ данных с помощью Excel. Задачи и решения. — М.: Альфа-Пресс, 2015. — 160 с.
  34. Светлов, Н.М. Информационные технологии управления проектами: Учебное пособие / Н.М. Светлов, Г.Н. Светлова. — М.: НИЦ ИНФРА-М, 2017. — 232 c.
  35. Страуструп, Б. Язык программирования C++: Специальное издание / Б. Страуструп; Пер. с англ. Н.Н. Мартынов. — М.: БИНОМ, 2016. — 1136 c.
  36. Троелсен, Э. Язык программирования С# 5.0 и платформа .NET 4.5 / Э. Троелсен; Пер. с англ. Ю.Н. Артеменко. — М.: Вильямс, 2016. — 1312 c.
  37. Угринович, Н. Информатика и информационные технологии / Н. Угринович. — М.: Бином. Лаборатория знаний, 2017. — 512 c.
  38. Федотова Е. Л. Информатика: курс лекций / Е. Л. Федотова, А. А.
  39. Федотова, Е.Л. Информационные технологии в науке и образовании: Учебное пособие / Е.Л. Федотова, А.А. Федотов. — М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2016. — 336 c.
  40. Хейлсберг, А. Язык программирования C#. Классика Computers Science / А. Хейлсберг, М. Торгерсен, С. Вилтамут. — СПб.: Питер, 2018. — 784 c.
  41. Щипицина, Л.Ю. Информационные технологии в лингвистике: Учебное пособие / Л.Ю. Щипицина. — М.: Флинта, Наука, 2016. — 128 c.
  42. Ясенев, В.Н. Информационные системы и технологии в экономике.: Учебное пособие для студентов вузов / В.Н. Ясенев. — М.: ЮНИТИ-ДАНА, 2016. — 560 c.