Выбранные программные средства

Министерство образования Республики Беларусь

ВИТЕБСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра «ИСАП»

 

 

  

 

ОТЧЁТ

по преддипломной практике

 

Выполнил: студент группы Ит-5                                                                    

                                                                Шмарина В.А.                                                                                                                                                                                                                             

                                                                Руководитель от университета:

                                  Ринейский К.Н.                                            

                                                             Руководитель от предприятия:          

                                                    Каф. ИСАП УО «ВГТУ»:

                              Казаков В.Е.

                                   

Витебск 2021


Оглавление

                                                                                                                              

Введение. 2

1. Анализ объекта.....................................................................................................3

1.1. Описание предметной области.................................................................3

1.2 Построение концептуальной модели предметной области................7

2. Постановка задачи...............................................................................................8

2.1 Определение требований к программной системе................................8

2.2 Описание аналогов системы..................................................................10

2.3 Обзор и обоснование выбора инструментальных средств.................13

3. Проектирование.................................................................................................18

3.1 Разработка архитектуры программного продукта..............................18

3.2 Проектирование структур хранения данных........................................25

3.3 Описание реализации вариантов использования...............................30

Заключение. 32

Литература. 33

Приложение. 34

 

 

Введение

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

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

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

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

 

 

Описание предметной области

Сайт (от англ. website: web — «паутина, сеть» и site — «место», буквально «место, сегмент, часть в сети») — система электронных документов (файлов данных и кода) частного лица или организации в компьютерной сети под общим адресом.

Глобальная сеть состоит из всех сайтов, доступных для общего пользования. Все странички каждого сайта объединяются одним корневым адресом (то, что мы набираем в адресной строке браузера), тематикой, системой и дизайном. Каждая страница веб-сайта это текстовый документ, который написан на языке программирования (HTML, XHTML, PHP или другие). Эти текстовые файлы загружаются на ваш компьютер, обрабатываются браузером и отображаются на мониторе компьютера в виде страницы сайта. Язык программирования позволяет редактировать текст странички, добавлять ссылки, вставлять картинки, звуковые и видео файлы. Страницы сайтов могут быть как простыми наборами информации - тексты и картинки, так и сложными, с огромным количеством функций, которые управляются различными программами.

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

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

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

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

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

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

Цель веб-приложения – формировать систему знаний, воспитывать у обучающихся интерес к обучению и умственной деятельности.

Пусть требуется разработать информационную систему для изучения математики. Система должна содержать темы на выбор студента. Каждая тема характеризуется следующими параметрами:

· уникальный номер;

· раздел;

· название темы.

При регистрации студента заносятся следующие сведения:

· имя;

· фамилия;

· логин;

· пароль.

Каждому студенту присваивается уникальный номер.

Каждый студент может одновременно выбрать только 3 темы. Студент не должен одновременно проходить более одной темы.

В случае выбора студентом темы, должны быть записаны следующие сведения:

· уникальный номер студента;

· раздел;

· название темы.

С данной информационной системой должны работать следующие группы пользователей:

· преподаватель;

· студент.

При работе с системой преподаватель должен иметь возможность решать следующие задачи:

1. Добавлять новые темы.

2. Удалять темы.

3. Редактировать темы.

4. Оценивать пройденные студентами темы.

5. Просматривать количество выбранных тем.

6. Просмотр рейтинга студентов.

Студент должен иметь возможность решать следующие задачи:

1. Просматривать список тем, то есть перечень всех областей знаний.

2. По выбранной области знаний получить полный перечень тем, которые числятся в системе.

3. Проходить выбранную тему.

4. Просмотр оценок.

Таким образом выглядит диаграмма классов:

Рисунок 1.1.1. – Диаграмма классов

 

 

Построение концептуальной модели предметной области

Концептуальная модель состоит из студента и преподавателя. Студент регистрируется, посещает веб-приложение, просматривает список тем, выбирает темы и проходит их. Преподаватель выполняет вход под своим логином и паролем, также может оценивать студентов, добавлять, изменять и удалять темы.

Рисунок 1.2.1. – концептуальная модель предметной области

 

 

Постановка задачи

Определение требований к программной системе

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

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

Неправильное понимание требований заказчиком, пользователями и разработчиками связано обычно с различными взглядами на роль требуемого ПС в среде его использования. Поэтому важной задачей при создании определения требований является установление контекста использования ПС, включающего связи между этим ПС, аппаратурой и людьми. Лучше всего этот контекст в определении требований представить в графической форме (в виде диаграмм) с добавлением описаний сущностей используемых объектов (блоков ПС, компонент аппаратуры, персонала и т.п.) и характеристики связей между ними.

Рисунок 2.1.1 – UML-диаграмма прецедентов

 

Также необходимо составить спецификации требований.

Спецификации требований:

1) Перечень зарегистрированных студентов

2) Перечень тем

3) Добавление тем

4) Удаление тем

5) Изменение тем

6) Прохождение выбранной темы

7) Оценивание студента

 

Описание аналогов системы

У данной системы существует несколько аналогов. Все они сходны по структуре и организации, а также всех их объединяет сфера применения -Internet. Вот несколько из наиболее известных:

· Page Builder

· SW-Soft SiteBuilder

· Google Page Creator

· Online Website Builder

Основные отличия данной системы от вышеперечисленных таковы:

1. Данная система хранит все данные web-сайта в собственной базе данных, что позволяет создавать динамические страницы, то есть страницы, содержимое которых генерируется сервером. Это позволяет пользователям создавать такие страницы как гостевая книга, форма отправки данных или др.

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

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

Выбранные программные средства

Для реализации системы выбраны следующие программные средства и технологии.

Web-сервер Apache: Данный web-сервер имеет огромное распространение в среде Unix и Windows, большинство Unix-серверов работают именно через Apache. По данным компании Netcraft общее число Web-узлов, работающих под его управлением, к концу 1998 г. достигло 2 млн. (55% общего числа узлов) и постоянно растет. Для сравнения: на долю серверов Microsoft приходится 25%, Netscape -7%. Будучи бесплатной открытой программой, предназначенной для бесплатных же Unix-систем (FreeBSD, Linux и др.), Apache по функциональным возможностям и надежности не уступает коммерческим серверам, а широкие возможности конфигурирования позволяют настроить его для работы практически с любой конкретной системой. Существуют локализации сервера для различных языков, в том числе и для русского.

Apache http-сервер легко конфигурируется и имеет множество настроек различного уровня для работы с серверным содержимым.

СУБД Cache: CACHE -- это постреляционная СУБД, уникальное качество которой заключается в равноправной и эффективной поддержке сразу трех способов работы с данными:

· Объектного;

· Реляционного, на основе SQL;

· Высокопроизводительного и гибкого многомерного метода доступа к данным.

Кроме того, CACHE обеспечивает быструю и эффективную разработку Web-приложений, поддержку механизма транзакций при работе с данными, легкую масштабируемость приложений, предъявляя, при этом, крайне скромные требования к аппаратным ресурсам, используемым системой и администрированию. CACHE поддерживает большинство платформ, используемых для создания промышленных приложений - от Windows, OpenVMS, Unix/Linux до Mac OS X. На ее основе разработаны различные системы, оперирующие как малыми, так и большими массивами данных (порядка нескольких терабайт), с которыми одновременно могут работать до 50 000 пользователей.

Cache Server Pages: Для разработки Web-приложений в Cache используется технология серверных страниц, т.е. создаются специальные страницы, которые заполняются данными немедленно ("on-the-fly"), как только они запрашиваются браузером. Отличие серверных страниц Cache (Cache Server Pages) от других технологий разработки Web-приложений состоит в том, что они хранятся на сервере данных Cache, так сказать, рядом с используемыми данными. При обращении к CSP-странице выполняются методы, генерирующие HTML или XML. Чтобы подсоединиться к Web-серверу, используется стандарт API, обеспечивающий высокую скорость. Такая архитектура позволяет создавать высокопроизводительные Internet- или Intranet-приложения.

Если данная система будет установлена в среде Unix, то для полноценной функциональности требуется, чтобы на сервере были также установлены следующие программы:

· Sendmail: программа для отправки электронных писем;

· ImageMagick: набор программ для обработки цифровых изображений.

Таким образом, система предусмотрена для работы под управлением операционных систем Unix или Windows с установленным программным обеспечением, перечисленным выше. Для связки Apache + Cache Server Pages необходима дополнительная настройка, детали которой зависят от выбранной операционной системы. Все подробности описаны в документации, прилагаемой к СУБД Cache.

 

 

Обзор и обоснование выбора инструментальных средств

HTML (от англ. HyperText Markup Language — «язык гипертекстовой разметки») — стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц содержат описание разметки на языке HTML. Язык HTML интерпретируется браузерами и отображается в виде документа в удобной для человека форме.

Язык HTML был разработан британским учёным Тимом Бернерсом-Ли приблизительно в 1986—1991 годах в стенах Европейского Центра ядерных исследований в Женеве (Швейцария). HTML создавался как язык для обмена научной и технической документацией, пригодный для использования людьми, не являющимися специалистами в области вёрстки.

С помощью HTML можно легко создать относительно простой, но красиво оформленный документ. Помимо упрощения структуры документа, в HTML внесена поддержка гипертекста. Мультимедийные возможности были добавлены позже.

CSS (англ. Cascading Style Sheetsкаскадные таблицы стилей) — формальный язык описания внешнего вида документа, написанного с использованием языка разметки.

Преимущественно используется как средство описания, оформления внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML.

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

документа, предоставить большую гибкость и возможность управления его представлением, а также уменьшить сложность и повторяемость в структурном содержимом.

JavaScript — прототипно-ориентированный сценарный язык программирования.

JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.

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

PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста) — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений.

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

Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. Основные из них:

- автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;

- взаимодействие с большим количеством различных систем управления базами данных (в том числе MySQL);

- обработка файлов, загружаемых на сервер;

- работа с cookies и сессиями.

Обоснование выбора СУБД MySQL

Система управления базами данных (СУБД) — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.

Все современные СУБД имеют:

- визуальные средства создание таблиц, форм, отчетов;

- доступ к данным серверных СУБД;

- создание приложений выполняющих функции WEB – браузеров и размещение данных в Internet;

- объектно-ориентированный язык;

- поддержку SQL.

MySQL — свободная реляционная система управления базами данных. MySQL имеет двойное лицензирование. MySQL может распространяться в соответствии с условиями лицензии GPL. Однако по условиям GPL, если какая-либо программа включает исходные коды MySQL, то она тоже должна распространяться по лицензии GPL. Это может расходиться с планами разработчиков, не желающих открывать исходные тексты своих программ. Для таких случаев предусмотрена коммерческая лицензия, которая также обеспечивает качественную сервисную поддержку.

MySQL портирована на большое количество платформ: Linux, Mac OS X, Windows 95, Windows 98, Windows NT, Windows 2000,Windows XP, Windows Server 2003, WinCE, Windows Vista и Windows 7.

MySQL имеет API для языков Delphi, C, C++, Java, Perl, PHP, Python, библиотеки для языков платформы .NET.

PHP это скриптовый server-side язык программирования, предназначенный в основном для включения в html страницу и выполняемый сервером перед выдачей страницы браузеру. PHP очень похож на ASP, но приспособлен к unix-like системам и чаще всего употребляется с web-сервером apache, хотя может работать и с MS IIS и в принципе с любым другим веб-сервером. Кроме того, PHP является объектно-ориентированным. Основное преимущество PHP - простота, гибкость и скорость выполнения. Теперь, чтобы выложить на сайт новую статью или просто новость, я всеголишь добавляю новую запись на sql сервере с помощью MS Access или web-интерфейса sql, написанного кстати тоже на php, а при запросе страницы пользователем соответствующий php-скрипт выуживает из sql то, что ему надо и выдает уже красиво оформленную, готовую страницу. SQL. Вот это является еще одним преимуществом PHP, такое впечатление, что PHP просто рожден существовать в связке apache+php+sql.

