- •Аннотация
- •Содержание
- •1 Аналитический раздел
- •1.1 Анализ предметной области
- •1.2 Организационно-производственная структура
- •1.3 Анализ существующих программных продуктов
- •1.4 Выбор математического аппарата
- •1.5 Постановка задачи
- •1.5.2 Требования к программному средству и техническому оборудованию
- •2 Проектный раздел
- •2.1 Инструментальные средства
- •2.1.1 Выбор языка программирования
- •1.5.1 Назначение программного продукта
- •2.1.2 Технология клиент/сервер. Принцип работы Java Web-приложения
- •2.1.3 Архитектура платформы Tandem
- •2.1.4 Выбор субд
- •2.1.5 Структурированный язык запросов sql
- •2.2 Разработка базы данных проектируемого программного средства
- •2.2.1 Формализованное описание предметной области
- •2.2.2 Разработка инфологической модели бд
- •2.2.3 Разработка даталогической модели бд
- •2.2.4 Нормализация отношений
- •2.2.5 Физическая модель бд
- •2.2.5.1 Техническое описание объектов бд
- •2.2.5.2 Реализация ограничений целостности бд
- •2.3 Разработка программного средства автоматизации обслуживания заявок
- •3 Технико-эксплуатационный раздел
- •3.1 Руководство для пользователей
- •3.2 Руководство для серверной части
- •3.3 Руководство администратора
- •3.4 Руководство программиста
- •4 Обоснование экономической эффективности проекта
- •4.1 Расчет трудоемкости разработки программного продукта
- •4.2 Расчет себестоимости программного продукта
- •4.3 Расчет экономического эффекта от внедрения программного продукта
- •5 Безопасность труда
- •5.1 Анализ условий труда
- •5.2 Расчет искусственного освещения
- •5.3 Возможные чрезвычайные ситуации
- •5.3.1 Расчет зоны заражения
- •5.3.2 Расчет времени эвакуации
- •Заключение
- •Список использованных источников
- •Приложение а
- •Приложение б
1.5.1 Назначение программного продукта
Данный программный продукт предназначен для автоматизации процессов обслуживания заявок пользователей и ведение реестра отчетности сотрудников ОИТ.
Разработанное средство позволит:
- хранить данные централизованно;
- осуществлять контроль за исполнением заявок;
- оперативно генерировать отчеты;
- снизить временные затраты на принятие, обработку и исполнение заявок.
Пользователями данного программного средства выступают сотрудники отделов и отделений Филиала согласно схеме информационных потоков, представленной на рисунке 1.1.
1.5.2 Требования к программному средству и техническому оборудованию
Данный программное средство должно решать следующие задачи:
- подача и принятие заявок на обслуживание и установку компьютерной оргтехники;
- осуществление контроля за исполнением заявок;
- контроль ввода необходимой информации;
- генерирование отчетов по выполненным заявкам;
- создание удобного и понятого интерфейса;
- обеспечить целостность данных, хранящихся в БД.
Для нормального функционирования программного средства необходимо следующее аппаратное обеспечение с минимальными требованиями:
- компьютер Pentium II 400 MHz или ему подобный;
- 256 Мб оперативной памяти;
- 30 Мб свободного места на жестком диске;
- монитор VGA с разрешением 800х600 пикселей;
- клавиатура, мышь;
- струйный, лазерный принтер либо МФУ.
Требования к программному обеспечению:
- операционная система Windows 98/2000/XP/Vista/Seven;
- Java Runtime Environment (JRE);
- сервер Tomcat 7;
- СУБД PostgreSQL 8.4;
- Microsoft Office 2007/2010.
В состав сопровождающей документации должны входить:
- пояснительная записка;
- руководство для клиентской части средства;
- руководство администратора;
- руководство программиста.
В первом разделе проведена следующая работа:
- проведен анализ предметной области Филиала;
- исследованы информационные потоки рассматриваемой предметной области;
- проанализированы существующие аналоги разрабатываемому программному средству;
- сформулирована постановка задачи на разработку программного средства для автоматизации процессов подачи, принятия и обработки заявок на обслуживание компьютерной оргтехники, осуществлена декомпозиция задач;
- сформулированы требования к аппаратному и программному обеспечению разрабатываемого средства.
2 Проектный раздел
2.1 Инструментальные средства
2.1.1 Выбор языка программирования
Выбирая язык программирования для разработки программного средства, было рассмотрено несколько вариантов: C++, Java и C#. Их сравнительная характеристика рассмотрена в таблице 2.1.
Таблица 2.1 – Сравнительная характеристика языков программирования
|
C++ |
Java |
C# |
|
1 |
2 |
3 |
4 |
|
Подход к разработке ПО |
объектно-ориентированный |
объектно-ориентированный |
объектно-ориентированный |
|
Инструкция break с меткой |
- |
+ |
-
|
|
Целые числа произвольной длинны |
- |
+ |
+ |
|
Поддержка языка SQL |
+ |
+ |
+ |
|
Кроссплатформенность |
- |
+ |
- |
|
Многопоточная компиляция |
+ |
+ |
- |
|
Поддержка оконного интерфейса |
+ |
+ |
+ |
|
Блок else (исключения) |
- |
+ |
+ |
|
Возможность создания запускаемого файла |
+ |
+ |
+ |
|
Возможность разработки Web-приложений |
- |
+ |
+/-(имеется только для клиентов Windows) |
|
Как видно из таблицы, для разработки программного средства по автоматизации обслуживания заявок от пользователей ЛВС Филиала наиболее подходят языки программирования Java и C#, так как они поддерживают возможность разработки Web-приложений. Акцент на этой технологии был установлен ввиду особенности поставленной задачи: программное средство должно встраиваться в АСУОД Tandem, установленную в Филиале, иметь Web-интерфейс и работать без установки на компьютеры пользователей. То есть сама программа будет запускаться с сервера через локальную сеть Филиала. Для решения этих задач больше подходит язык Java, так как он более адаптирован для программирования Internet-программ.
Технология Java - это объектно-ориентированная, платформо-независимая, многопоточная среда программирования. Java стала основой для "умных" Web и сетевых сервисов, позволила надежно и безопасно наращивать информационную структуру предприятия без зависимости от отдельной платформы. Все виды систем могут взаимодействовать друг с другом - начиная со смарт карт и заканчивая суперкомпьютерами - независимо от аппаратной платформы и системного программного обеспечения. С технологией Java приложение можно исполнять на любом типе машин - персональном компьютере, компьютере Макинтош, сетевом компьютере или даже на телефоне [8].
Когда программный продукт, написанный на языке программирования Java, компилируется с использованием Java-компилятора, получается байткод. Этот байткод может интерпретироваться на любой платформе, где установлена виртуальная машина Java. Это означает, что нет необходимости в импортировании программ, то есть их перевода на язык, понятный конкретному компьютеру [9].
За последние годы увеличилось множество несовместимых аппаратных архитектур, каждая из которых поддерживает множество несовместимых операционных систем, которые, в свою очередь, управляют несовместимыми графическими пользовательскими интерфейсами. Задача создания распределенных клиент-серверных сред сталкивается с проблемой интеграции подобных разрозненных продуктов. Развитие Internet, World Wide Web и электронного бизнеса привнесло новый уровень сложности в процесс разработки. Язык Java компании Sun Microsystems решает эти проблемы [10].
Цикл разработки программных средств с использованием Java значительно сокращается в силу того, что Java - интерпретируемый язык. Процесс компиляции-сборки-загрузки устарел - теперь программу надо только откомпилировать и сразу запускать.
Поддержка системы многопоточности позволяет создавать параллельно исполняемые взаимодействующие легковесные процессы.
Приложения настраиваемы под изменяющееся окружение: возможна динамическая загрузка программных модулей из любого места в сети.
Так как создаваемое программное средство относится к Web-приложениям, то для его разработки необходима расширенная платформа Java Enterprise Edition, или Java EE, являющаяся стандартом разработки серверных Java приложений. Эта платформа содержит необходимые технологии, такие как сервлеты, JSP, JDBC. Сервлет — это небольшая программа, выполняемая на сервере. Сервлеты динамически расширяют функциональные возможности Web-сервера. Их часто называют web-компонентами, так как они выполняются в специальной среде исполнения, создаваемой контейнером сервлетов или web-контейнером, таким, как Jakarta Tomcat или ВЕА WebLogic [11].
Таким образом, с появлением сервлетов язык Java распространился на оба конца соединения «клиент-сервер». Сервлеты служат для создания динамически генерируемого содержимого, которое затем обслуживает клиента. Хотя динамически генерируемое содержимое доступно также посредством таких механизмов, как CGI (Common Gateway Interface — общий шлюзовой интерфейс), сервлет обеспечивает ряд преимуществ, в том числе — повышение производительности.
Поскольку сервлеты (подобно всем Java-программам) компилируются в байт-код и выполняются машиной JVM, они в высшей степени переносимы. Следовательно, один и тот же сервлет может применяться в различных серверных средах. Единственные необходимые условия для этого — поддержка сервером машины JVM и контейнера сервлета.
Java Server Pages (JSP, или в русском переводе серверные страницы Java) являются стандартным расширением платформы Java и построены на основе технологии сервлетов. Основное назначение JSP-страниц – это упростить создание и управление динамическим содержанием в World Wide Web. Структура серверной страницы JSP представляет некий компромисс между сервлетом и обычной HTML-страницей. Так, технология JSP позволяет комбинировать разметку на языке HTML или XML с фрагментами кода Java в одном документе. Этот код выполняется на стороне сервера и служит для обработки запросов клиентов и генерации ответов. Фрагменты кода Java, как и обычные HTML-теги, начинаются и заканчиваются угловыми скобками, однако дополнительно к угловым скобкам используются знаки процента. Эти специальные теги предписывают контейнеру JSP использовать этот код для генерации сервлета или его части. Остальные HTML- и XML-фрагменты, а также прочие данные передаются клиенту без обработки на стороне сервера [12].
Благодаря сервлетам разрабатываемое программное средство не нуждается в установке на рабочие станции пользователей, а запускается и выполняется на сервере, что значительно упрощает первичное апробирование и дальнейшую отладку программного средства.
