Подсистема визуальной генерации отчётов в рамках информационно-образовательного портала

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Государственное образовательное учреждение высшего профессионального образования

«Донской государственный технический университет»

	Кафедра «Программное обеспечение вычислительной техники и автоматизированных систем»

	

	

	

	

	

	

	

	

	ДИПЛОМНАЯ РАБОТА

Тема: Подсистема визуальной генерации отчётов в рамках информационно-образовательного портала


Реферат



Ключевые слова: ОТЧЁТ, КОНСТРУТОР, ГЕНЕРАТОР, КОНСТРУКТОР ЗАПРОСОВ, ТАБЛИЦА, ИНФОРМАЦИЯ, ОТНОШЕНИЕ, ГРУППИРОВКА, ИНТЕРФЕЙС, ФОРМАТИРОВАНИЕ, ПЕЧАТЬ, ДАННЫЕ.

В данном дипломе «Подсистема визуальной генерации отчётов в рамках информационно-образовательного портала» рассматривается:

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

		разработка модулей конструктора запросов к персональным данным;

		разработка модулей конструктора отчётов;

		разработка удобного интерфейса пользователей;

		разработка модулей авторизации.


Введение



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

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

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

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

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

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

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

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

автоматизация расчетов;

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

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

формирование различных форм и сводов отчетности.

Главной целью преддипломной практики является разработка проекта подсистемы визуальной генерации отчётов в рамках информационного портала Донского государственного технического университета.

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


1. АНАЛИТИЧЕСКИЙ ОБЗОР СРЕДСТВ ВИЗУАЛЬНОЙ ГЕНЕРАЦИИ ОТЧЁТОВ



Введение в предметную область



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

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

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

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

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



Сравнение программных средств генерации отчётов



Генерация отчетов является популярной задачей для разработчиков программного обеспечения. Существует как специализированное ПО для выполнения задач конструирования и генерации отчетов, так и утилиты и библиотеки, входящие в состав других программных средств и систем (например, в состав СУБД). Ниже, для сравнения функциональных характеристик, реализующих создание отчётов будут рассмотрены следующие программные средства: Actuate Reporting System, Fast Reports, Crystal Reports, а также описаны возможности системы конструирования отчетов MS Access 2003, входящей в состав Microsoft Office 2003.



Actuate Reporting System 2.0

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

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

Компании, которым нужен механизм распространения больших объемов сложной отчетной информации по разным подразделениям, смогут решить большинство проблем с помощью недавно выпущенного продукта Actuate Reporting System 2.0. Этот пакет предлагает всеобъемлющие функции защиты пользователей и групп, поддерживает операционные системы Unix и Windows NT и может автоматически генерировать макеты отчетов, а также выдавать страницы отчетов по запросу.

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



1.2.2 Fast Reports

Fast Reports, Inc - российская компания по разработке программного обеспечения для формирования отчетов.

Компания Fast Reports занимается активной разработкой и продвижением своего, ныне флагманского продукта, генератора отчетов FastReport. 

FastReport – один из лучших генераторов отчетов для сред разработки Delphi и C++ Builder. Обладает рядом неоспоримых преимуществ:

кроссплатформенность. FastReport полностью написан на Object Pascal. Используя библиотеку Kylix, FastReport генерирует одинаковые отчеты и в операционной системе Windows, и в операционной системе Linux;

малый объём шаблонов и высокая скорость построения отчетов. FastReport превосходит все существующие разработки для Delphi и C++ Builder по производительности. Кроме этого, почти все существующие генераторы отчетов для этих сред разработки предполагают компиляцию шаблонов отчетов в исполняемый файл, что не позволяет редактировать шаблон без перекомпиляции. FastReport создаёт небольшие по объёму внешние файлы;

FastReport не требует дополнительных библиотек и органично встраивается в исполняемый файл, незначительно увеличивая его размер;

локализация. FastReport поддерживает более 20 языков мира;

механизмы доступа к данным. FastReport способен работать более чем с 10 драйверами данных, а также использовать ODBC, OLE DB, ADO, для доступа к данным;

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

встроенная возможность конструирования диалогов для ввода начальных условий;

форматы отчетов. Множество фильтров экспорта позволяет сохранить готовый отчет в любой из форматов: HTML, RTF, CSV, TXT, PDF, EML, JPG, BMP, GIF, XLS;

простота разработки новых компонент для отчетов. Существует множество компонентов, разработанных сторонними производителями;

полная многопоточность, что позволило встраивать в многозадачные среды (в том числе, клиент-серверные, для WEB отчетности).

Возможности клиент-серверной архитектуры:

построение отчетов любой сложности на стороне сервера по запросу клиента без непосредственного доступа клиента к серверу баз данных;

обслуживание нескольких клиентов сервером в различных потоках позволяет добиться высокой нагрузочной способности и минимизации времени;

применение протокола передачи данных HTTP (RFC 2068 ) позволяет использовать большое количество уже существующих программ, таких как web-браузеры (Internet Explorer, Netscape Navigator, Mozilla, Opera и др.), Proxy-серверы, web-серверы (Internet Information Server, Apache и др.) для совместной работы без дополнительных трудоемких решений;

применение технологий сжатия на основе алгоритма GZip (RFC 1952 ) уменьшает сетевой трафик и увеличивает общую производительность клиент-сервер системы;использование в качестве клиента не только внутренний компонент FastReport, но и любого web-браузера.

На основе дизайнера отчетов FastReport был выпущен продукт, ориентированный на конечных пользователей, FastReport Studio. FR Studio явил собой полноценный дизайнер отчетов для пользователей не владеющих знаниями языков программирования, но знающих что такое база данных и умеющих с ней работать.

Корпоративная отчетность стала еще проще, благодаря FastReport Studio Business Edition, входящей в состав FastReport Server и, являющейся неотъемлемым инструментом в процессе создания дизайна отчетных документов. 



1.2.3 Crystal Reports

Crystal Reports компании Business Objects/Crystal Decisions – мировой лидер среди генераторов отчетов, основные возможности которого: доступ почти к любым данным и динамическое форматирование информации; интеграция результатов в веб-приложения и приложения для Windows; расширение возможностей конечных пользователей в области просмотра, взаимодействия и создания отчетов.

Crystal Reports обеспечивает широкие возможности использования разнообразных источников данных, облегчая доступ к источникам корпоративной информации и удовлетворяя информационные запросы конечных пользователей. Если необходим доступ к базам данных, файлам, журналам, системным приложениям (CRM, ERP и т.д.) или программным элементам, всегда можно использовать Crystal Reports.

Функциональные возможности Crystal Reports:

свыше 35 драйверов данных. Доступ к информации практически в любых форматах, включая собственный интерфейс, а также подключение с помощью ODBC, OLE DB и к различным источникам данных: реляционным, OLAP, XML, наследуемым и корпоративным системам. Такими источниками данных могут быть СУБД Oracle, IBM DB2, Sybase, Microsoft SQL Server и Informix;

настраиваемые данные. Доступ к определенным пользователем (в памяти) прикладным данным путем подключения к поставщикам данных JavaBeans, ADO.NET и COM;

полный контроль над подключениями к базам данных;

доступ к источникам разнородных данных. Подключение к уникальным источникам данных или комбинирование данных из разнородных источников в одном отчете;

поддержка XML. Интеграция Crystal Reports с приложениями B2B или B2C благодаря доступу к данным или их экспорту с помощью XML.;

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

Crystal Reports предлагает высокий уровень гибкости и контроля над методами предоставления и форматирования данных:

визуальный проектировщик отчетов. При быстром интерактивном проектировании отчетов используется интуитивно понятный интерфейс перетаскивания (drag-and-drop) и объектно-ориентированные проводники;

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

поддержка всех типов отчетов. Позволяет создавать практически любые требуемые отчеты, используя возможность включения матричных отчетов, условных операторов, специальную сортировку групп (Top N/Bottom N), итоговые значения и иерархическую детализацию данных, формы, адреса электронной почты, OLAP и подотчеты;

составление диаграмм и схем. Дает возможность улучшить внешний вид создаваемых отчетов, используя графические элементы из большого списка доступных таблиц и диаграмм различных типов (включая панели инструментов, в том числе объемные; секторные/тороидальные, линейные, круговые диаграммы и диаграммы Ганта; шкалы, диаграммы двумерного разброса, линейные таблицы, таблицы плотности растровых точек и другие); показывая различные варианты визуального представления данных;

многократно используемые объекты отчетов. Позволяет ускорить процесс проектирования отчетов, благодаря сохранению их ключевых элементов, включая тексты, команды SQL, растровые изображения и функции пользователя (формулы) в централизованно управляемой библиотеке (поставляемой в составе Crystal Enterprise). Таким образом, достигается совместное повторное использование и централизованное обновление взаимосвязанных отчетов;

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

мощный язык формул. Можно использовать содержащийся в Crystal Reports богатый язык формул с более чем 160 встроенными и определяемыми пользователем функциями и операторами для исчерпывающего контроля над форматированием отчетов, сложной логикой обработки и отбора данных. Благодаря стеку вызовов упрощается отладка ошибок, возникающих на уровне данных. Также в программу включены экстрактор формул и среда работы с формулами (Formula Workshop);

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

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

дополнительные модули для Access и Excel. Используется интуитивно понятный мастер для упрощения добавления в отчеты информации из Microsoft Access или Excel.

Crystal Reports предлагает настраиваемые параметры, разрешающие конечному пользователю выполнять просмотр и взаимодействие с информацией в привычных форматах и конфигурациях:

экспорт в различные форматы. Конечному пользователю предоставляются отчеты в привычном для него формате. Отчеты могут быть экспортированы во многие популярные форматы, включая Excel, PDF, XML, HTML, RTF и другие;

настраиваемые программы просмотра отчетов. Возможен выбор между различными серверными и клиентскими программами просмотра отчетов, включая средство просмотра DHTML-страниц (WebForms), средство просмотра .NET (WinForms), средство просмотра Java, средство просмотра ActiveX и Report Part (для мобильных устройств), позволяющие создавать отчеты в различных выходных форматах без дополнительного перекодирования. Интерактивные возможности отчета конечного пользователя, включая перелистывание страниц вперед/назад, повышение/понижение уровня иерархической детализации, экспорт и печать, добавляются автоматически и могут быть настроены в соответствии с предъявляемыми требованиями;

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

предупреждения. Выделение конкретной информации для конечного пользователя – определяемые им сообщения, отображающиеся при совпадении некоторых условий применительно к данным в отчете. Эта функция должна быть использована совместно с Crystal Enterprise, чтобы предупреждения могли пересылаться конечному пользователю с прямыми ссылками на оригинал отчета;

управляемая навигация. Возможно определение конкретных путей перемещения между объектами одного или различных отчетов для облегчения навигации конечного пользователя;

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

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

элементы отчета. Возможность перенастройки существующих отчетов для использования с беспроводными устройствами и корпоративными порталами. Это обеспечивает конечному пользователю доступ к диаграммам, итоговым таблицам, конкретным записям и другой ключевой информации через информационные порталы, телефоны WML, RIM Blackberry и устройства Compaq iPAQ;

поддержка смарт-тегов Microsoft Office XP. Позволяет выполнить вставку ключевых объектов отчетов, включая диаграммы и таблицы, в Outlook, Word или Excel, с возможностью немедленного просмотра и обновления данных из любого документа Office.

Crystal Reports предоставляет ряд необходимых компонентов для Java, .NET и COM-технологий, которые помогают понизить сложность интеграции функций динамического создания отчетов в приложениях пользователей. Если необходимо создание веб-сервисов Windows и XML, а также мобильных приложений, то применение Crystal Reports удовлетворит всем требованиям в отношении представления данных:

инструментальные средства разработчика. Универсальный интерфейс комплекта разработчика объектов Crystal Reports в приложениях J2EE, .NET и COM обеспечивает гибкий контроль над взаимодействием конечного пользователя с отчетами. Возможен выбор из различных программ просмотра отчетов, создание и модификация программного интерфейса приложений для внедрения ряда интерактивных возможностей: от статической обработки/просмотра отчетов до сложного алгоритма формирования и модификации отчета во время его выполнения;

компоненты создания отчетов. Для эффективной обработки и представления отчетов пользователи имеют возможность встроить в приложения мощные компоненты создания отчетов на основе Java, .NET и COM-технологий, содержащиеся в Crystal Reports;

настраиваемая библиотека тегов. Сокращается объем программных кодов, требуемых для внедрения шаблонов отчетов на страницы JSP (Java Script Page). Используя настраиваемые теги JSP, легче добавлять настраиваемое средство просмотра в Web-приложения. При этом кардинально сокращается объем требуемых работ по кодированию;

интеграция IDE. Возможна компоновка версии Crystal Reports исходя из потребностей конкретного пользователя с учетом используемых им ведущих сред разработки Java и .NET для интеграции отчетов с привычным для пользователя окружением. В настоящее время доступ к технологии Crystal Reports имеется из Microsoft Visual Studio .NET, BEA WebLogic Workshop, Borland JBuilder и Borland C#Builder. Возможен переход из этих пакетов к Crystal Reports для приобретения дополнительной функциональности и масштабируемости;

библиотека визуального контроля. Возможность интегрировать отчеты в приложения Delphi и C++Builder, используя библиотеку визуального контроля Crystal Reports;

бесплатное использование созданных программ. Возможность интеграции сотен исполняемых свойств, методов и событий в приложения «толстых» клиентов, без дополнительной оплаты;

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

Несмотря на столь богатый набор возможностей, основным недостатком данного продукта является то, что все данные, необходимые для построения отчета должны находиться в источнике данных. Кроме этого, отчет невозможно отредактировать перед печатью средствами самого Crystal Reports, для этого сделан экспорт отчетов в другие форматы, чтобы пользователь смог открыть отчет и отредактировать его в соответствующем редакторе. И недостаток, который можно назвать поправимым, – статичность построенного отчета. То есть отчет невозможно как-либо изменять, не изменив шаблон. Но разработчики Crystal Reports распространяют инструментальные средства для расширения пакета, что даёт возможность разработать дополнительные механизмы для решения поставленной задачи.


1.2.4 MS Access 2003

Microsoft Access - реляционная СУБД корпорации Microsoft. Имеет широкий спектр функций, включая связанные запросы, связь с внешними таблицами и базами данных.

В состав программного продукта MS Access 2003 входит множество компонентов: 

построитель таблиц;

построитель экранных форм;

построитель SQL-запросов (язык SQL в MS Access не соответствует стандарту ANSI);

построитель отчётов, выводимых на печать.

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

В Microsoft Access можно создавать отчеты различными способами:

конструктор;

мастер отчетов;

автоотчет: в столбец;

автоотчет: ленточный;

мастер диаграмм;

почтовые наклейки.

Самый простой способ создания отчёта в MS Access – воспользоваться мастером отчётов.

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

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



Таблица 1 – Анализ и сравнение существующих программных средств генерации отчётов

ПС 

 Параметры

Инструмент создания запросов

Печать

Визуальный дизайнер отчётов

Руссификация

Стоимость

Actuate Reporting System 2.0.

+

+

-

-

55972.00 руб.

FastReport

+

+

+

+

2170.00 руб.

Crystal Reports

+

+

+

-

27249.93 руб.

MS Access 2003

+

+

+

+

3920.00 руб.



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

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


1.3 Постановка задачи подсистемы визуальной генерации отчётов в рамках информационного портала

	

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

	создание SQL запросов в базу данных посредством графического интерфейса пользователя(GUI);

	наличие встроенного мощного дизайнера;

	форматирование содержимого отчёта;

	набор наиболее популярных компонентов: текст, линия, рисунок, таблица, диаграмма, фигура, цвет;

	предпросмотр;

	возможность использования готового шаблона;

	печать готового отчёта;

	экспорт отчёта в файлы распространённых форматов (jpg, bmp, pdf, txt, html, rtf);

	многостраничные отчёты;

	поиск текста в сформированном отчёте;

	редактирование сформированного отчёта;

	форма отчёта может храниться во внешнем файле;

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

	Решение данной задачи разбивается на следующие подзадачи:

разработка конструктора отчёта;

разработка модулей конструктора запросов к информационным ресурсам;

разработку модуля создания групп ключевых слов;

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

Генератор отчетов позволит снизить временные затраты на формирование отчетности, так как он:

заменит заполнение бумажных бланков отчетов на ввод данных в соответствующие поля ввода и/или заполнение отчета из источника данных;

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

 снимет необходимость повторно заполнять бланк, если требуется несколько копий одного и того же документа;

 уменьшит количество ошибок, связанных с:

заполнением нескольких копий отчета;

неправильным расчетом контрольных сумм и других расчетных показателей;

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

Программное средство должно быть легко внедрено в существующий информационный портал учебного заведения, что достигается путём разработки модулей с помощью фреймворка Code Igniter и использования системы управления базами данных PostgreSQL (8.4+).


2. Алгоритмическое конструирование подсистемы визуальной генерации отчётов



2.1 Общий алгоритм работы программы



Весь алгоритм работы программы можно разбить на следующий блоки:

Запуск программного средства

Авторизация пользователя

Определение прав доступа к функционалу программы

Подключение приложения к выбранной базе данных

Открытие шаблона отчёта

Генерация отчёта путём составления SQL запросов в базу данных посредством графического интерфейса пользователя

Отображение отчёта

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

Форматирование отчёта

Сохранение отчёта

Печать отчёта

Закрытие приложение

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




Рисунок 1 – Общая схема работы генератора отчётов.



2.1.1 Схема модуля программы, отвечающего за авторизацию пользователя

Для доступа к функциям разрабатываемого программного средства используется ограниченный доступ. Авторизация пользователя осуществляется путем ввода логина и пароля, и проверяется сервером посредством запроса в базу данных. Таким образом, доступ к конфиденциальным данным университета закрыт от посторонних лиц. Что ведет к защите таких свойств информации как: целостность, доступность и достоверность.

На рисунке 2 приведена схема создания защищённого соединения.




Рисунок 2 – Создание защищённого соединения



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

Когда пользователь авторизован, создается временное представление, содержащее поля таблиц персональных данных в зашифрованном виде.

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

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

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

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



2.2 Конструктор запросов



Конструктор запросов подразумевает создание SQL запросов посредством графического интерфейса пользователя (GUI).

Идея заключается в наличии у пользователя некоторой подготовленности и знанию ER-модели существующей системы управления базами данных. Посредством GUI обеспечивается удобное составление запросов.

Конструирование отчета производится на базе некоторого отношения, полученного из базы данных (рисунок 3). Запрос таких отношений производится средствами языка манипулирования данными, входящими в состав СУБД, в нашем случае, средствами оператора Select, предоставляющего возможности по выполнению реляционных операций селекции и объединения, а также позволяющих применять группировку результатов запроса.




Рисунок 3 - Общая схема запросов к базе данных генератора отчётов.



2.3 Схема информационных потоков, разрабатываемой подсистемы



Схема безопасной обработки персональных данных конструктором запросов показана на рисунке 4. Опишем схему безопасной обработки персональных данных конструктором запросов.





Рисунок 4 - Схема безопасной обработки персональных данных.


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

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

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

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



2.4 Схема создания временного представления для текущего пользователя



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





Рисунок 5 – Схема создания временного представления



Поступающий запрос к какой-либо функции приложения должен идти от аутентифицированного пользователя. Если пользователь не аутентифицирован, он перенаправляется на страницу аутентификации.

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

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

Сформированный запрос к СУБД выполняется и создается временное представление.



2.5 Конструктор отчёта



Конструктор отчёта реализует функции визуализации, выбранных, посредством запросов, различных данных.

В качестве базового формата представления данных выбран MS Excel 2003.

Конструктор отчёта представляет собой следующую структуру (Рисунок 6):



«Заголовок отчёта»

«Заголовок группы 1»

«Заголовок группы 2»

--------

Данные отчёта

«Окончание группы №…»

«Окончание группы 2»

«Окончание группы 1»

«Окончание отчёта»

Рисунок 6 – Структура визуального представления отчёта



2.5.1 Работа оператора Select

Источником данных является таблица (отношение) – результат выполнения SQL-запроса «Select». С помощью этой команды можно получить доступ к данным, представленным как совокупность таблиц практически любой сложности.

Чаще всего используется упрощенный вариант команды SELECT, имеющий следующий синтаксис:

SELECT <Список_выбора>

[INTO <Новая_таблица>]