На PHP можно сделать все, что можно сделать с помощью CGI-программ. Обрабатывать данные из форм, генерировать динамические страницы, получать и посылать cookies, загружать файлы, создавать файлы и папки, рисовать динамические картинки, отсылать электронную почту, и т.д. и т.п. Кроме того, в PHP включена поддержка многих баз данных (databases), что серьёзно расширяет возможности написания по-настоящему динамических Web-приложений. Плюс ко всему вышесказанному, PHP понимает протоколы IMAP, SNMP, NNTP, POP3 и HTTP, а также имеет возможность работать ссокетами и общаться по другим протоколам.сокетами и общаться по другим протоколам.

Синтаксис PHP имеет легкую читабельность и в целом понятен для восприятия. Те, кому приходилось программировать, очень быстро смогут начать писать программы на PHP. В этом языке нет строгой типизации данных и нет необходимости в действиях по выделению (или освобождению) памяти. Программы, написанные на PHP, достаточно просты для понимания

Написанный PHP - код, легко зрительно прочитать и понять, в отличие от Perl-программ. Плюс ко всему, достаточно высокая скорость работы, что особенно сказалось при переходе на четвертую версию, а уже вышла и пятая.

Преимущества PHP WEB-разработчикам нет необходимости говорить, что web-страницы - это не только текст и картинки. Достойный внимания сайт должен поддерживать некоторый уровень интерактивности с пользователем: всевозможные голосования, поиск информации, продажа продуктов, конференции, форум и т.п. Традиционно все это реализовывалось CGI-скриптами, написанными на Perl. Но CGI- скрипты очень плохо масштабируемы. То есть, каждый новый вызов CGI, требует от ядра порождения нового процесса, а это занимает процессорное время и существенно тратит оперативную память. Большое кол-во хакерских атак на сервера, основываются именно на многократных вызовах CGI, что приводит к загрузке ядра процессора и оперативной памяти. PHP предлагает другой вариант - он работает как часть Web-сервера, и этим самым похож на ASP от Microsoft.

 

Проектирование

Разработка архитектуры программного продукта

Архитектура программного обеспечения (software architecture) представляет собой совокупность важнейших решений об организации программной системы. Она включает в себя:

· структурные элементы и их интерфейсы;

· соединения элементов во всё более крупные системы;

· архитектурный стиль, который определяет способ организации элементов, и их соединений.

Архитектура ПО, как отмечалось ранее, является одним из важных объектов проектирования программных систем. Она имеет несколько видов, как типы чертежей в строительстве зданий. В онтологии, установленной ANSI / IEEE 1471—2000, виды архитектур являются экземплярами точки зрения некоторого множества заинтересованных лиц.

Архитектурный вид состоит из двух компонентов:

· Элементы;

· Отношения между элементами.

Архитектурные виды можно разделить на три основных типа:

1. Модульные (module views), которые представляют систему как структуру из различных программных блоков.

2. Компоненты-и-коннекторы (component-and-connector views) — показывают систему как структуру из параллельно запущенных элементов (компонентов) и способов их взаимодействия (коннекторов).

3. Размещение (allocation views), отображающий размещение элементов системы во внешних средах.

Примеры модульных видов:

· Декомпозиция (decomposition view) — состоит из модулей в контексте отношения «является подмодулем»;

· Использование (uses view) — состоит из модулей в контексте отношения «использует» (т.е. один модуль использует сервисы другого);

· Уровней (layered view) — показывает структуру, в которой связанные по функциональности модули объединены в группы (уровни);

· Классов/обобщений (class/generalization view) — состоит из классов, связанных через отношения «наследуется от» и «является экземпляром».

Примеры видов компонентов-и-коннекторов:

· Процессный (process view) — состоит из процессов, соединённых операциями коммуникации, синхронизации и/или исключения;

· Параллельный (concurrency view) — состоит из компонентов и коннекторов, где коннекторы представляют собой «логические потоки»;

· Обмена данными (shared-data (repository) view) — состоит из компонентов и коннекторов, которые создают, сохраняют и получают постоянные данные;

· Клиент-серверный (client-server view) — состоит из взаимодействующих клиентов и серверов с коннектором между ними (например, протоколов и общих сообщений).

Примеры видов размещения:

· Развертывание (deployment view) — состоит из программных элементов, их размещения на физических носителях и коммуникационных элементов;

· Внедрение (implementation view) — состоит из программных элементов и их соответствия файловым структурам в различных средах (разработческой, интеграционной и т.д.);

· Распределение работы (work assignment view) — состоит из модулей и описания того, кто ответственен за внедрение каждого из них.

Архитектурные шаблоны

Для упорядочения описания архитектур применяются архитектурные шаблоны (паттерны). Каждый шаблон решает свои задачи и имеет свои недостатки.

Наиболее распространенные типы архитектурных шаблонов:

1) Многоуровневый шаблон (Layered pattern). Система разбивается на уровни, которые на диаграмме изображаются один над другим. Каждый уровень может вызывать только уровень на 1 ниже него. Таким образом, разработку каждого уровня можно вести относительно независимо, что повышает модифицируемость системы. Недостатками данного подхода являются усложнение системы и снижение производительности.

2) Шаблон посредника (Broker pattern). Если в системе присутствует большое количество модулей, их прямое взаимодействие друг с другом становится слишком сложным. Для решения этой проблемы вводится посредник (например, шина данных), по которой модули общаются друг с другом. Таким образом, повышается функциональная совместимость модулей системы. Все недостатки вытекают из наличия посредника: он понижает производительность, его недоступность может сделать недоступной всю систему, он может стать объектом атак и узким местом системы.

3) Шаблон «Модель-Вид-Контроллер» (Model-View-Controller pattern). Т.к. требования к интерфейсу меняются чаще всего, то возникает потребность часто его модифицировать, при этом сохраняя корректное взаимодействие с данными (чтение, сохранение). Для этого в шаблоне Model-View-Controller (MVC) интерфейс отделён от данных. Такой подход позволяет менять интерфейсы, равно как и создавать их разные варианты. В MVC система разделена на следующие составляющие:

a) Модель, хранящую и обрабатывающую данные;

b) Вид, отображающий часть данных и взаимодействующий с пользователем;

c) Контроллер, являющийся посредником между видами и моделью.

Концепция MVC имеет и свои недостатки. В частности, из-за усложнения взаимодействия падает скорость работы системы.

4) Клиент-серверный шаблон (Client-Server pattern). Если есть ограниченное число ресурсов, к которым требуется ограниченный правами доступ большого числа потребителей, то удобно реализовать клиент-серверную архитектуру. Такой подход повышает масштабируемость и доступность системы. Но при этом сервер может стать узким местом системы. При его недоступности становится недоступна вся система.

Необходимо использовать одну из следующих типов архитектур:

1) Монолитную, которая реализуется в виде единой программы (файла), без вспомогательных файлов и модулей;

2) Клиент-серверную или двухзвенную, состоящую из двух частей (приложений) – клиентской и серверной. В ней сервер отвечает на клиентские запросы напрямую и в полном объеме, используя только собственные ресурсы. Общий вид такой архитектуры представлен нар рис. 3.1.1. Запросы к серверу (базе данных) могут быть реализованы, например, на языке MySQL.

Рисунок 3.1.1 – двухзвенный тип архитектуры

 

3) Трехзвенную, которая реализуется на основе модели сервера приложений, где сетевое приложение разделено на две и более частей, каждая из которых может выполняться на отдельном компьютере. Выделенные части приложения взаимодействуют друг с другом, обмениваясь сообщениями в заранее согласованном формате, как показано на рис. 5.2. При этом также может быть использован язык MySQL или аналогичные средства.

Рисунок 3.1.2 – трёхзвенный тип архитектуры

 

4) Сервис-ориентированную (на основе веб-cервиса), обеспечивающую распределенное взаимодействие в среде Интернет. Взаимодействие осуществляется посредством HTTP протокола (Hyper Text Transfer Protocol). Веб-сервис – это программа, которая реализуется на веб-сервере. В сервис-ориентированной системе выполняются следующие операции.

