Для выполняемого курсового проекта предлагается использовать трехуровневую архитектуру. Такая трехуровневая модель – это архитектурное решение, которое предполагает необходимость четкого разделения программного обеспечения на три уровня:
· уровень представления (интерфейса),
· уровень приложения (бизнес-логики),
· уровень хранения данных (базы данных).
Графически разделение между этими уровнями можно отобразить следующим образом:
Рис. П.1.34. Трехуровневая архитектура программной системы
Как видно на рис. П.1.34, каждый уровень отвечает за свой участок работ. Уровень представления обеспечивает интерфейс с пользователем, обрабатывает воздействия пользователя и информирует уровень приложения
о наступлении системного события. Уровень приложения в свою очередь обрабатывает каким-либо образом данное событие и при необходимости вызывает некоторые методы у класса, относящегося к уровню хранения данных. Этот класс, в свою очередь, обеспечивает доступ к базе данных и совершает некоторые действия, которые закодированы в вызванном методе.
Здесь полезно повторить правила, о которых уже говорилось при построении диаграмм анализа и которые необходимо выполнять для поддержания трехуровневой архитектуры:
· Не допускаются на уровне представления вызовы методов и инициализации у классов, относящихся к уровню приложения; исключением являются лишь контроллеры, которые должны передавать информацию нужным классам. Следовательно, если вам необходимо что-то посчитать, получить список чего-либо, что-то удалить или создать, то сначала вы должны с помощью контроллера уведомить об этом уровень приложения, а уж затем классы уровня приложения сделают то, что необходимо.
· Все действия, связанные с хранением данных должны выполнять специальные классы, находящиеся на уровне хранения данных.
Программное обеспечение необходимо проектировать с учетом трехуровневой архитектуры. Поэтому рекомендуется сначала проектировать средний уровень (уровень приложения), а затем к нему последовательно подключается уровень представления и уровень хранения данных. Если объяснять более подробно, то в начале необходимо проектировать только те классы, которые отвечают непосредственно за наличие в системе необходимых данных. Другими словами, при проектировании уровня приложения не надо заострять внимание на том, как будут отображаться эти данные или как формы будут передавать данные для обработки, а также на том, как эти данные будут храниться. Необходимо лишь обеспечить наличие этих данных в системе и ничего другого.
В соответствии с заданием будущее приложение должно иметь трехуровневую архитектуру: веб-приложение (представление), базу данных (модель хранения данных) и логику на серверной части (бизнес-логика, приложение, контроллеры). Основная цель применения этой концепции состоит в отделении бизнес-логики (модели) от её визуализации (представления, вида). За счёт такого разделения повышается возможность повторного использования кода и возможность легкой адаптации приложения к новым задачам. Наиболее полезно применение данной концепции в тех случаях, когда разные пользователи должны видеть те же самые данные одновременно в различных контекстах и/или с различных точек зрения [6].