FROM <Исходная_таблица>

[WHERE <Условие_отбора>]

[GROUP BY <Ключи_группировки>]

[HAVING <Условие_отбора>]

[ORDER BY <Ключи_сортировки> [ASC | DESC] ]

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

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

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

SELECT ALL Семестр, Отчетность

FROM Учебный_план

SELECT TOP 5 * FROM Студенты – первые 5 строк

SELECT TOP 10 PERCENT * FROM Студенты – первые 10% от таблицы

SELECT Дисциплина.ID_Дисциплина as Дисц-на, Наименование, Семестр

FROM Дисциплина, Учебный_план

SELECT Наименование, Семестр, Количество_часов

FROM Учебный_план INNER JOIN Дисциплины ON

Учебный_план.ID_Дисциплина=Дисциплины.ID_Дисциплина WHERE Количество_часов>60

SELECT Наименование, Семестр, Количество_часов

FROM Учебный_план LEFT OUTER JOIN Дисциплины ON

Учебный_план.ID_Дисциплина=Дисциплины.ID_Дисциплина 

WHERE (Наименование LIKE ‘%информатик%)

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

Форматирование листа XLS производится автоматически перед выдачей его пользователю: лист отчёта вписан в область печати, т.е. данные равномерно распределены по ширине листа, если не указаны другие параметры.



2.6 Схема работы программы

	

	На рисунке 5 представлена схема работы программы конструктора отчетов.

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

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

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

создание отчёта;

открытие шаблона отчёта;

редактирование отчёта;

форматирование отчёта;

сохранение отчёта;

печать отчёта.

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


3. ПРОГРАММНОЕ КОНСТРУИРОВАНИЕ ПОДСИСТЕМЫ ВИЗУАЛЬНОЙ ГЕНЕРАЦИИ ОТЧЁТОВ



3.1 Выбор обоснования языка программирования



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

Так как, разрабатываемое программное средство является веб-приложением, для реализации поставленных задач, были выбраны следующие языки программирования: HTML, xml, css, php, javascript, PL/pgSQL.

Для работы с базами данных использовалась объектно-реляционная система управления базами данных PostgreSQL (8.4 +).

Кроме того, для создания графического интерфейса пользователя(GUI) и написание кода использовались:

Графические редакторы:

Adobe Photoshop cs5 (демонстрационная версия) 

GIMP.

		Редакторы кода:

		Adobe Dreamweaver cs5 (демонстрационная версия)

		Notepad++

		Notepad

 Описание языков программирования



3.1.1 PHP

PHP (англ. PHP: Hypertext Preprocessor - «PHP: препроцессор гипертекста») - скриптовый язык программирования, созданный для генерации HTML-страниц на веб-сервере и работы с базами данных. В настоящее время поддерживается подавляющим большинством хостеров. 

В области программирования для Сети PHP - один из популярнейших скриптовых языков благодаря своей простоте, скорости выполнения, богатой функциональности и распространению исходных кодов на основе лицензии PHP. PHP отличается наличием ядра и подключаемых модулей, «расширений»: для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и т.п. Любой желающий может разработать своё собственное расширение и подключить его. Существуют сотни расширений, однако в стандартную поставку входит лишь несколько десятков хорошо зарекомендовавших себя. Интерпретатор PHP подключается к веб-серверу либо через модуль, созданный специально для этого сервера (например, для Apache или IIS), либо в качестве CGI-приложения (CGI от англ. Common Gateway Interface - «общий интерфейс шлюза»)).

Кроме этого, он может использоваться для решения административных задач в операционных системах UNIX, GNU/Linux, Microsoft Windows, Mac OS X и AmigaOS. 

Синтаксис PHP подобен синтаксису языка Си. Ныне PHP используется сотнями тысяч разработчиков. Несколько миллионов сайтов сообщают о работе с PHP, что составляет более пятой доли доменов Интернета. 



3.1.2 HTML

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

Выбор HTML обусловлен рядом факторов:

язык разметки HTML позволяет строить документы любой сложности и обладает всеми компонентами, которые могут понадобиться при разработке отчета;

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

отчет, сохранённый в формате HTML, может быть размещён в глобальной сети Internet, что является обязательным условием для отчетности открытых акционерных обществ;

в отличие от большинства других языков разметки в HTML есть объекты и инструменты для обработки пользовательского ввода (всевозможные поля ввода, кнопки, выпадающие списки, списки строк и многое другое);

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

для редактирования HTML документа не требуется специальный редактор, все изменения можно делать в любом текстовом редакторе.

программный средство отчет авторизация

3.1.3 Java-script

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

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

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

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

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



	XML

XML (англ. eXtensible Markup Language - расширяемый язык разметки; произносится [икс-эм-э́ль]) - рекомендованный Консорциумом Всемирной паутины язык разметки, фактически представляющий собой свод общих синтаксических правил. XML - текстовый формат, предназначенный для хранения структурированных данных (взамен существующих файлов баз данных), для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML). XML является упрощённым подмножеством языка SGML.

Достоинства:

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

XML поддерживает Юникод;

в формате XML могут быть описаны такие структуры данных как записи, списки и деревья;

XML - это самодокументируемый формат, который описывает структуру и имена полей так же как и значения полей;

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

XML - формат, основанный на международных стандартах;

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

XML представляет собой простой текст, свободный от лицензирования и каких-либо ограничений;

XML не зависит от платформы;

XML является подмножеством SGML (который используется с 1986 года). Уже накоплен большой опыт работы с языком и созданы специализированные приложения;

XML не накладывает требований на порядок расположения атрибутов в элементе и вложенных элементов разных типов, что существенно облегчает выполнение требований обратной совместимости;

В отличие от бинарных форматов, XML содержит метаданные об именах, типах и классах описываемых объектов, по которым приложение может обработать документ неизвестной структуры (например, для динамического построения интерфейсов);

XML имеет реализации парсеров для всех современных языков программирования;http://ru.wikipedia.org/wiki/XML - cite_note-3

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

XML поддерживается на низком аппаратном, микропрограммном и программном уровнях в современных аппаратных решениях. 



3.2 Выбор системы управления базами данных 



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

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

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

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

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

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

база данных должна легко расширяться при реорганизации и расширении предметной области.

база данных должна легко изменяться при изменении программной и аппаратной среды.

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

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

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



3.2.1 PostgreSQL

