Автор работы: Пользователь скрыл имя, 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
Проведем сравнительный анализ двух технологий создания динамических Web-страниц – ASP.net и PHP, и СУБД – MySQL и MS-SQL чтобы обусловить выбор PHP и MySQL для разработки программы управления БД учебных материалов.
Таблица 1.1 – Сравнительный анализ PHP - ASP.net и MySQL – MS-SQL
№ п/п |
Критерий |
PHP (СУБД MySql, Web-сервер Apache, ОС Linux) |
ASP.net (СУБД MS SQL Server, Web-сервер IIS, ОС Windows) |
1 |
Стоимость |
Открытая и |
Платная технология (придется оплатить несколько лицензий Microsoft) |
2 |
Сложность освоения |
Не нужна дорогая среда программирования, достаточнопары учебников |
Необходима среда разработки Visual Studio, MSDN, доступ в Интернет |
3 |
Основное предназначение |
Мелкие и средние проекты, рассчитанные на небольшие группы программистов |
Средние и большие проекты, рассчитанные на большие группы программистов под четким управлением |
4 |
Скорость работы |
Скорость работы обеспечивается тем, что все PHP-приложения работают в едином адресном пространстве. Подход более быстр, но менее надежен, но абсолютно не требователен к аппаратным ресурсам. |
За счет сложной модели классов ASP.net многократно перепроверяет данные, удерживая каждое приложение в отдельном адресном пространстве. Подход более надежен и не менее быстр, но более требователен к ресурсам |
5 |
Кэширование данных из БД |
Генерирует множество запросов к СУБД |
Старается делать из БД как можно меньше выборок, помещая все актуальные таблицы и даже связи между ними в кэш (технология ADO.NET ) |
6 |
Наличие отладчика |
Полноценного отладчика нет, но может компенсироваться Фреймворками сторонних производителей |
Удобный отладчик Visual Studio |
CodeIgniter — фреймворк написанный на PHP для разработки полноценных веб-систем и приложений. CodeIgniter является инструментарием для тех, кто строит веб-приложения на PHP. Его цель в том, чтобы позволить вам разрабатывать приложения быстрее, чем если бы вы писали код с нуля, предоставляя богатый набор библиотек для часто используемых задач, а также простой интерфейс и логическую структуру для доступа к этим библиотекам. CodeIgniter позволяет творчески сосредоточиться на ваших проектах, используя минимальный объема кода, необходимый для той или иной задачи.
Фреймворк (Framework) — термин, имеющий размытое значение. Обычно используется в программировании, обозначая «простую концептуальную структуру, используемую для решения сложной, проблемной задачи». Значение этого термина существенно зависит от контекста его использования. В нашем случае фреймворк выступает как набор инструментов, библиотек и соглашений, предназначенный для вынесения рутинных задач в отдельные модули, которые можно использовать многократно. Главная цель фреймворка, позволить программисту сфокусироваться на задачах уникальных для каждого проекта, вместо изобретения модулей, уже имеющихся в наборе интрументов среды разработки.
Основными достоинствами Фреймворка CodeIgniter являются:
Многие PHP-программисты считают CodeIgniter лучшим выбором.[1.3]
В данном разделе приводятся требования заказчика к разарабатываемому программному обеспечению.
Основной целью дипломного проекта являлось создание системы управления базой данных учебных материалов, как часть программного комплекса кафедры ИТ-4 для повышения эффективности ее работы. Полное название программного продукта «Программа управления базой данных учебных материалов».
Программа предназначена для интеграции в информационную среду кафедры ИТ-4, для работы с БД учебно-методической литературы. Целью разработки являются повышение эффективности работы кафедры, сокращение времени на поиск и обработку информации.
Объектом автоматизации
Для достижения поставленной цели в работе осуществляется решение следующих задач:
Система должна удовлетворять следующим требованиям:
Клиентская часть системы должна работать на IBM-совместимых персональных компьютерах.
Минимальная конфигурация клиентского оборудования:
Рекомендуемая конфигурация:
Минимальная конфигурация серверной части:
Рекомендуемая конфигурация:
Клиентская часть программы должна работать под Интернет браузерами IE 5 и выше, или аналогичных Opera, Mozilla Firefox. Используемая ОС при этом не должна иметь значения.
Серверная часть должна быть полностью совместима с СУБД MySQL v 5.0, web-сервером Apache v. 2.2. под управлением ОС Hardened Gentoo Linux.
Документация должна соответствовать всем предъявляемым требованиям. Состав документации должен включать: техническое задание, текст программы с комментариями, руководство пользователя.
Источником разработки является научно-техническая документация по разработке программного обеспечения.
В этом разделе описывается разработка программной системы – от проектирования структурных, функциональных и принципиальных схем и структур баз данных, до разработки алгоритмов, программ и пользовательских интерфейсов.
Разработка структурной схемы (архитектуры) программы является одним из наиболее важных этапов в процессе разработки программного обеспечения, неправильный выбор архитектуры ведет к риску срыва всего проекта в будущем. Данный этап является базовым для всего процесса разработки. Продуманная архитектура позволяет легко модифицировать программный продукт, если произойдут изменения требований к нему.
Архитектура - это набор значимых решений по поводу организации системы программного обеспечения, набор структурных элементов и их интерфейсов, при помощи которых компонуется система, вместе с их поведением, определяемым во взаимодействии между этими элементами, компоновка элементов в постепенно укрупняющиеся подсистемы , а также стиль архитектуры который направляет эту организацию -- элементы и их интерфейсы, взаимодействия и компоновку [2.1].
Под архитектурой понимается совокупность компонентов программы, а также связи и способы организации информационного обмена между ними. Логическая структура описывает объекты, которые связаны с другими объектами. Она определяет связи между ними.
Физическая структура описывает, где объект находится в действительности, отражая, например, путь к каталогу объекта в файловой системе или его расположение в базе данных.
Исходя из анализа требований, предъявляемых к системе, определяется набор всех функций, выполнение которых программа должна поддерживать. Далее полученные функции объединяются в логически связанные между собой группы. В процессе анализа функций и на первых стадиях проектирования архитектуры могут быть выявлены дополнительные функции, которые необходимо включить в разрабатываемую программу.
Архитектура должна чётко определять
ответственность каждого
Архитектура должна ясно определять правила коммуникации между компонентами программы и описывать, какие другие компоненты данный компонент может использовать непосредственно, какие косвенно, а какие вообще не должен использовать.