Автор работы: Пользователь скрыл имя, 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
Рисунок 2.4 - Алгоритм авторизации пользователя
Как видно из данного алгоритма, после ввода данных, по которым мы желаем авторизоваться в системе нас возникает 2 варианта, есть ли уже учетная запись в системе, или такой записи нет. Если записи нет – пользователю предлагается ее создать. Если пользователь отказывается регистрироваться в системе - пользователю выдается сообщение, что работа с программой не может быть продолжена и происходит выход из системы. В противном случае идет переход в подпрограмму регистрации пользователей и повторный ввод данных.
Общий же алгоритм работы программы представлен на рисунке 2.5: Программное обеспечение состоит из набора PHP-скриптов.
Рисунок 2.5 – Общая схема работы системы
Пользователь отсылает запрос серверу на показ определенной страницы. Сервер посредством правил транслирует адресную строку, переданную на сервер пользователем в PHP-скрипт, и посылает в него набор переменных, выделенных из строки запроса.
PHP исполняет скрипт. Скрипт взаимодействует
с БД (помещает/извлекает
Одним из важнейших вопросов разработки программной системы является разработка пользовательского интерфейса. Любая система, использующая при своем функционировании технические средства, относится к классу систем «человек - машина». Правильно будет выдвинуть следующие требования к интерфейсу систем тестирования:
Одним из подходов по снижению психологических нагрузок пользователя является создание интерактивного интерфейса пользователя.
Для создания психологических комфортных условий пользователя на основе психологии человек-машина разработаны основные стандартизованные подходы.
Человеко-машинное взаимодействие (HCI - Human-Computer Interaction) – это наука, которая изучает, как люди используют компьютерные системы, чтобы решить поставленные задачи. HCI обеспечивает нас знаниями о компьютере и человеке для того, чтобы взаимодействие между ними было более эффективным и более удобным [2.2].
Интерфейс пользователя выполнен на языке разметки HTML с использованием JavaScript и библиотеки jQuery, что позволило построить интерактивный пользовательский интерфейс программы.
Имеется ряд стилей взаимодействий, которые делятся на два основных вида. Первый – это использование интерфейса языка команд - ввод команд текстовыми средствами, а второй – это непосредственное манипулирование. Таким образом, имеется ряд способов, которыми пользователь мог бы связываться с компьютером:
В своей программе я использовал
комбинированную систему
Цель создания эргономичного интерфейса состоит в том, чтобы отобразить информацию настолько эффективно насколько это возможно для человеческого восприятия и структурировать отображение на дисплее таким образом, чтобы привлечь внимание к наиболее важным единицам информации. Основная же цель состоит в том, чтобы минимизировать общую информацию на экране и представить только то, что является необходимым для пользователя.
Основные принципы создания интерфейса:
а) Естественность (интуитивность).
Работа с системой не должна вызывать у пользователя сложностей в поиске необходимых директив (элементов интерфейса) для управления процессом решения поставленной задачи.
б) Непротиворечивость.
Если в процессе работы с системой пользователем были использованы некоторые приемы работы с некоторой частью системы, то в другой части системы приемы работы должны быть идентичны. Также работа с системой через интерфейс должна соответствовать установленным, привычным нормам (например, использование клавиши Enter).
в) Неизбыточность.
Это означает, что пользователь должен вводить только минимальную информацию для работы или управления системой. Например, пользователь не должен вводить незначимые цифры (00010 вместо 10). Аналогично, нельзя требовать от пользователя ввести информацию, которая была предварительно введена или которая может быть автоматически получена из системы. Желательно использовать значения по умолчанию, где только возможно, чтобы минимизировать процесс ввода информации.
г) Непосредственный доступ к системе помощи.
В процессе работы необходимо, чтобы система обеспечивала пользователя необходимыми инструкциями. Система помощи отвечает трем основным аспектам - качество и количество обеспечиваемых команд; характер сообщений об ошибках и подтверждения того, что система делает. Сообщения об ошибках должны быть полезны и понятны пользователю.
д) Гибкость.
Насколько хорошо интерфейс системы может обслуживать пользователя с различными уровнями подготовки? Для неопытных пользователей интерфейс может быть организован как иерархическая структура меню, а для опытных пользователей как команды, комбинации нажатий клавиш и параметры.
Размещение информации на экране. Количество информации, отображаемой на экране, называется экранной плотностью. Исследования показали, что, чем меньше экранная плотность, тем отображаемая информация наиболее доступна и понятна для пользователя и наоборот, если экранная плотность большая, это может вызвать затруднения в усвоении информации и ее ясном понимании. Однако, опытные пользователи могут предпочитать интерфейсы с большой экранной плотностью. Информация на экране может быть сгруппирована и упорядочена в значимые части. Это может быть достигнуто с использованием кадров (фреймов), методов типа цветового кодирования, рамок, негативного изображения или других методов для привлечения внимания.
Пользовательский интерфейс, доступный пользователям, работающим с программой, выполнен в некоторой степени минималистично, но полностью соответствует интерфейсу информационной системы кафедры ИТ-4, и не выбивается из ее общего стиля. Интерфейс с видом на список дисциплин показан на рисунке 2.6.
Рисунок 2.6 – Интерфейс просмотра дисциплин
Стоит обратить внимание, на тот факт, что все дисциплины представлены в табличной форме, что облегчает зрительное восприятие информации и ее анализ. Здесь же рядом можно внести изменения в состав дисциплин, редактировать название дисциплины и т.п.
На рисунке 2.7 показан вид меню справочной информации по различным дисциплинам, авторам, типам изданий и разделам.
Рисунок 2.7 – Меню выбора справочников
В программном интерфейсе активно используется выделение элементов интерфейса яркостью и цветом. Для привлечения внимания к каким-либо элементам интерфейса можно воспользоваться выделением этих элементов большей яркостью на фоне других – более темных. Однако, не стоит переусердствовать с этим методом, поскольку большое количество ярких элементов может вызвать дискомфорт у пользователя. Таким образом, можно достичь обратного эффекта – перегрузки интерфейса. Цвет может улучшить интерфейс пользователя, но для многих систем использование цвета практически не влияет на эффективность работы пользователя. Основное назначение цвета - в создании интерфейсов, более интересных для пользователей.
Работа по HTML - это способ усвоить особенности создания документов в стандартизированном языке, используя расширения .html или .htm., в текстовом файле ASCII-формате, размеченный HTML-тегами (англ. tag - специальные встроенные указания) [3.1-3.3].
Все теги начинаются символом '<' и заканчиваются символом '>'. Обычно имеется пара тегов - стартовый (открывающий) и завершающий (закрывающий) тег (похоже на открывающиеся и закрывающиеся скобки в математике), между которыми помещается размечаемая информация:
<P>Информация</P>
Здесь стартовым тегом является тег <P>, а завершающим - </P>. Завершающий тег отличатся от стартового лишь тем, что у него перед текстом в скобках <…> стоит символ '/' (слеш).
В каждом HTML-документе должны присутствовать три главных части:
1) Объявление HTML;
2) Заголовочная часть;
3) Тело документа.
Объявление HTML. <HTML> и </HTML>. Пара этих тегов сообщает программе просмотра (браузеру), что между ними заключен документ в формате HTML, причем первым тегом в документе должен быть тег <HTML> (в самом начале документа), а последним - </HTML> (в самом конце документа).
Заголовочная часть. <HEAD> и </HEAD>. Между этими тегами располагается информация о документе (название, ключевые слова для поиска, описание и т. д.). Однако наиболее важным является название документа, которое мы видим в верхней строке окна браузера и в списках "Избранное (BookMark)". Специальные программы поисковых систем используют название документа для построения своих баз данных. Для того чтобы дать название своему HTML-документу, текст помещается между тегами <TITLE> и </TITLE>.
Тело документа. Третьей главной частью документа является его тело. Оно следует сразу за заголовком и находится между тегами <BODY> и </BODY>. Первый из них должен стоять сразу после тега </HEAD>, а второй - перед тегом </HTML>. Тело HTML-документа - это место, куда автор помещает информацию, отформатированную средствами HTML.
Пример HTML-кода веб-страницы:
<HTML>
<HEAD>
<TITLE>Первая страница</TITLE>
</HEAD>
<BODY>
Здесь размещается информация!
</BODY>
</HTML>
Принцип работы web-сервера: известно, что web-серверы хранят информацию в виде текстовых файлов, называемых также страницами. Помимо текста, такие страницы могут содержать ссылки на другие страницы (расположенные на том же самом или другом сервере), ссылки на графические изображения, аудио- и видеоинформацию, различные объекты ввода данных (поля, кнопки, формы и т. д.), а также другие объекты и исполняемые на сервере программы. Фактически страницы представляют собой некоторое связующее звено между объектами различных типов. Их проектируют с применением специального языка разметки гипертекстов HyperText Markup Language, или сокращенно — HTML. Для доступа к информации, расположенной на web-серверах пользователи применяют специальные клиентские программы - браузеры. В настоящее время существуют десятки различных браузеров, но наибольшей популярностью на данный момент пользуются лишь несколько из них:
Каждая страница web-сервера имеет свой так называемый универсальный адрес ресурса - Universal Resource Locator (URL). Чтобы получить доступ к той или иной странице, пользователь должен указать ее адрес URL браузеру. Как правило, любой web-сервер имеет одну главную страницу, содержащую ссылки на все остальные страницы этого сервера. Поэтому просмотр содержимого сервера Web обычно начинается с его главной (индексной) страницы.
В отличие от большинства других языков, PHP предоставляет возможность использовать при программировании как объектно-ориентированный, так и процедурный подходы. Большинство PHP-программистов по умолчанию используют последний, поскольку сами веб-страницы обрабатываются именно в процедурном подходе (одни тег, затем другой, затем следующий и т.д.). Код, написанный в процедурном подходе, гораздо проще комбинируется с HTML и, как следствие, программисты зачастую вырабатывают свой собственный стиль, основанный на таком подходе.
Если вы новичок в PHP, то, скорее всего, единственный способ программирования, которым вы пока пользовались - это процедурное. Тем не менее, если вы уже исследовали ресурсы, посвященные PHP, в поисках новых решений и приемов, вы наверняка сталкивались с сообщениями на тему "распухших объектов" (object bloat), или находили различные руководства по написанию объектно-ориентированного кода на PHP. Возможно, вы скачивали библиотеки, которые использовали классы, учились создавать объекты и вызывать их методы. При этом, вполне возможно, что вы никогда до конца не осознавали почему в том или ином случае имеет смысл применять объектно-ориентированный подход.
У обоих подходов есть свои преимущества и недостатки, заставляющие их приверженцев обмениваться незамысловатыми репликами вида "Объекты - это плохо!" или "Объекты - это хорошо!". Данная статья не является попыткой склонить читателя в сторону того или иного подхода, а призваны исследовать преимущества и недостатки каждого. Зачастую использование объектно-ориентированного подхода к месту и не к месту делает проект успешным. Программирование новичка в стиле объектно-ориентированного программирования часто напоминает передвижение по минному полю – если не знать где мины, достичь конца проекта невозможно. Само по себе объектно-ориентированное программирование не является панацеей – это рабочая технология, которая позволяет: