- •Содержание
- •Введение
- •1 Теоретическая часть
- •Постановка задачи
- •1.2 Анализ предметной области
- •Требования к программному продукту
- •1.4. Средства реализации
- •1.5. Сравнительный анализ имеющихся средств
- •1.6. Критерии выбора
- •1.7. Выбор инструментальных средств
- •2 Практическая часть.
- •2.1 Моделирование предметной области
- •2.2 Технология создания программного продукта
- •2.3. Техническая реализация программного продукта, алгоритмы и коды
- •2.4. Внедрение и апробация программного продукта
- •2.5. Перспективы развития
- •3 Охрана труда
- •4 Инструкция пользователя
- •5 Организационно-экономическая часть
- •5.1 Расчёт затрат на внедрение ресурса
- •5.1.1 Расчёт себестоимости ресурса
- •5.1.2 Расчёт статьи «Материалы и комплектующие изделия»
- •5.1.3 Расчёт фонда заработной платы
- •5.1.4 Расчёт затрат на содержание и эксплуатацию оборудования
- •5.1.5 Расчёт накладных расходов
- •5.2 Экономическая эффективность разработки
- •Заключение
- •Список использованных источников (литературы)
- •Приложение а
- •Приложение б
- •Приложение в
- •Приложение г
Требования к программному продукту
Программный продукт в виде системы тестирования должен подходить под любые системные характеристики персональных компьютеров в техникуме, работать в максимальной производительности на процессорах Intel Core 2 Duo с тактовой частотой 2.2 Ггц или аналогичных, при ограничении в 512 МБ оперативной памяти и занимать на жестком диске пространство, не мешающее работе операционной системе.
Система тестирования должна быть изолирована от различных способов воздействия из вне, например нарушения целостности данных или препятствие нормальному функционированию.
В ходе разработки необходимо учесть что пользоваться системой тестирования будут пользователи разной квалификации в области информационных технологий, из этого следует что программный продукт должен обладать удобным пользовательским интерфейсом.
1.4. Средства реализации
Для разработки системы тестирования использовался объектно-ориентированных язык программирования и прототипно-ориентированный язык программирования.
Объектно-ориентированный язык программирования — парадигма программирования, в которой основными концепциями являются понятия объектов и классов [1].
Прототипно-ориентированный язык программирования — стиль объектно-ориентированного программирования, при котором отсутствует понятие класса, а повторное использование (наследование) производится путём клонирования существующего экземпляра объекта — прототипа [2].
Для этой задачи подходят такие языки программирования PHP (серверная часть), JavaScript (клиентская часть).
PHP (англ. PHP: Hypertext Preprocessor) — язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов [3].
JavaScript — прототипно-ориентированный скриптовый язык программирования. Является диалектом языка ECMAScript [4].
JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.
Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса.
В качестве хранилища данных были выбраны две СУБД:
PostgreSQL — свободная объектно-реляционная система управления базами данных (СУБД) то есть поддерживающая технологии, реализующие объектно-ориентированный подход [5];
MySQL — свободная система управления базами данных (СУБД). MySQL является решением для малых и средних приложений. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы [6].
1.5. Сравнительный анализ имеющихся средств
При выборе средств разработки необходимо сначала провести их анализ, оценить возможности, выделить особенности тех или иных средств реализации.
Для сравнения можно взять объектно-ориентированный язык программирования C# (Cи-Шарп) с поддержкой .NET.
C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML [7].
С# подходит под все критерии необходимые для разработки программного продукта, но данный язык ограничен в выборе платформы.
C# поддерживается только на операционной системе Windows, не обеспечивая кроссплатформенную функцию программного продукта.
Рассмотрим языки программирования которые я выбрал для реализации данного программного продукта.
В области программирования для глобальных сетей PHP — один из популярных скриптовых языков благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.
Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. Основные из них:
автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle, Интерфейс PDO);
автоматизированная отправка HTTP-заголовков;
работа с HTTP-авторизацией;
работа с cookies и сессиями;
работа с локальными и удалёнными файлами, сокетами;
обработка файлов, загружаемых на сервер;
шаблонизация.
Язык программирования JavaScript был выбран для того чтобы снизить частично нагрузку с сервера и перенести ее на клиентский браузер.
JavaScript обладает рядом свойств объектно-ориентированного языка, но реализованное в языке прототипирование обусловливает отличия в работе с объектами по сравнению с традиционными объектно-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам — функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания — что придаёт языку дополнительную гибкость.
Получается что данный программный продукт можно реализовать с помощью любого языка программирования. Ограничением служит лишь время и трудность разработки системы, также ограничение накладывают знание языка программирования.
Для сравнение баз данных были выбраны две СУБД.
PostgreSQL — свободная объектно-реляционная система управления базами данных (СУБД).
PostgreSQL базируется на языке SQL и поддерживает многие из возможностей стандарта SQL:2003 (ISO/IEC 9075).
На данный момент (версия 9.1.3), в PostgreSQL имеются следующие ограничения:
максимальный размер базы данных - нет ограничений
максимальный размер таблицы 32 ТБайт
максимальный размер записи 1,6 ТБайт
максимальный размер поля- 1 ГБайт
максимум записей в таблице - ограничено размером таблицы
максимум полей в таблице 250—1600, в зависимости от типов полей
максимум индексов в таблице – нет ограничений.
Сильными сторонами PostgreSQL считаются:
поддержка БД практически неограниченного размера;
мощные и надёжные механизмы транзакций и репликации;
расширяемая система встроенных языков программирования: в стандартной поставке поддерживаются PL/pgSQL, PL/Perl, PL/Python и PL/Tcl; дополнительно можно использовать PL/Java, PL/PHP, PL/Py, PL/R, PL/Ruby, PL/Scheme и PL/sh, а также имеется поддержка загрузки C-совместимых модулей;
наследование;
легкая расширяемость.
В MySql максимальные размеры таблиц:
MySQL 3.22: до 4 ГБ;
MySQL 3.23+: до 8 млн ТБ (263 байт);
Размер таблицы ограничен её типом. В общем случае тип MyISAM ограничен предельным размером файла в файловой системе операционной системы. Например в NTFS этот размер теоретически может быть до 32 эксабайт. В случае InnoDB одна таблица может храниться в нескольких файлах, представляющих единое табличное пространство. Размер последнего может достигать 64 терабайт [6].
Для данного программного продукта были реализованы два интерфейса взаимодействия с СУБД, для PostgreSQL и MySQL.