PostgreSQL (произносится «Постгре-Эс-Кю-Эль»http://ru.wikipedia.org/wiki/PostgreSQL - cite_note-1, в профессиональной среде коротко называется «постгрес») - свободная объектно-реляционная система управления базами данных (СУБД).

Функции PostgreSQL являются блоками кода, исполняемыми на сервере, а не на клиенте БД. Хотя они могут писаться на чистом SQL, реализация дополнительной логики, например, условных переходов и циклов, выходит за рамки собственно SQL и требует использования некоторых языковых расширений. Функции могут писаться с использованием одного из следующих языков:

встроенный процедурный язык PL/pgSQL, во многом аналогичный языку PL/SQL, используемому в СУБД Oracle;

скриптовые языки - PL/Lua, PL/LOLCODE, PL/Perl, plPHP, PL/Python, PL/Ruby, PL/sh, PL/Tcl иPL/Scheme;

классические языки - C, C++, Java (через модуль PL/Java).

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

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

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

Также в PostgreSQL существует механизм правил (англ. rules), который представляет собой механизм создания пользовательских обработчиков не только DML-операций, но и операции выборки. Основное отличие от механизма триггеров заключается в том, что правила срабатывают на этапе разбора запроса, до выбора оптимального плана выполнения и самого процесса выполнения. Правила позволяют переопределять поведение системы при выполнении SQL-операции к таблице. Хорошим примером является реализация механизма представлений (англ. views): при создании представления создается правило, которое определяет, что вместо выполнения операции выборки к представлению система должна выполнять операцию выборки к базовой таблице/таблицам с учетом условий выборки, лежащих в основе определения представления. Для создания представлений, поддерживающих операции обновления, правила для операций вставки, изменения и удаления строк должны быть определены пользователем.



3.3 Основные модули программы



Программное обеспечение системы написано на языке PHP с использованием запросов PgSQL.

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

index.php – модуль главной страницы программного средства;

add_obrab.php – модуль обработчика добавления информации в отчёт;

pre.php - модуль интерфейса предпросмотра;

bd_select.php – модуль выбора базы данных из списка;

find.php – модуль поиска информации в базе данных;

format.php – модуль форматирования содержимого отчёта;

style.css – модуль, содержащий стили отображения интерфейсов;

print_form.php – модуль, отвечающий за формат, перед выводом на печать;

print.php –модуль, отвечающий за печать отчёта.

save.php – модуль, позволяющий сохранять отчёт в файл на носитель информации.

Дополнительные модули, подключаемые к основным:

bd.php – модуль подключения к базе данных;

footer.php – нижняя часть дизайна страницы;

header.php – верхняя часть дизайна страницы;

menu.php – меню программы;

lock.php – модуль авторизации пользователей.



3.4 Исходный код главного модуля



index.php

<?php 

include "blocks/bd.php";//Прикрепляем соединение с базой данных

include "blocks/lock.php";//Прикрепляем файл авторизации

$result = mysql_query("SELECT * FROM infopage WHERE page='index'");

$myrow = mysql_fetch_array ($result);

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-1251" />

<title><?php echo $myrow['title']; //инклудим заголовок браузера?></title>

<link href="style.css" rel="stylesheet" type="text/css" />

</head>

<body>

<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0" class="global_table">

<?php include"blocks/header.php"; //инклудим заголовок?> 

<tr>

<td align="center" valign="middle"><table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<?php include"blocks/menu.php";//инклудим меню?>

<td valign="top"><?php echo $myrow['text']; ?></td>

</tr>

</table></td>

</tr>

<?php include"blocks/footer.php";//инклудим нижнюю часть?>

</table>

</body>

</html>


3.5 Расчет текущих затрат на разработку ПС



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



Таблица 2 - Категории персонала

Категория персонала

Количество сотрудников

Оплата за 1 час, руб.

Потребное время на разработку ПС, час (40час. = 1 неделя)

Заработная плата, руб.

Инженер-программист

1

100

400

40000

Оператор

1

40

300

12000

Итого







52000



После определения состава персонала определим текущие затраты:



,



где  – текущие затраты.

 – затраты на заработную плату персонала, .

 – начисления на заработную плату (), .

 – затраты связанные с использованием машинного времени,

 – затраты на оплату работ, выполняемых другими организациями,

 – накладные расходы,

 – проценты за пользованием кредитом,

 – машинное время на разработку и отладку ПП,

 – стоимость одного часа машинного времени,









,



где  – сумма кредита коммерческого банка,.

 – учетная ставка за кредит, 

 – время, необходимое для разработки, 

- кредит не берется.



Приведем обобщенную таблицу потребности в инвестициях. Таблица приведена ниже. Общие затраты по проекту составят 148512 руб.

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



Таблица 3 - Статьи затрат

Наименование статей затрат

Сумма

1. Текущие затраты ()

148512

1.1. Затраты на зар. Плату ()

52000

1.2. Начисления на заработную плату ()

18512

1.3. Затраты связанные с использованием машинного времени ВТ ()

0

1.4. Затраты на выполнение работ сторонними организациями ()

0

1.5. Накладные расходы ()

78000

1.6. Проценты за пользование кредитом ()

0

ИТОГО – затраты ()

148512


Себестоимость 1 копии ПС:







,











С учетом цен конкурентов устанавливаем цену равной 5500 руб.


ЗАКЛЮЧЕНИЕ



В рамках преддипломной практики была поставлена задача разработки программного средства визуальной генерации отчётов в рамках информационного портала.

В результате практической работы, разработан проект подсистемы визуальной генерации отчётов в виде веб-приложения, с возможностью внедрения его в информационный портал ВУЗа.

В данной работе было выполнено:

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

разработан модуль авторизации пользователя;

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

разработан модуль конструктора отчётов.

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


СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

		

			Пётр Ташков, Веб-мастеринг на 100%: HTML, CSS, JavaScript, PHP, CMS, графика, раскрутка. СПБ.: Питер,2010.

			Корн С.С. Теоретические основы информационной безопасности. – М.: Феникс, 2007.

			Мишель Е. Дэвис и Джон А. Филипс. Изучаем PHP и MySQL. 2008.

			Д. Колисниченко. Профессиональное программирование на PHP. 2007. 

			Информационная безопасность [Электронный ресурс]. – Режим доступа: http://security.ase.md/publ/ru/pubru59.html.

			Системы защиты информации [Электронный ресурс] – Режим доступа: http://osp.ru/pcworld/2001/05/010.html.

			Федеральный Закон РФ от 25 января 1995г. №24-ФЗ Об информации, информатизации и защите информации.

			Структура базы данных [Электронный ресурс] – Режим доступа: http://www.intuit.ru/department/database/dbmdi/2/

			Конфиденциальность данных [Электронный ресурс] – Режим доступа: http://www.ab-solut.net/ru/articles/problemi_zashiti/.

			Аутентификация и идентификация пользователя [Электронный ресурс] – Режим доступа: http://www.osp.ru/text/print/302/10050193.html.

			Защита информации [Электронный ресурс] – Режим доступа: http://www.rnt.ru/to_content/action_desc/id_68/lang_ru/.

			OLAP технология [Электронный ресурс] – Режим доступа: http://www.olap.ru

			XML, JavaScript, Code Igniter, PostgreSQL [Электронный ресурс]- Режим доступа: http://ru.wikipedia.org/wiki/XML

			Обзор возможностей PostgreSQL[Электронный ресурс] – Режим доступа: http://postgresql.ru.net/

			Г. Бех. Видео-уроки PHP, HTML, CSS.


ПРИЛОЖЕНИЕ А



Техническое задание на программное средство

	

	СОГЛАСОВАНОУТВЕРЖДЕНО

	Асс. каф. «ПОВТ и АС» Зав. каф. «ПОВТ и АС»

	_______________ Жуков А.И. ___________ Нейдорф Р.А

«___»___________2011 г. «____»___________2011 г.

П.А.1 ВВЕДЕНИЕ

Наименование разрабатываемого программного средства: «Подсистема визуальной генерации отчётов в рамках информационно-образовательного портала». 

Область применения: информационно-образовательный портал ВУЗа.

Объект применения: Донской государственный технический университет.

П.А.2 ОСНОВАНИЯ ДЛЯ РАЗРАБОТКИ

Разработка проводится на основании задания на преддипломную практику факультета «Информатика и вычислительная техника» (ИиВТ) Донского Государственного Технического Университета (ДГТУ) по направлению «Программное обеспечение вычислительной техники и автоматизированных систем (ПОВТ и АС)».

Задание выдал преподаватель кафедры «ПОВТ и АС» ДГТУ Жуков А.И.

П.А.3 НАЗНАЧЕНИЕ РАЗРАБОТКИ

П.А.3.1 Функциональное назначение

Функциональным назначением программы является реализация интерактивного интерфейса создания отчётов в рамках существующих подсистем информационно-образовательного портала ДГТУ. 


П.А.3.2 Эксплуатационное назначение

Эксплуатационным назначением разрабатываемого программного средства является сокращение времени для реализации отчётов системы анализа и подсистемы «успеваемость», функционирующих в рамках информационно-образовательного портала.

П.А.4 ТРЕБОВАНИЯ К ПРОГРАММЕ

П.А.4.1 Требования к функциональным характеристикам

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

	иметь удобный и интуитивно понятный интерфейс для пользователя;

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

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

	конструирование отчётов по выбранным характеристикам;

	возможность форматирования элементов отчёта;

	вывод отчёта на печать;

	ограниченный доступ (доступ к программному средству и БД получают только авторизованные пользователи);

	выгрузка в популярные форматы (doc, docx, pdf и др.).

П.А.4.2 Входные данные программы

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

П.А.4.3 Выходные данные программы

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


П.А.4.4 Требования к надежности

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

		организацией бесперебойного питания технических средств;

		использованием лицензионного программного обеспечения;

		отсутствием вредоносных программ на технических средствах;

		авторизацией пользователей;

		контролем входных данных.

П.А.4.5 Требования к составу и параметрам технических средств

В состав технических средств должен входить IBM - совместимый компьютер, включающий в себя: 

1) Процессор: не ниже Pentium 3 - 800 Mhz;

