Автор работы: Пользователь скрыл имя, 18 Января 2013 в 03:48, дипломная работа
Разработанная программа является программным средством для реализации учета, контроля, анализа и оптимизации учебных материалов на кафедре ИТ-4. Необходимо было создать гибкую систему, позволяющую легко адаптироваться к нуждам кафедры, а так же которая легко могла бы быть интегрирована в уже существующую инфраструктуру кафедры. Программа разработана для работы с базой данных MySQL. Информационный модуль работы с базой данных написан на языке программирования PHP с использованием Фреймворка CodeIgniter.
Цель программы - обеспечить персонал кафедры комплексным и качественным программным продуктом для работы как с уже имеющимися базами данных учебных материалов, так и для внесения и учета новых поступлений.
Введение 5
1 Исследовательский раздел 7
1.1 Анализ существующих форматов представления данных 7
1.2. Обоснование выбора программно-аппаратных средств 13
1.2.1 Технология SQL – выбор СУБД 13
1.2.2 Выбор языка программирования – PHP 18
1.2.3 Выбор среды программирования – Фреймворк CodeIgniter 21
1.3 Развернутое техническое задание 22
1.3.1 Общие сведения 22
1.3.2 Назначение программы 22
Состав работ проектирования программного модуля 23
1.3.4 Требования к программе или программному изделию 24
1.3.4.1 Требования к функциональным характеристикам 24
1.3.4.2 Исходные данные 24
1.3.4.3 Организация входных и выходных данных 25
1.3.4.4 Требования к надежности 25
1.3.4.5 Требования к составу и параметрам технических средств 25
1.3.4.6 Требования к программной совместимости 26
1.3.5 Требования к программной документации 26
2 Специальный раздел 27
2.1 Разработка структурной схемы программы 27
2.2 Разработка структуры базы данных программы 30
2.3 Разработка модели информационных потоков базы данных 34
2.4 Разработка алгоритмического обеспечения 36
2.5 Разработка интерфейса программы 39
3 Технологический раздел 44
3.1 Технология разработки программы 44
3.1.1 Создание веб-страниц с помощью языка HTML 44
3.1.2 Основы работы web-сервера 45
3.1.3 Объектно-ориентированный подход к программированию на PHP 46
3.1.5 Инструментарий совместной разработки Subversion 50
3.1.6 Интегрированная среда разработки Zend Studio 51
3.2 Технология тестирования программы 51
3.2.1 Отладка кода с помощью Zend Debugger 58
3.2.2 Автоматизированное тестирование программы – SimpleTest 60
4 Безопасность жизнедеятельности 64
4.1 Анализ опасных и вредных факторов, возникающих при работе на ПЭВМ 64
4.1.1 Физиологические опасные и вредные факторы, действующие на операторов ПЭВМ 64
4.1.2 Психофизиологические опасные и вредные факторы 65
4.2 Разработка технических, организационных и профилактических мероприятий по каждому опасному и вредному фактору 66
4.2.1 Организация рабочего места оператора ЭВМ. Профилактика СДСН 66
4.2.2 Эргономика дисплея. Профилактика СДЗН 68
4.2.3 Эргономика устройств ввода информации. Профилактика СЗКП 70
4.2.4 Оптимальный режим работы. Профилактика СДПН 72
4.2.5 Контроль микроклимата в помещениях оборудованных ПЭВМ. Профилактика СНИК 73
4.3 Экологическая оценка и переработка (утилизация) материалов используемых в помещениях, где установлена компьютерная техника 75
4.3.1 Утилизация и переработка ртути в люминесцентных лампах 77
5 Экономическая часть 80
5.1 Планирование разработки автоматизированной системы с построением графика выполнения работ 80
5.1.1 Определение этапов и работ по созданию программного средства 80
5.1.2 Расчет трудоемкости и продолжительности работ 82
5.1.3 Построение графика разработки программного продукта 85
5.2 Расчет затрат на разработку 87
5.2.1 Расчет затрат на разработку программного продукта 87
5.3 Расчет основных технико-экономических показателей и эффективности использования программного продукта 91
5.3.1 Оценка экономической эффективности проекта 97
Заключение 102
Список использованных источников 104
Приложение A. Исходный код программы с комментариями 106
Приложение Б. Графический материал 115
Формат PDF позволяет внедрять необходимые шрифты (построчный текст), векторные и растровые изображения, формы и мультимедиа-вставки. Поддерживает RGB, CMYK, Grayscale, Lab, Duotone, Bitmap, несколько типов сжатия растровой информации. Имеет собственные технические форматы для полиграфии: PDF/X-1, PDF/X-3. Включает механизм электронных подписей для защиты и проверки подлинности документов. В этом формате распространяется большое количество сопутствующей документации.
DjVu (от фр. déjà vu «уже виденное») — технология сжатия изображений с потерями, разработанная специально для хранения сканированных документов — книг, журналов, рукописей и пр., где обилие формул, схем, рисунков и рукописных символов делает чрезвычайно трудоёмким их полноценное распознавание. Также является эффективным решением, если необходимо передать все нюансы оформления, например, исторических документов, где важное значение имеет не только содержание, но и цвет и фактура бумаги; дефекты пергамента: трещинки, следы от складывания; исправления, кляксы, отпечатки пальцев; следы, оставленные другими предметами.
DjVu стал основой для нескольких библиотек научных книг. Огромное количество книг в этом формате доступно в файлообменных сетях.
Формат оптимизирован для передачи по сети таким образом, что страницу можно просматривать ещё до завершения скачивания. DjVu-файл может содержать текстовый (OCR) слой, что позволяет осуществлять полнотекстовый поиск по файлу. Кроме того, DjVu-файл может содержать встроенное интерактивное оглавление и активные области — ссылки, что позволяет реализовывать удобную навигацию в DjVu-книгах. На данный момент это самый «молодой» и перспективный формат хранения различного рода учебных материалов.
Существует так же обширный набор различного рода учебников, учебных и методических пособий, которые представлены в графическом формате (в основном это файлы с расширением .jpg, или .png), отсканированном постранично, когда один файл – одна страница книги. Однако, при необходимости, эти графические файлы могут быть легко объединены в единый файл с расширением .pdf или .djvu.
На данный момент самыми распространенными файловыми форматами, которых хранятся учебные материалы на кафедре являются .doc и .pdf. Они удобны, широко распространены, могут хранить как текстовую так и графическую информацию.
Основной задачей проекта было создание максимально простой, дешевой и удобной системы управления базой данных учебных материалов, поэтому в качестве основных средств программной разработки были выбраны среды не требующие затрат на свою покупку, распространяющиеся по лицензиям OpenSource, GPL (General Public License). По аналогичным соображениям была выбрана операционная система для установки SQL сервера и СУБД.
SQL Structured Query Language — язык структурированных запросов — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. Вопреки существующим заблуждениям, SQL является информационно-логическим языком, а не языком программирования.
Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL-запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую.
Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка.
С помощью SQL программист описывает только то, какие данные нужно извлечь или модифицировать. То, каким образом это сделать решает СУБД непосредственно при обработке SQL запроса.
SQL - язык, который дает возможность создавать и работать в реляционных базах данных, являющихся наборами связанной информации, сохраняемой в таблицах.
Информационное пространство становится более унифицированным. Это привело к необходимости создания стандартного языка, который мог бы использоваться в большом количестве различных видов компьютерных сред. Стандартный язык позволит пользователям, знающим один набор команд, использовать их для создания, нахождения, изменения и передачи информации - независимо от того, работают ли они на персональном компьютере, сетевой рабочей станции, или на универсальной ЭВМ.
Стандарт SQL определяется ANSI (Американским Национальным Институтом Стандартов) и в данное время также принимается ISO (Международной Организацией по Стандартизации). Однако, большинство коммерческих программ баз данных расширяют SQL без уведомления ANSI, добавляя различные особенности в этот язык, которые, как они считают, будут весьма полезны. Иногда они несколько нарушают стандарт языка, хотя хорошие идеи имеют тенденцию развиваться и вскоре становиться стандартами "рынка" сами по себе в силу полезности своих качеств.
SQL работает согласно реляционной информационной модели.
В реляционной модели данных таблица обладает следующими основными свойствами:
На содержимое таблиц допустимо
накладывать ограничения в
Ограничение в виде требования уникальности тесно связано с понятием ключа таблицы. Ключом таблицы называется столбец или комбинация столбцов, содержимое ячеек которого используется для прямого доступа (быстрого определения местоположения) к строкам таблицы. Различают ключи первичный (он может быть только единственным для каждой таблицы) и вторичные. Первичный ключ уникален и однозначно идентифицирует строку таблицы. Столбец строки, определенный в качестве первичного ключа, не может содержать пустое (NULL) значение в какой-либо своей ячейке. Вторичный ключ определяет местоположение, в общем случае, не одной строки таблицы, а нескольких подобных.
Ключи используются внутренними механизмами СУБД для оптимизации доступа к строкам таблиц (путем, например, их физического упорядочения по значениям ключей или построения двоичного дерева поиска).
Основными операциями над таблицами являются следующие:
Проекция - построение новой таблицы из исходной путем включения в нее избранных столбцов исходной таблицы.
Ограничение - построение новой таблицы из исходной путем включения в нее тех строк исходной таблицы, которые отвечают некоторому критерию в виде логического условия (ограничения).
Объединение - построение новой таблицы из 2-ух или более исходных путем включения в нее всех строк исходных таблиц (при условии, конечно, что они подобны).
Декартово произведение - построение новой таблицы из 2-ух или более исходных путем включения в нее строк, образованных всеми возможными вариантами конкатенации (слияния) строк исходных таблиц.
Перечисленные выше 4 операции создают базис, на основе которого может быть построено большинство (но не все) практически полезных запросов на извлечение информации из реляционной БД.
Кроме перечисленных выше в языке SQL реализованы операции модификации содержимого строк таблицы и пополнения таблицы новыми строками (что может рассматриваться как операция объединения), а также операции управления таблицами.
В настоящее время наибольшее распространение получили реляционные SQL СУБД двух групп:
мощные крупные коммерческие СУБД, ориентированные на хранение огромных объемов информации (от гигабайт);
мобильные компактные свободно распространяемые (в том числе и в исходных кодах) СУБД, использование которых оправдано и для БД объемом всего лишь в десятки килобайт, т.к. они распространяются совершенно бесплатно.
Наиболее известными СУБД первой группы являются:
К наиболее популярным СУБД второй группы относятся:
Особняком стоит система SQLite, которая явялется по-сути, встраиваемым движком баз данных. Слово «встраиваемый» означает, что SQLite не использует парадигму клиент-сервер, то есть движок SQLite не является отдельно работающим процессом, с которым взаимодействует программа, а предоставляет библиотеку, с которой программа компонуется и движок становится составной частью программы. Таким образом, в качестве протокола обмена используются вызовы функций (API) библиотеки SQLite. Такой подход уменьшает накладные расходы, время отклика и упрощает программу. SQLite хранит всю базу данных (включая определения, таблицы, индексы и данные) в единственном стандартном файле на том компьютере, на котором исполняется программа.
В данном проекте, управление сервером баз данных, реализуются средствами СУБД MySQL.
Преимуществами MySQL по сравнению с остальными СУБД являются:
SQL-сервер реализует
Программа на языке SQL представляет собой простую линейную последовательность операторов языка SQL. Язык SQL в своем чистом виде операторов управления порядком выполнения запросов к БД (типа циклов, ветвлений, переходов) не имеет.
Клиентскую часть СУБД составляют клиенты трех основных типов.
Интерактивные клиенты, обеспечивающие пользователю-человеку возможность общения с SQL-сервером непосредственно с помощью языка SQL.
ИПП-клиенты, обеспечивающие интерфейс прикладного программирования (ИПП) прикладным программам, использующим средства SQL-сервера. Такой ИПП может быть средством общения прикладной программы с SQL-сервером на языке SQL или набором стандартных функций доступа к реляционной SQL БД без формирования символьных строк запросов (например, стандартный интерфейс ODBC).
WWW-клиенты, встраиваемые в
Именно с последним типом клиентов и работает программа, разработанная для работы с БД учебных материалов, которая в свою очередь написана на простом и широко распространенном языке PHP.
Основным языком программирования при создании системы бы выбран PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста», — «Инструменты для создания персональных веб-страниц») — язык программирования, созданный для генерирования HTML-страниц на веб-сервере и работы с базами данных.
В области программирования для Сети, PHP — один из популярнейших скриптовых языков благодаря своей простоте, скорости выполнения, богатой функциональности и распространению исходных кодов на основе лицензии PHP. PHP отличается наличием ядра и подключаемых модулей, «расширений»: для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и т. п. Любой желающий может разработать своё собственное расширение и подключить его. Не нужно писать свои собственные функции. При использовании, к примеру, C, вам придется это делать самому.
В PHP переданные сценарию параметры
автоматически станут переменными
сценария, с которыми можно работать,
как с обыкновенными
PHP является полноценным языком программирования, синтаксис которого очень напоминает C, а библиотека стандартных функций PHP очень большая, всё, что нужно веб-программисту, всегда под рукой. Основными достоинствами являются: