Средства разработки сайтов

Средства разработки сайтов.

Статьи по теме
Искать по теме

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

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

1. Общая архитектура веб-сайтов

В основе веб-сайтов лежит архитектура "клиент-сервер", в которой задания или сетевая нагрузка распределены между поставщиками услуг (сервисов), называемых серверами, и заказчиками услуг, называемых клиентами. В качестве среды взаимодействия клиента с сервером используется Интернет (рис. 1).

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

Средства разработки сайтов

Рисунок 1. Общая архитектура приложения (концепция взаимодействия)

Основными достоинствами архитектуры "клиент-сервер" являются:

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

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

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

Основные недостатки:

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

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

- Высокая стоимость оборудования.

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

2. Основные средства разработки веб-сайта

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

Web-страницы могут существовать в любом формате, но в качестве стандарта принят Hyper Text Markup Language (язык гипертекстовой разметки) – это основной язык, с помощью которого создаются веб-страницы. Страница, которую пользователь видит в своем браузере, может состоять из множества разных файлов – например, изображений, анимационных роликов, сценариев JavaScript, апплетов и т. д. – но основой страницы практически всегда является документ HTML. Другие языки разметки (прежде всего многочисленные приложения XML) пока еще слабо поддерживаются браузерами и поэтому не вытесняют HTML на компьютерах обычных пользователей.

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

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

- управлять связями документа с другими ресурсами (изображениями, таблицами стилей, внешними программами, сторонними Web-страницами).

Теги HTML не задают определенные и точные атрибуты форматирования документа, как, например, Microsoft Word. Конкретный вид документа окончательно определяет только программа-браузер на компьютере. Необходимость такого подхода связана с разнородностью аппаратного и программного обеспечения устройств, подключенных к Интернету. HTML – не язык программирования, хотя Web-страницы могут как сами являться результатом работы серверных программ, так и включать в себя специально подготовленные клиентские программы – скрипты и апплеты.

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

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

CSS – одна из широкого спектра технологий, одобренных консорциумом W3C и получивших общее название "стандарты Web". В 1990-х годах стала ясна необходимость стандартизировать Web, создать какие-то единые правила, по которым программисты и веб-дизайнеры проектировали бы сайты. Так появились языки HTML 4.01 и XHTML, и стандарт CSS.

В середине 1990-х Консорциум Всемирной паутины (W3C) стал проявлять интерес к CSS, и в декабре 1996 года была издана рекомендация CSS1. С течением времени применялись новые рекомендации, которые модернизировали язык с сохранением обратной совместимости.

Для написания сценариев активных HTML-страниц используется JavaScript.

JavaScript – объектно-ориентированный язык разработки встраиваемых приложений, выполняющихся как на стороне клиента, так и на стороне сервера. Синтаксис языка очень похож на синтаксис языка Java, поэтому его часто называют Java-подобным. Клиентские приложения выполняются браузером просмотра веб-документов на машине пользователя, серверные приложения выполняются на сервере. При разработке обоих типов приложений используется общий компонент языка, называемый ядром и включающий определения стандартных объектов и конструкций (переменные, функции, основные объекты и средство LiveConnect взаимодействия с Java-апплетами), и соответствующие компоненты дополнений языка, содержащие специфические для каждого типа приложений определения объектов.

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

Языковые средства и возможности среды представляются объектами, а сценарий (программа) представляет собой набор взаимодействующих объектов. Объект JavaScript – это неупорядоченный набор свойств, каждое из которых имеет несколько атрибутов, которые определяют, как это свойство может использоваться. Свойства – это контейнеры, которые содержат другие объекты, примитивные значения и методы. Примитивное значение – это элемент любого из встроенных типов: Undefined, Null, Boolean, Number и String. Объект – это элемент еще одного встроенного типа Object. Метод – функция, связанная с объектом через свойство.

Для создания веб-приложений на стороне сервера используются разнообразные технологии и языки программирования, такие как PHP, ASP.NET, Java, Python, Ruby и другие. Ряд из них (PHP, Python) имеют открытый код, распространяются свободно и могут использоваться практически на любых веб-серверах, другие (ASP, ASP.NET, Java) – привязаны к конкретным веб-серверам. На стороне клиента используется JavaScript.

Рассмотрим наиболее популярные языки и технологии программирования, такие как ASP, Python, PHP.