2) Оперативная память: не менее 128 Mb;

3) Место на жестком диске: не менее 100 Mb;

4) Монитор;

5) Мышь, клавиатура;

6) Доступ к локальной сети.

П.А.4.6 Требования к информационной и программной совместимости

Требования к информационной и программной совместимости программы не выдвигаются. 

П.А.4.7.1 Определение структуры входных и выходных данных

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

П.А.4.7.2 Язык программирования

Для реализации программы «Подсистема визуальной генерации отчётов в рамках информационно-образовательного портала» должен быть использован язык программирования PHP, JavaScript, HTML, XML, фреймоворк CodeIgniter, а также приложение для работы с базой данных Postgre SQL(версии 8.4 и выше). 

П.А.4.7.3 Операционная система

Программа должна функционировать в любой операционной системе семейства Windows, Linux.

Для работы с данным программным средством необходимо наличие программы-сервера с возможностью управления базами данных и обработкой SQL запросов(Postgre SQL 8.4.+), а также современного браузера(Internet Explorer 8+, Opera 10+,Mozilla Firefox 3.6+, Google Chrome) на стороне клиента.

П.А.5 ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ

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

		задание; 

		техническое задание по ГОСТ 19.201; 

		текст программы по ГОСТ 19.401-78.

П.А.6 СТАДИИ И ЭТАПЫ РАЗРАБОТКИ

Системный анализ (с 15.12.2010 по 12.02.2011): 

		изучение предметной области;

		определение области применения и целей использования;

		поиск вариантов решения поставленных задач;

		определение ограничений и диапазонов функционирования разрабатываемого программного средства;

		определение структуры программного комплекса;

		подготовка технического задания.

Общесистемное проектирование (с 12.02.2011 по 25.02.2011): 

		определение структуры программного комплекса;

		определение структуры алгоритмов и модулей;

		создание функциональной модели программного средства.

Подготовка технологических средств (с 25.02.2011 по 5.03.2011): 

		выбор языка программирования;

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

		разработка инструкций к применению методов.

Программная реализация, рабочий проект (с 5.03.2011 по 23.03.2011): 

		разработка текстов программных модулей;

		проектирование пользовательского интерфейса;

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

Отладка программного средства в статике (с 23.04.2011 по 25.05.2011): 

		тестирование программных модулей;

		локализация ошибок, корректировка исходных текстов, информационных потоков, компиляция;

П.А.7 ПОРЯДОК КОНТРОЛЯ И ПРИЕМКИ

Порядок и контроль приёмки определяются заведующим кафедрой «ПОВТ и АС». Главным требованием к приемке является наличие отчета, представленного в печатном виде.

Разработал

студент группы ВИ-51

Каныгин Дмитрий ______ (подпись)________(дата)


Приложение Б 



Исходный код программы



index.php

<?php 

include "blocks/bd.php";//Прикрепляем соединение с базой данных

include "blocks/lock.php";//Прикрепляем файл авторизации

$result = mysql_query("SELECT * FROM infopage WHERE page='index'");

$myrow = mysql_fetch_array ($result);

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-1251" />

<title><?php echo $myrow['title']; //инклудим заголовок браузера?></title>

<link href="style.css" rel="stylesheet" type="text/css" />

</head>

<body>

<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0" class="global_table">

<?php include"blocks/header.php"; //инклудим заголовок?> 

<tr>

<td align="center" valign="middle"><table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<?php include"blocks/menu.php";//инклудим меню?>

<td valign="top"><?php echo $myrow['text']; ?></td>

</tr>

</table></td>

</tr>

<?php include"blocks/footer.php";//инклудим нижнюю часть?>

</table>

</body>

</html>

add_obrab.php – модуль обработчика добавления информации в отчёт;

<?php 

include "blocks/bd.php";//Прикрепляем соединение с базой данных

include "blocks/lock.php";//Прикрепляем файл авторизации

$result = mysql_query("SELECT * FROM infopage WHERE page='add_stud'");

$myrow = mysql_fetch_array ($result);

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-1251" />

<title><?php echo $myrow['title']; ?></title>

<link href="style.css" rel="stylesheet" type="text/css" />

</head>

<body>

<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0" class="global_table">

<?php include"blocks/header.php";?>

<tr>