a) Владелец веб-сервиса размещает его на сервере, а также определяет формат запросов к сервису и его ответов.

b) Программа-потребитель веб-сервиса делает запрос на выполнение функции, предоставляемой сервисом.

c) Веб-сервис отрабатывает запрос и возвращает ответ в заявленной ранее форме.

5) Распределенную, которая использует не менее четырех уровней.

1) представления данных (пользовательский уровень);

2) обработки данных;

3) управления данными;

4) хранения данных.

Уровень представления данных - единственный доступный конечному пользователю. Клиентское приложение должно обеспечивать выполнение следующих функций:

- получение данных;

- представление данных для просмотра пользователем;

- редактирование данных;

- проверка корректности введенных данных;

- сохранение выполненных изменений;

- обработка исключительных ситуаций и отображение информации об ошибках для пользователя.

Функциями уровня обработки данных являются следующие:

- обработка потоков данных в соответствии с некоторыми правилами;

- взаимодействие с уровнем представления данных для получения запросов и возвращения ответов;

- взаимодействие с уровнем хранения данных для передачи запросов и получения ответов.

К функциям уровня управления данными относятся:

- управление частями распределенного приложения;

- управление соединениями и каналами связи между частями приложения;

- управление потоками данных между клиентами и серверами и между серверами;

- управление нагрузкой;

- реализация системных служб приложения.

Необходимо отметить, что часто уровень управления данными создается на основе готовых решений, поставляемых на рынок программного обеспечения различными производителями. Так, для платформы Windows, - используются разнообразные инструменты: технология COM+ (развитие технологии Microsoft Transaction Server, MTS), технология обработки очередей сообщений MSMQ, технология Microsoft BizTalk и др.

Уровень хранения данных объединяет серверы SQL и базы данных, используемые приложением. Он обеспечивает решение следующих задач:

- хранение данных в базе и поддержание их в работоспособном состоянии;

- обработка запросов уровня обработки данных и возврат результатов;

- реализация части логики распределенного приложения;

- управление распределенными базами данных при помощи административного инструментария серверов базы данных.

Для лучшего представления архитектуры необходима диаграмма развёртывания.

Рисунок 3.1.3 – диаграмма развёртывания

 

 

Проектирование структур хранения данных

Хранилища данных (Data Warehouse) предназначены для хранения данных, которые редко меняются, но на основе которых часто требуется выполнение сложных запросов. Обычно они ориентированы на выполнение аналитических запросов, которые обеспечивают поддержку принятия решений для руководителей и менеджеров. Хранилища данных разгружают промышленные БД, и тем самым позволяют пользователям более эффективно и быстро извлекать необходимую информацию. К проектированию хранилищ данных предъявляются следующие требования:

Структура данных должна быть понятна пользователям;

Должны быть выделены статические данные, которые модифицируются по расписанию: ежедневно, еженедельно, ежеквартально;

Должны быть упрощены требования к запросам с целью исключения запросов, которые могли бы требовать множественных утверждений SQL в традиционных реляционных СУБД;

Должна быть обеспечена поддержка сложных запросов SQL, которые требуют последовательной обработки тысяч или миллионов записей. Эти требования существенно отличают структуру реляционных СУБД и хранилищ данных. Нормализация данных в реляционных СУБД приводит к созданию множества связанных между собой таблиц. В результате выполнение сложных запросов неизбежно приводит к объединению многих таблиц, что существенно увеличивает время отклика. Проектирование хранилища данных подразумевает создание денормализованной структуры данных (допускается избыточность данных и возможность возникновения аномалий при манипулировании данными), ориентированной в первую очередь на высокую производительность при выполнении аналитических запросов. Нормализация делает модель хранилища слишком сложной, затрудняет ее понимание и ухудшает эффективность выполнения запроса.