ASP (англ. Active Server Pages – "активные серверные страницы") – технология от Microsoft, позволяющая легко разрабатывать приложения для World Wide Web. ASP работает на платформе операционных систем линии Windows NT и на веб-сервере Microsoft IIS. ASP не является языком программирования – это лишь технология предварительной обработки, позволяющая подключать программные модули во время процесса формирования Web-страницы. Относительная популярность ASP основана на простоте используемых языков сценариев (VBScript или JScript) и возможности использования внешних COM-компонент.

Технология ASP получила своё развитие в виде ASP.NET – новой технологии создания веб-приложений, основанной на платформе Microsoft.NET.

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

Хотя ASP.NET берёт своё название от старой технологии Microsoft ASP, она значительно от нее отличается. Microsoft полностью перестроила ASP.NET, основываясь на Common Language Runtime (CLR), который является основой всех приложений Microsoft.NET. Разработчики могут писать код для ASP.NET, используя практически любые языки программирования, в том числе, и входящие в комплект.NET Framework(C#, Visual Basic.NET, и JScript.NET). ASP.NET имеет преимущество в скорости по сравнению со скриптовыми технологиями, так как при первом обращении код компилируется и помещается в специальный кеш, и впоследствии только исполняется, не требуя затрат времени на парсинг, оптимизацию.

Использование в качестве платформ операционных систем линии Windows NT и веб-сервера Microsoft IIS значительно ограничивает область применения ASP.NET, так как подавляющее число хостинг-провайдеров используют на своих серверах Unix-системы, а в качестве веб-сервера – Apache.

Python – мультипарадигменный язык программирования высокого уровня с динамической типизацией, автоматическим управлением памятью и удобными высокоуровневыми структурами данных, такими как словари (хеш-таблицы), списки, кортежи. Поддерживает классы, модули (которые могут быть объединены в пакеты), обработку исключений, а также многопоточные вычисления. Питон обладает простым и выразительным синтаксисом. Язык поддерживает несколько парадигм программирования: структурное, объектно-ориентированное, функциональное и аспектно-ориентированное.

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

Python – активно развивающийся язык программирования, новые версии (с добавлением/изменением языковых свойств) выходят примерно раз в два с половиной года. Вследствие этого и некоторых других причин на Python отсутствуют ANSI, ISO или другие официальные стандарты, их роль выполняет CPython.

К основным недостаткам Python относят:

1. Низкое быстродействие. Python, как и многие другие интерпретируемые языки, имеют один общий недостаток – сравнительно невысокую скорость выполнения программ. Однако, в случае с Python считается, что этот недостаток с лихвой компенсируется уменьшением времени разработки программы и в сообществе Python -программистов преобладает мнение, что на Python можно решить задачу в среднем в 3-5 раз быстрее чем на Си++ или Java. Множество программ/библиотек для интеграции с другими языками программирования предоставляют возможность использовать другой язык для написания критических участков. В самой популярной реализации языка Python интерпретатор довольно велик и более требователен к ресурсам, чем в аналогичных популярных реализациях, что ограничивает его применение во встроенных системах.

2. Отсутствие статической типизации. Отсутствие статической типизации является не столько недостатком интерпретатора, сколько выбором дизайнера языка. Дело в том, что в Python принята так называемая "Утиная типизация". В силу этого типы передаваемых значений недоступны на этапе компиляции, и ошибки вроде AttributeError могут возникать во время исполнения. Отсутствие статической типизации также является одной из основных причин низкого быстродействия.

3. Невозможность модификации встроенных классов. По сравнению с Ruby и некоторыми другими языками в Python отсутствует возможность модифицировать встроенные классы, такие как int, str, float, list и другие, что однако позволяет Python потреблять меньше оперативной памяти и быстрее работать. Еще одной причиной введения такого ограничения является необходимость согласования с модулями расширения. Многие модули (в целях оптимизации быстродействия) преобразуют Python-объекты элементарных типов к соответствующим C типам вместо манипуляций с ними посредством C API.

Глобальная блокировка интерпретатора (GIL). GIL (Global Interpreter Lock) – проблема, присущая CPython, Stackless и PyPy, но отсутствующая в Jython и IronPython. При своей работе основной интерпретатор Python постоянно использует большое количество потоково-небезопасных данных. В основном это словари, в которых хранятся атрибуты объектов. Для избежания разрушения этих данных при совместной модификации из разных потоков перед началом исполнения нескольких инструкций (по умолчанию 100) поток интерпретатора захватывает GIL, а по окончанию освобождает. Вследствие этой особенности в каждый момент времени может исполнятся только один поток Python кода, даже если в компьютере имеется несколько процессоров или процессорных ядер (GIL также освобождается на время выполнения блокирующих операций, таких как ввод-вывод, изменения/проверка состояния синхронизирующих примитивов и других, таким образом если один поток блокируется, другие могут исполняться). Была предпринята попытка перехода к более гранулярным синхронизациям, однако из-за частых захватов/освобождений блокировок эта реализация оказалась слишком медленной. В ближайшем будущем переход от GIL к другим техникам не предполагается.

В области программирования для сети Internet PHP – один из популярнейших языков благодаря своей простоте, скорости выполнения, богатой функциональности и распространению исходных кодов на основе лицензии PHP. Именно по этим причинам было принято решение создавать динамический сайт на PHP. PHP (англ. PHP: Hypertext Preprocessor – "PHP: препроцессор гипертекста") – скриптовый язык программирования, созданный для генерации HTML-страниц на веб-сервере и работы с базами данных. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров. PHP отличается наличием ядра и подключаемых модулей, "расширений": для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и т. п. Существуют сотни расширений, но в стандартную поставку входит лишь несколько десятков хорошо зарекомендовавших себя.

PHP обладает рядом преимуществ, в числе которых:

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

- Традиционность. Язык РНР будет казаться знакомым программистам, работающим в разных областях. Многие конструкции языка позаимствованы из Си, Perl. Код РНР очень похож на тот, который встречается в типичных программах на С или Pascal. Это заметно снижает начальные усилия при изучении РНР. PHP – язык, сочетающий достоинства Perl и Си и специально нацеленный на работу в Интернете, язык с универсальным (правда, за некоторыми оговорками) и ясным синтаксисом.

Простота. Сценарий РНР может состоять из 10 000 строк или из одной строки – все зависит от специфики вашей задачи.

PHP – язык, который может быть встроен непосредственно в html -код страниц, которые, в свою очередь будут корректно обрабатываться PHP -интерпретатором. Мы можем использовать PHP для написания CGI-сценариев и избавиться от множества неудобных операторов вывода текста. Мы можем привлекать PHP для формирования HTML-документов, избавившись от множества вызовов внешних сценариев.

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

- Безопасность. РНР предоставляет в распоряжение разработчиков и администраторов гибкие и эффективные средства безопасности, которые условно делятся на две категории: средства системного уровня и средства уровня приложения.

- Гибкость. Поскольку РНР является встраиваемым (embedded) языком, он отличается исключительной гибкостью по отношению к потребностям разработчика. Хотя РНР обычно рекомендуется использовать в сочетании с HTML, он с таким же успехом интегрируется и в JavaScript, WML, XML и другие языки. Кроме того, хорошо структурированные приложения РНР легко расширяются по мере необходимости (впрочем, это относится ко всем основным языкам программирования).

- Бесплатное распространение. Стратегия Open Source, и распространение исходных текстов программ в массах, оказало, несомненно, благотворное влияние на многие проекты, в первую очередь – Linux, хотя и успех проекта Apache сильно подкрепил позиции сторонников Open Source. Сказанное относится и к истории создания РНР, поскольку поддержка пользователей со всего мира оказалась очень важным фактором в развитии проекта РНР.

3. Инструментальные средства разработки

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

1. PHPStorm 2016 – это уникальный инструмент для программирования на PHP, сочетающий в себе возможности редактора, отладчика и менеджера проектов. Интеллектуальный редактор PHP кода с подсветкой синтаксиса, автодополнением кода, расширенными настройками форматирования кода, предотвращением ошибок налету и другие возможности помогают разработчикам писать опрятный и легко-поддерживаемый код.

2. Notepad++ – текстовый редактор, отвечающий всем требованиям профессиональных веб-разработчиков. Многочисленные панели инструментов позволяют быстро набирать исходный код будущей страницы практически без помощи клавиатуры, а внутренний анализатор проверяет корректность документа. Главная же особенность Notepad++ – поддержка плагинов, которые способствуют расширению базового функционала редактора. В программу интегрируются дополнительные плагины, позволяющие настроить проверку орфографии, автоматическое сохранение документов, симметричное и асимметричное шифрование текста и многое другое.

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

4. Для обеспечения кроссбраузерности динамического сайта при верстке будут использованы наиболее распространенные браузеры – Internet Explorer, Mozilla Firefox, Opera, Google Chrome.

4. СУБД для сайтов

В мире существует множество СУБД. Рассмотрены будут наиболее популярные СУБД, которые имеют многолетнюю историю разработки и поддержки.

- Oracle Database 11g Standard Edition Oracle Database 11g является единственной СУБД, предназначенной для распределенных вычислительных сред (Grid). Выпуская Oracle Database 11g, Oracle предоставляет клиентам возможность управлять корпоративной информацией проще, чем когда-либо прежде, лучше понимать свой бизнес и быстрее внедрять инновации. Oracle Database 11g обеспечивает высочайшие уровни производительности, масштабируемости, доступности, безопасности и удобства управления в сетях распределенных вычислений на базе стандартных серверов и систем хранения. СУБД Oracle Database 11g предназначена для эффективного развертывания на базе различных типов оборудования, от небольших blade-серверов до мощных симметричных многопроцессорных серверных систем и кластеров любых масштабов. Этот продукт предлагает функции автоматизации управления, обеспечивая удобство и эффективность эксплуатации. Стоимость решения – от 100 000 рублей.

- Firebird (FirebirdSQL) – компактная, кроссплатформенная, свободная система управления базами данных (СУБД), работающая на GNU/Linux, Microsoft Windows и разнообразных Unix платформах. В качестве преимуществ Firebird можно отметить многоверсионную архитектуру, обеспечивающую параллельную обработку оперативных и аналитических запросов (это возможно потому, что читающие пользователи не блокируют пишущих), компактность (дистрибутив 5Mb), высокую эффективность и мощную языковую поддержку для хранимых процедур и триггеров. Среди недостатков: отсутствие кеша результатов запросов, полнотекстовых индексов. Стоимость – бесплатно.

- MySQL (официально произносится "май-эс-кью-эль") – свободная система управления базами данных (СУБД). MySQL является собственностью компании Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License и под собственной коммерческой лицензией, на выбор. Помимо этого разработчики создают функциональность по заказу лицензионных пользователей, именно благодаря та кому заказу почти в самых ранних версиях появился механизм репликации. Стоимость простой лицензии MySQL Enterprise на год – 600 у.е., или 18 000 рублей. Стоимость лицензии на MySQL Community edition – бесплатно

Решение Oracle является неприемлемым с точки зрения стоимости лицензии, а также необходимой аппаратной части для работы этой СУБД.

СУБД FireBird по сравнению с MySQL похожи по функциональности, однако FireBird не поддерживает кеширование запросов, что означает низкую скорость работы на чтение данных.

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

Это означает, что в рамках разрабатываемого приложения возможно использовать бесплатную версию MySQL Community Edition 5.0.10.

MySQL имеет API для языков Delphi, C, C++, Эйфель, Java, Лисп, Perl, PHP, Python, Ruby, Smalltalk и Tcl, библиотеки для языков платформы.NET, а также обеспечивает поддержку для ODBC посредством ODBC-драйвера MyODBC.

5. Веб-сервер для сайта

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

- Nginx [engine x] – высокопроизводительный HTTP-сервер, предназначенный в основном для раздачи клиентам статического контента (изображений, javascript- файлов, css-стилей и т.д.). В основе лежит технология неблокирующих соединений, что при большом количестве одновременных подключений существенно экономит ресурсы сервера.

- Apache HTTP-сервер – свободный веб-сервер. По статистике на май 2009 года используется в 46% всех веб-серверов, что делает его самым популярным веб-сервером. Версия 2.2.х обладает проверенной годами и миллионами пользователей стабильностью и надежностью. Сервер имеет большое количество модулей для работы со многими серверными технологиями.

Возможна совместная работа двух веб-сервером: nginx обрабатывает запросы на раздачу статичного контента, в то время как apache отвечает за выполнение серверных скриптов. Однако, выигрыш в экономии ресурсов сервера будет заметен только при высокой посещаемости сервера (начиная от 10 одновременных подключений), что в ближайший год развития приложения будет невозможно. Поэтому для работы в качестве веб-сервера выбирается Apache HTTP-сервер.

Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Веб-сервер Apache разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation и включён во многие программные продукты, среди которых СУБД Oracle и IBM WebSphere.

6. Отладка веб-сайта

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

Точка останова (breakpoint) – это преднамеренное прерывание выполнения программы, при котором выполняется вызов отладчика. После перехода к отладчику, программист может исследовать состояние программы (состояние переменных, стек вызовов и т.д.), с тем чтобы определить, правильно ли ведёт себя программа. После остановки в отладчике, программа может быть завершена, либо продолжена с того же места, где произошёл останов.

Тестирование – процесс многократного выполнения программы с целью обнаружения как можно большего количества ошибок. Основные виды тестирования для веб-приложения, также как для любого приложения:

- Модульное тестирование – выполняется с целью проверки функциональности классов, входящих в приложение

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

- Системное тестирование – это тестирование правильности функционирования системы в целом. При этом программа рассматривается с точки зрения пользователя.

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

Специфика веб-приложения – это большое количество пользователей, имеющих одновременный доступ к функциональности приложения. Поэтому для веб-приложений особенно важными являются такие этапы системного тестирования, как тестирование производительности, масштабируемости и стабильности. Часто эти этапы объединяются общим термином "тестирование под нагрузкой". Цели тестирования под нагрузкой:

- Производительность. Цель: ускорение выполнения запроса пользователя

- Масштабируемость. Цель: увеличение количества пользователей, одновременно обращающихся к приложению при пиковой нагрузке.

- Стабильность. Цель: уменьшение утечек памяти в компонентах приложения и числа системных сбоев.

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

Следующий шаг планирования тестирования – это определение стратегии тестирования. Для этого необходимо определить:

- Узкие места системы и количество параллельных запросов, которые должна обрабатывать система

- Количество несинхронизированных пользователей может обслуживать приложение с приемлемым временем отклика

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

После того, как веб-приложение протестировано, результат работы программы должен удовлетвеорять всем требованиям, которые предъявлены в постановке задачи.

7. Анализ качества программного продукта

Набор критериев оценки качества программного обеспечения определён ГОСТом [15] и включает следующие показатели:

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

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

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

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

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

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

Одной из важнейших характеристик качества программного продукта является надёжность.

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

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

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

В процессе разработки веб-приложения все требования, предъявленные к нему при постановке задачи, были выполнены.

Тестирование является одним из важных этапов жизненного цикла программного продукта, направленным на повышение качественных характеристик. Тестирование – это процесс многократного выполнения программы с целью обнаружения ошибок. Программа тестируется для того, чтобы повысить уровень ее надежности, т.е. выявить максимальное число ошибок [15].

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

Вывод

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

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

Литература

1. ГОСТ 34.602–89. Техническое задание на создание автоматизированной системы: Утвержден и введен 24.03.89. – М.: Изд–во стандартов, 1989. – 20 с.

2. ГОСТ 28195-89. Оценка качества программных продуктов. Общие положения. М.: Издательство стандартов, 1989.

3. Байрон А.Б. Drupal: Создание и управление сайтом. СПб: Символ – Плюс, 2010. – 576 с.

4. Беклешов В. К. Технико-экономическое обоснование проектов М.: Высшая школа, 1991

5. Бенкен Е.С. PHP, MySQL, XML: программирование для Интернета. – С. Пб.:BHV, 2008. – 570 с.

6. Гарретт Дж. Веб-дизайн. Книга Дж. Гарретта. Элементы опыта взаимодействия. – М.: Символ-Плюс, 2008. – 192 с.

7. Дьяконов В.П. Internet Настольная книга пользователя. – М.: АСТ-Пресс, 2000. – 640с.

8. Калиновский А.И. Юзабилити: как сделать сайт удобным. – М.: Новое знание, 2009. – 216 c.

9. Конверс Т.А. PHP 5 и MySQL. Разработка и внедрение. Библия пользователя. – М.: "Вильямс", 2006. –1216 с.

10. Нидерст Дж. Web – мастеринг для профессионалов. Настольный справочник – СПб: Изд-во Питер, 2011. – 240c.

11. Рассохин Д.Е. World Wide Web – информационная паутина в сети Интернет. – М.:Техиздат, 2012. –115 с.

12. Смит Б. Создание Web-страниц для "чайников". – М.: изд-во "Диалектика", 2001. – 398с.

13. Харрис Э. PHP/MySQL для начинающих. – С. Пб.:Издательство "КУДИЦ-Образ", 2005. – 384 с.

14. Цеховой В.А. Web-дизайн и коммерция. – М.: Наука и техника, 2000. – 192с.

15. Шакин В.Н. Методические указания по дисциплине "Теоретические основы построения БД" / Шакин В.Н., Сосновиков Г.К., Юскова И.Б. – М.: МТУСИ, Кафедра вычислительной математики и программирования, 2005.

16. Экслер А.Б. Укрощение Интернета, или Самый полный и понятный самоучитель работы в Сети. – М.:НТ Пресс, 2007. – 944 с.