<td align="center" valign="middle"><table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<?php include"blocks/menu.php";?>

<td valign="top"><?php echo $myrow['text']; ?>

<form action="add_stud_obrab.php" method="post" name="add_stud" class="add_stud_form"> 

<p> Фамилия студента:</p><p> <input name="fam" type="text" size="40" maxlength="255" /></p>

<p> Имя студента:</p> <p> <input name="name" type="text" size="40" maxlength="255" /></p>

<p> Отчество студента:</p><p> <input name="otchestvo" type="text" size="40" maxlength="255" /></p>

<p> Дата рождения:</p><p> День <select name="den_rozh" size="1">

<?php 

for ($i=1; $i<=31; $i++)

{

echo "<option> $i </option> ";

}

?>

</select>

Месяц <select name="m_rozh" size="1">

<?php 

for ($i=1; $i<=12; $i++)

{

echo "<option> $i </option> ";

}

?>

</select>

Год <select name="g_rozh" size="1">

<?php 

for ($i=1940; $i<=2010; $i++)

{

echo "<option> $i </option> ";

}

?>

</select>

</p>

<?php /* ///////////////////////////////////////////////////////////////////// */?>

<p> Дата поступления:</p><p> День <select name="den_postuplen" size="1">

<?php 

for ($i=1; $i<=31; $i++)

{

echo "<option> $i </option> ";

}

?>

</select>

Месяц <select name="m_postuplen" size="1">

<?php 

for ($i=1; $i<=12; $i++)

{

echo "<option> $i </option> ";

}

?>

</select>

Год <select name="g_postuplen" size="1">

<?php 

for ($i=1940; $i<=2010; $i++)

{

echo "<option> $i </option> ";

}

?>

</select>

</p>

<?php /* ///////////////////////////////////////////////////////////////////// */?>

<p> Дата выпуска:</p><p> День <select name="den_vipusk" size="1">

<?php 

for ($i=0; $i<=31; $i++)

{

echo "<option> $i </option> ";

}

?>

</select>

Месяц <select name="m_vipusk" size="1">

<?php 

for ($i=0; $i<=12; $i++)

{

echo "<option> $i </option> ";

}

?>

</select>

Год <select name="g_vipusk" size="1">

<?php 

echo "<option> 0000 </option> ";

for ($i=1940; $i<=2010; $i++)

{

echo "<option> $i </option> ";

}

?>

</select>

</p>

<p> Дата отчисления:</p><p> День <select name="den_otchislen" size="1">

<?php 

for ($i=0; $i<=31; $i++)

{

echo "<option> $i </option> ";

}

?>

</select>

Месяц <select name="m_otchislen" size="1">

<?php 

for ($i=0; $i<=12; $i++)

{

echo "<option> $i </option> ";

}

?>

</select>

Год <select name="g_otchislen" size="1">

<?php 

echo "<option> 0000 </option> ";

for ($i=1940; $i<=2010; $i++)

{

echo "<option> $i </option> ";

}

?>

</select>

</p>

<p> Дата восстановления:</p><p> День <select name="den_vosstanov" size="1">

<?php 

for ($i=0; $i<=31; $i++)

{

echo "<option> $i </option> ";

}

?>

</select>

Месяц <select name="m_vosstanov" size="1">

<?php 

for ($i=0; $i<=12; $i++)

{

echo "<option> $i </option> ";

}

?>

</select>

Год <select name="g_vosstanov" size="1">

<?php 

echo "<option> 0000 </option> ";

for ($i=1940; $i<=2010; $i++)

{

echo "<option> $i </option> ";

}

?>

</select>

</p>

<?php /* Выбор факультета */ ?>

<p>Факультет:</p><p> <select name="fak" size="1">

<?php 

$result=mysql_query("SELECT * FROM fakultet ORDER BY name",$db);

$myrow=mysql_fetch_array($result);

do

{

echo "<option>".$myrow['name']." </option> ";

}

while ($myrow=mysql_fetch_array($result));

?>

</select>

</p>

<?php /* Выбор факультета */ ?>

<p>Группа:</p><p> <select name="gruppa" size="1">

<?php 

$result2=mysql_query("SELECT * FROM gruppa ORDER BY name",$db);

$myrow2=mysql_fetch_array($result2);

do

{

echo "<option>".$myrow2['name']." </option> ";

}

while ($myrow2=mysql_fetch_array($result2));

?>

</select>

</p>

<p> Номер студенческого билета:</p><p> <input name="nomer_stud" type="text" size="40" maxlength="255" /></p>

<p> Номер зачетной книжки:</p><p> <input name="nomer_zachetki" type="text" size="40" maxlength="255" /></p>

<p> Адрес домашний:</p><p> <input name="adress_dom" type="text" size="40" maxlength="255" /></p>

<p> Адрес проживания:</p><p> <input name="adress_projivani" type="text" size="40" maxlength="255" /></p>

<p> Телефон домашний:</p><p> <input name="tel_dom" type="text" size="40" maxlength="255" /></p>

<p> Телефон моб:</p><p> <input name="tel_mob" type="text" size="40" maxlength="255" /></p>

<p>Академический отпуск</p><p> <select name="akadem" size="1">

<option>Нет</option>

<option>Да</option>

</select></p>

<p>Основа обучения</p><p> <select name="budj" size="1">

<option>Бюджет</option>

<option>Коммерция</option>

</select></p>

<p> Примечание:</p><p> <textarea name="primechanie" cols="35" rows="7"></textarea></p>

<p><input name="submit" type="submit" value="Добавить" /></p>

</form>

</td>

</tr>

</table></td>

</tr>

<?php include"blocks/footer.php";?>

</table>

</body>

</html>

style.css

/* CSS Document */

body 

{

background-image:url(pic/fon.jpg);

font:Verdana, Arial, Helvetica, sans-serif;

font-size:12px;

}

textarea

{

/*background-color:#EDFFE1;*/

margin:10px;

margin-left:0px;

}

/*option

{

background-color:#EDFFE1;

}

input

{

background-color:#EDFFE1;

}

*/

hr

{

width:95%;

color:#00CC00;

border:1px solid #91E89F;

font-weight: 100;

}

p

{

font:Verdana, Arial, Helvetica, sans-serif;

font-size:16px;

margin:10px;

color:#003300;

}

global_table

{

background-color:#FFFFFF;

border:solid 1px #333333;

}

niz_header

{

border-bottom:3px solid #006600;

}

top_niz

{

background-image: url(pic/footer_mini.jpg);

background-repeat: no-repeat;

background-position: right bottom;

border-top:3px solid #006600;

}

menu_fon

{

background-image: url(pic/fon_men.jpg);

background-repeat: repeat-y;

background-position: left;

border-right:1px solid #006600;

font-size:14px;

}

left_zagolovok

{

text-align:center;

font:Verdana, Arial, Helvetica, sans-serif;

font-weight:bold;

border-left:2px solid #006600;

border-bottom:2px solid #009900;

display:block;

width:90%;

}