Для эффективного проектирования хранилищ данных ERwin использует размерную модель (Dimensional). Dimensional - методология проектирования, специально предназначенная для разработки хранилищ данных. Моделирование Dimensional сходно с моделированием связей и сущностей для реляционной модели, но отличается целями. Реляционная модель акцентируется на целостности и эффективности ввода данных. Размерная модель (Dimensional) ориентирована в первую очередь на выполнение сложных запросов к БД.

В размерном моделировании принят стандарт модели, называемый схемой "звезда" (star schema), которая обеспечивает высокую скорость выполнения запроса посредством денормализации и разделения данных. Невозможно создать универсальную денормализованную структуру данных, обеспечивающую высокую производительность при выполнении любого аналитического запроса. Поэтому схема "звезда" строится так, чтобы обеспечить наивысшую производительность при выполнении одного самого важного запроса либо группы похожих запросов.

Схема "звезда" обычно содержит одну большую таблицу, называемую таблицей факта (fact table), помещенную в центр, и окружающие ее меньшие таблицы, называемые таблицами размерности (dimensional table), соединенные с таблицей факта в виде звезды радиальными связями. В этих связях таблицы размерности являются родительскими, таблица факта - дочерней. Схема "звезда" может иметь также консольные таблицы (outrigger table), присоединенные к таблице размерности. Консольные таблицы являются родительскими, таблицы размерности - дочерними.

Прежде чем создать БД со схемой типа звезды, необходимо проанализировать бизнес-правила предметной области с целью выяснения центрального вопроса, ответ на который наиболее важен. Все прочие вопросы должны быть объединены вокруг этого основного вопроса, и моделирование должно начинаться с этого основного вопроса. Данные, необходимые для ответа на этот вопрос, должны быть помещены в центральную таблицу модели - таблицу факта. Например, если необходимо создавать отчеты об общей сумме дохода от продаж за определенный период как по типу товара, так и по продавцам, следует разрабатывать модель так, чтобы каждая запись в таблице факта представляла сумму продаж, осуществленных тем или иным продавцом, с указанием доходов по каждому покупателю и типов проданных товаров. В примере таблица факта содержит суммарные данные о продажах (SALE), а таблицы размерности содержат данные о заказчике и заказах (CUSTOMER), продуктах (PRODUCT), продавцах (SALESPEOPLE) и периодах времени (TIME).

Рис. 3.2.1. Схема звезда

Таблица факта является центральной таблицей в схеме "звезда". Она может состоять из миллионов строк и содержать суммирующие или фактические данные, которые могут помочь ответить на требуемые вопросы. Она соединяет данные, которые хранились бы во многих таблицах традиционных реляционных БД. Таблица факта и таблицы размерности связаны идентифицирующими связями, при этом первичные ключи таблицы размерности мигрируют в таблицу факта в качестве внешних ключей. В размерной модели направления связей явно не показываются - они определяются типом таблиц. Первичный ключ таблицы факта целиком состоит из первичных ключей всех таблиц размерности. В примере (таблица факта SALE) первичный ключ составлен из четырех внешних ключей: Customer ID, SalespeopleID, TimeID и ProductID.

Таблицы размерности имеют меньшее количество строк, чем таблицы факта, и содержат описательную информацию. Эти таблицы позволяют пользователю быстро переходить от таблицы факта к дополнительной информации.

В примере на рис. 3.2.1. таблица SALE - таблица факта; CUSTOMER, TIME, SALESPEOPLE и PRODUCT - таблицы размерности, которые позволяют быстро извлекать информацию о том, кто и когда сделал покупку, какой продавец и на какую сумму продал и какие именно товары были проданы.

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

Схема "снежинка" обычно препятствует эффективности, потому что требует объединения многих таблиц для построения результирующего набора данных, что увеличивает время выполнения запроса. Поэтому при проектировании не следует злоупотреблять созданием множества консольных таблиц.

