ВВЕДЕНИЕ
Тема реализации билетов в кинотеатрах города была актуальна многие годы с появлением самих кинотеатров, так как каждый день осуществляется множество киносеансов, организованных коммерческими и государственными компаниями, которые в своём распоряжении имеют кинофильмы различного типа, которые в свою очередь необходимо обслуживать. С увеличением количества кинотеатров, кинофильмов возрастают объёмы информации, которая связана с организацией кинопоказов и обслуживания клиентов, так же необходимо своевременно получать комбинированные отчёты по данным киносеансам и расходам на обслуживание. Одно из решений данной проблемы будет создание информационной системы.
Информационная система - это совокупность содержащейся в базах данных информации и обеспечивающих её обработку информационных технологий и технических средств. Информационные системы проектируется, масштабируемы с учётом дальнейшего роста предприятия, должны быть расширяемые и иметь возможность обрабатывать большие объёмы данных и автоматизировать работу с ними.
Из вышеперечисленного материала можно сделать вывод, что cистема реализации билетов в кинотеатрах города поможет кинотеатрам автоматизировать работу по учёту и предоставит возможность получение отчётов по реализации билетов и предоставлять данные о киносеансах, доступных в ближайшее время.
1. ОПИСАНИЯ СРЕДСТВ РАЗРАБОТКИ ИНФОРМАЦИОННЫХ СИСТЕМ
1.1 Используемые средства реализации информационной системы
Любая информационная система предназначена для своевременного обеспечения данными о системе. Она имеет системы сбора, накопления, поиска и передачи информации.
Существуют различные методы реализации информационных систем классифицируемые по степени автоматизации: ручные, автоматические и автоматизированные.
Автоматизированные информационные системы предполагают участия в процессе обработки информации человека и технических средств, причём главная роль по обработке информации отводится компьютеру. Именно этот класс систем соответствует современному представлению о информационных системах.
Для реализации информационной системы будет создан автоматизированный программный комплекс на платформе.NET Framework написанный на языке программирования C# при помощи объектно-ориентированного подхода в среде разработки Visual Studio 2019, с использованием шаблонов проектирования и слоя доступа к данным, который будет взаимодействовать с СУБД (система управления базами данных) MySQL. Для реализации пользовательского интерфейса будет использована технология WPF (Windows Presentation Foundation).
.NET Framework - программная платформа, выпущенная компанией Microsoft в 2002 году. Основой платформы является общеязыковая среда исполнения Common Language Runtime (CLR), которая подходит для разных языков программирования. Функциональные возможности CLR доступны в любых языках программирования, использующих эту среду. Платформа.NET Framework поддерживает множество языков программирования, таких как C#, Visual Basic, Iron Python, C, C++ и пр. Благодаря тому-что программа сначала переводится компилятором в единый для.NET байт-код Common Intermediate Language (CIL). Затем код либо исполняется виртуальной машиной Common Language Runtime (CLR), либо транслируется утилитой NGen.exe в исполняемый код для конкретного целевого процессора. Благодаря CLR встроенный в неё JIT (Just-in-time) компилятор преобразует промежуточный байт-код в машинные коды нужного процессора [4, с. 126].
1.2 Основы объектно-ориентированного представления
Для создания приложения использовались принципы и постулаты объектно-ориентированного программирования. Рассмотрение любой сложной задачи требует техники декомпозиции - разбиение на составляющие элементы. Известны две схемы декомпозиции: алгоритмическая декомпозиция и объектно-ориентированная декомпозиция. В основе алгоритмической декомпозиции лежит разбиение по действиям - алгоритмам. Эта схема обычно применяется в процедурных языках программирования.
Объектно-ориентированная декомпозиция обеспечивает разбиение по автономным лицам - объектам реального (или виртуального) мира. Объектно-ориентированное программирование использует в качестве базовых элементов взаимодействие объектов.
Объект - обладающий именем набор данных, физически находящихся в памяти компьютера, и методов, имеющих доступ к ним. Любой объект относится к определенному классу, а в классе дается обобщённого описание некоторого набора родственных объектов. Следовательно, класс - это ряд «чертежей», по которым строится объект.
Концептуальной базой объектно-ориентированного стиля программирования является объектная модель, в основе которой лежит четыре главных принципа:
абстрагирование;
инкапсуляция;
модульность;
иерархическая организация [2, с. 25].
Абстрагирование сводится к формированию абстракций. Каждая абстракция фиксирует основные характеристики объекта, которые отличают его от других видов объектов и, таким образом, четко определяет его концептуальные границы.
Абстракция концентрирует внимание на внешнем представлении объекта, позволяет отделить основное в поведении объекта от его реализации. Рассмотреть абстракцию можно на примере автомобиля. При представлении автомобиля люди вспоминают его в виде определенного объекта, не в виде набора множества различных деталей. В этом случае детали являются абстракцией. Таким образом объект можно использовать как единое целое.
Абстракция отражает суть объекта, опуская второстепенные детали. Выбор и правильное описание набора абстракция является главной задачей объектно-ориентированной разработки.
Инкапсуляция и абстракция - взаимодополняющие понятия: абстракция выделяет внешнее поведение объекта, а инкапсуляция содержит и скрывает реализацию поведения объекта. Сокрытие данных является основной частью инкапсуляции.
Инкапсуляция является процессом разделения элементов абстракции на разделы различной видимости. Она служит для отделения интерфейса от её реализации.
При разработке программы на объектно-ориентированном языке проблемой является наличие большого числа абстракций (классов и интерфейсов). И так как все абстракции взаимодействуют между собой, то ситуация усугубляется сложностью построения зависимостей между ними. Он позволяет разбивать программу на части, что облегчает процесс объектной декомпозиции системы. Изменение реализации модуля должно происходить без изменения реализации других модулей и без влияния на их поведение. Модули выполняют роль контейнеров, которые группируют классы и интерфейсы, а также глобальные объекты и данные
Иерархия - это упорядочение абстракций путем расположения их по уровням. Используются два вида иерархии: структуры классов и структуры объектов. Отношения структуры классов строится на основе наследования.
Наследование - процесс, посредством которого один класс может наследовать свойства другого класса и добавлять к ним свойства и методы, которые характерны только для него.
Наследование делится на одиночное и множественное.
Одиночное - подкласс имеет только один суперкласс.
Множественное - класс может иметь любое количество предков.
1.3 Доступ к данным с помощью LINQ to SQL
Технологии доступа к данным являются прослойкой между API конкретного сервера и приложением пользователя, предоставляя программисту простой унифицированный механизм работы с данными.
На сегодняшний день существует множество технологий доступа к данным, таких как BDE, OLE, ODBC, АDО, и до сих пор разрабатываются новые, более надежные, удобные в работе и более быстродействующие технологии.
Механизмы доступа к базам данных снижают сложность обмена информацией с базами, однако интерпретация результатов их работы также достаточно трудоемка. Поэтому реализованы наборы компонентов, предназначенные для взаимодействия с механизмами обмена.
Таким образом, можно выделить несколько субъектов, участвующих в движении информации между базой данных и приложением (например, пользовательским интерфейсом):
- интерфейсная часть приложения или его программная часть, манипулирующая информацией, хранимой в базе данных;
- компоненты, обеспечивающие связь приложения с механизмом доступа к базе данных;
- механизм доступа к базе данных;
- база данных.
Одним из инструментов для доступа к данных является LINQ to SQL работающая с технологией ADO.NET даёт возможность напрямую использовать модель программирования LINQ с существующей схемой базы данных. LINQ to SQL позволяет разработчикам создавать.NET Framework классы, представляющие данные. Вместо сопоставления с концептуальной моделью эти созданные классы указывают напрямую на таблицы базы данных, представления, хранимые процедуры и определяемые пользователем функции.
1.4 Слой для доступа к данным Data Access Object
Так как приложение взаимодействует с базой данных, для организации слоя доступа к ней будет применён шаблон проектирования Data Access Object.
Способ доступа к данным бывает разным и зависит от источника данных. Способ доступа к персистентному хранилищу, например, к базе данных, очень зависит от типа этого хранилища (реляционные базы данных, объектно-ориентированные базы данных, однородные или «плоские» файлы и т.д.) и от конкретной реализации.
Data Access Object (DAO) управляет соединением с источником данных для получения и записи данных. DAO реализует необходимый для работы с источником данных механизм доступа. Источником данных может быть персистентное хранилище (например, MySQL), внешняя служба, репозиторий, или бизнес-служба. Использующие DAO бизнес-компоненты работают с более простым интерфейсом, предоставляемым объектом DAO своим клиентам. DAO полностью скрывает детали реализации источника данных от клиентов. Поскольку при изменениях реализации источника данных представляемый DAO интерфейс не изменяется, этот паттерн дает возможность DAO принимать различные схемы хранилищ без влияния на клиентов или бизнес-компоненты. По существу, DAO выполняет функцию адаптера между компонентом и источником данных.
На рисунке 1.1 представлена диаграмма последовательности действий, показывающая взаимодействия между различными участниками в данном паттерне.
BusinessObject представляет клиента данных. Это объект, который нуждается в доступе к источнику данных для получения и сохранения данных.
DataAccessObject является первичным объектом данного паттерна. DataAccessObject абстрагирует используемую реализацию доступа к данным для BusinessObject, обеспечивая прозрачный доступ к источнику данных. BusinessObject передает также ответственность за выполнение операций загрузки и сохранения данных объекту DataAccessObject.
TransferObject представляет собой объект, используемый для передачи данных. DataAccessObject может использовать TransferObject для возврата данных клиенту. DataAccessObject может также принимать данные от клиента в объекте Transfer Object для их обновления в источнике данных.
Рисунок 1.1 - Диаграмма последовательности действий паттерна Data Access Object
DataSource представляет реализацию источника данных. Источником данных может быть база данных, например, MySQL, XML-репозиторий, система плоских файлов и др.
1.5 Технологии для решения задачи
Для создания графических интерфейсов с помощью платформы.NET применяются технологии Window Forms и WPF [5].
1.5.1 Windows Forms - это набор управляемых библиотек в.NET Framework, предназначенный для разработки многофункциональных клиентских приложений. Это графический программный интерфейс приложения для отображения данных и управления пользовательскими взаимодействиями с более простым развертыванием и повышенной безопасностью в клиентских приложениях. Каждый элемент управления в приложении Windows Forms является конкретным экземпляром класса. Компоновка элемента управления в графическом интерфейсе и его поведение управляются с помощью методов и методов доступа.
1.5.2 Windows Presentation Foundation (WPF) - это среда разработки, используемая для создания настольного приложения. Это часть.NET Framework. WPF имеет независимый от разрешения и рендеринг на основе векторов, который помогает работать с современным графическим оборудованием. В этих рамках пользовательский интерфейс приложения разработан на языке XAML, а логика приложения написана на языке программирования C#.
2. ОПИСАНИЕ РЕАЛИЗАЦИИ ИНФОРМАЦИОННОЙ СИСТЕМЫ
2.1 Проектирование базы данных
Для создания приложения спроектирована база данных и определены реляционные отношения между таблицами. Смоделированные связи таблиц базы данных представлены в виде диаграммы на рисунке 2.1.
Рисунок 2.1 - Диаграмма базы данных
На этапе создания таблиц произведена нормализация. База данных содержит таблицы: Users(пользователи), Film (фильм), Time_category(категория времени), Ticket(Билет), Cinema (кинотеатр), Sale(покупка), length_category (категория длительности), place_category (категория ряда).
Таблица «Users» имеет атрибуты: «user_id», «login», «password», «fullname», «birth_year». Отношение находится впервой нормальной форме.
Таблица «Film» имеет атрибуты: «film_id», «name», «length», «description», «coef». Отношение находится в первой нормальной форме.
Таблица «Cinema» имеет атрибуты: «cinema_id», «name», «place_category1», «place_category2», «place_category3», «description» Отношение находится в первой нормальной форме.