menu_link a:link

{

text-align:center;

font:Verdana, Arial, Helvetica, sans-serif;

font-weight:bold;

border:1px solid #006600;

display:block;

width:90%;

text-decoration:none;

color:#003300;

background-color:#D0FDC8;

}

menu_link a:visited

{

text-align:center;

font:Verdana, Arial, Helvetica, sans-serif;

font-weight:bold;

border:1px solid #006600;

display:block;

width:90%;

text-decoration:none;

color:#003300;

background-color:#D0FDC8;

}

menu_link a:active

{

text-align:center;

font:Verdana, Arial, Helvetica, sans-serif;

font-weight:bold;

border:1px solid #006600;

display:block;

width:90%;

text-decoration:none;

color:#003300;

background-color:#FFFF00;

}

menu_link a:hover

{

text-align:center;

font:Verdana, Arial, Helvetica, sans-serif;

font-weight:bold;

border:1px solid #006600;

display:block;

width:90%;

text-decoration:none;

color:#003300;

background-color:#00CC00;

}

zagolovok

{

font:Verdana, Arial, Helvetica, sans-serif;

font-size:36px;

text-align:center;

color:#FF0000;

}

mini_table

{

border:1px solid #215909;

}

header_mini_table

{

font:Verdana, Arial, Helvetica, sans-serif;

font-size:16px;

background-color:#009900;

color:#ffffff;

text-align:left;

font-weight:bold;

margin-left:10px;

}

body_mini_table

{

font:Verdana, Arial, Helvetica, sans-serif;

font-size:12px;

background-color:#D0FDC8;

color:#000000;

text-align:left;

}

header_mini_table_text

{

margin-left:10px;

}

header_mini_table_text a:link

{

margin-left:10px;

font:Verdana, Arial, Helvetica, sans-serif;

font-size:16px;

color:#FFFFFF;

text-align:left;

font-weight:bold;

}

header_mini_table_text a:visited

{

margin-left:10px;

font:Verdana, Arial, Helvetica, sans-serif;

font-size:16px;

color:#FFFFFF;

text-align:left;

font-weight:bold;

}

header_mini_table_text a:hover

{

margin-left:10px;

font:Verdana, Arial, Helvetica, sans-serif;

font-size:16px;

color:#FFFF00;

text-align:left;

font-weight:bold;

}

body_mini_table_text

{

margin-left:10px;

font:Verdana, Arial, Helvetica, sans-serif;

font-size:16px;

color:#003300;

text-align:left;

margin-left:10px;

margin-right:10px;

margin-bottom:3px;

margin-top:3px;

}

add_stud_form

{

text-align:left;

font:Verdana, Arial, Helvetica, sans-serif;

font-size:14px;

font-weight:bold;

}

gruppa_text a:link

{

font:Verdana, Arial, Helvetica, sans-serif;

font-size:14px;

color:#006600;

text-align:left;

font-weight:bold;

}

gruppa_text a:visited

{

font:Verdana, Arial, Helvetica, sans-serif;

font-size:14px;

color:#006600;

text-align:left;

font-weight:bold;

}

gruppa_text a:hover

{

font:Verdana, Arial, Helvetica, sans-serif;

font-size:18px;

color:#FF0000;

text-align:left;

font-weight:bold;

}

stud_in_gruppa_text a:link

{

font:Verdana, Arial, Helvetica, sans-serif;

font-size:14px;

color:#006600;

text-align:left;

font-weight:bold;

}

stud_in_gruppa_text a:visited

{

font:Verdana, Arial, Helvetica, sans-serif;

font-size:14px;

color:#006600;

text-align:left;

font-weight:bold;

}

stud_in_gruppa_text a:hover

{

font:Verdana, Arial, Helvetica, sans-serif;

font-size:14px;

color:#FF0000;

text-align:left;

font-weight:bold;

}

mess

{

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 16px;

font-weight: bold;

color: #006600;

text-decoration: blink;

}

Дополнительные модули, подключаемые к основным:

bd.php – Модуль соединения с базой данных

<?php

$db = mysql_connect ("localhost","ok","123123"); //Функция соединения с сервером базы данных, где localhost - это адрес сервера (обычно по умолчанию он такой всегда, ОК - имя пользователя, 123123 - пароль , в переменную $db заносится результат выполнения этой функции. результатом является идентификатор сессии).

mysql_select_db("students",$db);// функция соединения с самой базой. где students - это название базы, $db - это наш идентификатор сессии соединения с сервером БД. Причем если используется всего один сервер, то идентификатор в функции mysql_select_db можно не использовать.

?>

footer.php

<tr>

<td align="center" valign="middle" class="top_niz"><div align="right">

<p>&nbsp;</p>

</div></td>

</tr>

header.php

<tr class="niz_header">

<td align="center" valign="middle" class="niz_header"><div align="left"><img src="pic/logo_mini.jpg" width="449" height="150" /></div></td>

</tr>

Menu.php

<td width="200" align="left" valign="top" class="menu_fon"><p>

<center>

<div class="left_zagolovok">Меню</div><br />

<div class="menu_link"> 

<a href="index.php" >Главная страница</a>

<a href="students_all.php">Список студентов</a>

<a href="fak_all.php">Факультеты</a><br />

<a href="add_stud.php">Добавить студента</a>

<br />

<a href="add_fak.php">Добавить факультет</a>

<a href="edit_fak.php">Редактировать факультет</a>

<a href="del_fak.php">Удалить факультет</a>

 </div>

</center>

</p>

</td>

lock.php – модуль авторизации пользователя.

<?php

include("blocks/bd.php");

if (!isset($_SERVER['PHP_AUTH_USER']))

{

Header ("WWW-Authenticate: Basic realm=\"Отдел кадров студентов ВУЗа ДГТУ\"");

Header ("HTTP/1.0 401 Unauthorized");

exit();

}

else {

if (!get_magic_quotes_gpc()) {

$_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);

$_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);

}

$query = "SELECT pass FROM userlist WHERE user='".$_SERVER['PHP_AUTH_USER']."'";

$lst = @mysql_query($query);

if (!$lst)

{

Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");

Header ("HTTP/1.0 401 Unauthorized");

exit();

}

if (mysql_num_rows($lst) == 0)

{

Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");

Header ("HTTP/1.0 401 Unauthorized");

exit();

}

$pass = @mysql_fetch_array($lst);

if ($_SERVER['PHP_AUTH_PW']!= $pass['pass'])

{

Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");

Header ("HTTP/1.0 401 Unauthorized");

exit();

}

}

?>


Приложение В 



Скриншот работы программного средства



На рисунке В.1 представлен внешний вид программного средства «Генератор отчётов». Программное средство имеет приятный и интуитивно понятный интерфейс. 





	Рисунок B.1 – Внешний вид программы «Генератор отчётов» (Авторизованный пользователь)

	

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




	Рисунок B.2 – Окно авторизации программы «Генератор отчётов»