Если денормализованная таблица размерности получается слишком большой, при этом к части колонок запросы делаются чаще, чем к остальным, целесообразно для повышения эффективности разбить одиночную таблицу размерности на две отдельные таблицы размерности. Две полученные таблицы можно связать неидентифицирующей связью. В примере на рис. 3.2.1. таблица размерности PRODUCT'содержит как информацию о конкретном товаре, так и информацию о типах товаров. Если запросы, связанные с типами товаров, делаются чаще, чем по отдельным товарам, можно создать новую таблицу PRODUCT_TYPE и перенести в нее информацию о типах. В этом случае за счет того, что колонки, к которым наиболее часто обращаются запросы, переносятся в новую таблицу, уменьшается время выполнения запроса.

Рис. 3.2.2. Нормализация таблиц размерности

 

 

Описание реализации вариантов использования

Модель UML представляется несколькими уровнями. Самый верхний уровень, содержащий концептуальную модель, позволяет понять назначение системы и ее основные черты. Далее следует логическая модель, артефакты которой являются исходными данными для очередного уровня — физической модели.

Исходя из этого вначале создается модель в форме диаграммы вариантов использования (Use case diagram). Эта диаграмма описывает модель того, что система должна выполнять в процессе своего функционирования. Иными словами, модель вариантов использования определяет функциональное назначение создаваемой системы. В процессе проектирования и разработки диаграмма вариантов использования визуально отображает концептуальную модель проектируемой системы.

Диаграмма вариантов использования нужна для того, чтобы:

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

Проектируемая система на диаграмме вариантов использования представляется в виде некоторого количества сущностей — актеров, которые взаимодействуют с системой с помощью вариантов использования.

Актер {actor) или действующее лицо — сущность любого типа, которая взаимодействует с системой извне. В общем случае это может быть человек — пользователь, какое-либо техническое устройство или другая система, которым проектируемая система предоставляет некоторые сервисы.

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

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

Рисунок 3.3.1 – UML-диаграмма вариантов использования

 

 

Заключение

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

Во время прохождения практики показал себя, как способного и ответственного сотрудника. Вовремя справлялся с поставленными задачами. Индивидуальное задание, полученное на предприятии, было исполнено полностью и в срок.

Во время прохождения практики расширил свои знания в области информационных систем, web-программирования и др.

Считаю необходимым и дальше расширять свои знания в области web-программирования в частности на php.

При прохождении производственной практики особо ценными оказались знания полученные при изучении таких предметов, как Информатика и Системное и прикладное программирование.

 

 

Литература

1. htmlbook.ru [Электронный ресурс]: Htmlbook – Интернет-сайт – Режим доступа: http://htmlbook.ru/ – Интернет сайт для освоения базовых навыков верстки

2. Bootstrap [Электронный ресурс]: Bootstrap – Интернет-сайт – Режим доступа: https://getbootstrap.com/ – Bootstrap: на Английском, Примеры, Уроки, Документация, Генератор, Дизайн, CSS, HTML, JavaScript.

3. jQuery [Электронный ресурс]: The jQuery Foundation – Интернет-сайт – Режим доступа: http://jquery.com/ – jQuery.

4. w3school [Электронный ресурс]: w3c – Интернет-сайт – Режим доступа: http://www.w3schools.com/html/html5_intro.asp – HTML 5 Introduction

5. w3school [Электронный ресурс]: w3c – Интернет-сайт – Режим доступа: http://www.w3schools.com/css/css3_intro.asp - CSS 3 Introduction

6. Fontawesome.com [Электронный ресурс]: Font Awesome Free's Cheatsheet – Интернет-сайт – Режим доступа: https://fontawesome.com/cheatsheet?from=io - Font Awesome, самый популярный набор веб-иконок и инструментария

7. Google fonts [Электронный ресурс]: Google fonts – Интернет-сайт – Режим доступа: https://fonts.google.com/ – Google шрифты.

8. Slick slider [Электронный ресурс]: Slick slider – Интернет-сайт – Режим доступа: http://kenwheeler.github.io/slick/ – Карусель для нашего сайта.

9. RedBeanPHP [Электронный ресурс]: RedBeanPHP – Интернет-сайт – Режим доступа: https://redbeanphp.com/index.php?p=/crud – RedBeanPHP - это простая в использовании ORM для PHP

 


Дата добавления: 2021-07-19; просмотров: 91; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!