Главная страница
Навигация по странице:


  • диплом. Федоров М А. 1. Основная часть


    Скачать 7.6 Mb.
    Название1. Основная часть
    Анкордиплом
    Дата29.06.2022
    Размер7.6 Mb.
    Формат файлаdocx
    Имя файлаФедоров М А.docx
    ТипРеферат
    #620062
    страница1 из 2
      1   2




    СОДЕРЖАНИЕ

    Введение

    3

    1. Основная часть

    5

    2. Практическая часть

    25

    3. Техника безопасности

    40

    4. Заключение

    45

    5. Список литературы

    46

    Приложение А

    47

    Приложение Б

    51

    Приложение В

    61


    ВВЕДЕНИЕ

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

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

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

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

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

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

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

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

    Целью является разработка программного продукта, а именно web - сайт онлайн – библиотеки «WeBook». Разработка будет направлена на организацию работы сайта на сервере во взаимодействии с базой данных.

    Исходя из цели, необходимо поставить следующие задачи:

    1. Провести анализ предметной области.

    2. Разработка структуру web-сайта.

    3. Разработка интерфейса программного продукта.

    4. Разработка кода программного продукта.

    5. Тестирование и отладка программного продукта.

    Для дипломной работы будет разработан web- сайт онлайн-библиотеки «WeBook».

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

    1. Основная часть - теоретическая часть, анализ литературы.

    2. Практическая часть - реализация проекта программного продукта.

    1. ОСНОВНАЯ ЧАСТЬ

    1.1. Описание предметной области

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

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

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

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

    Область диспетчеризации (юр. лица): Данное приложение является частью системы управления автотранспортом, автоматизирует работу диспетчерской службы и службы учета ТЭР (топливно-энергетических ресурсов).

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

    Проект программного продукта - процесс создания проекта программного обеспечения, изучающая методы проектирования.

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

    Проектирование ПО включает следующие основные виды деятельности:

    1. Выбор метода решения.

    2. Выбор представления внутренних данных.

    3. Разработка основного алгоритма.

    4. Документирование ПО.

    5. Тестирование и подбор тестов.

    6. Выбор представления входных данных.

    Требования к сайту могут быть такими:

    1. Корректное отображение во всех браузерах

    2. Структурированная информация

    3. Гармоничный дизайн

    4. Хорошая конверсия

    5. Кроссплатформенность – это важная составляющая функций веб-сайта, которая повышает конверсию страницы и ранжирование в списках поисковых систем.

    1.2. Анализ и проектирование программного обеспечения

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

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

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

    Логика программы может быть следующего вида, рисунок 1.



    Рисунок 1 - Логика продукта

    Логика программного продукта, а именно web-сайта «онлайн-библиотеки» заключается в том, что пользователь будет взаимодействовать непосредственно с графическим интерфейсом сайта.

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

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

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

    Существует заметная разница между DFD и блок-схемами. Блок-схема изображает поток управления в программных модулях. DFD отображают поток данных в системе на разных уровнях. DFD не содержит элементов управления или ветвления.

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

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

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

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

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

    Связь - взаимодействие действующих лиц и соответствующих вариантов использования.

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

    Использование (uses) include подразумевает, что существует некоторый фрагмент поведения, разрабатываемого ПО, который повторяется в нескольких вариантах использования. Этот фрагмент оформляют как отдельный вариант и указывают связь с ним типа «использование».

    Расширение (extends) применяют, если имеется два подобных варианта использования, различающиеся наличием в одном из них некоторых дополнительных действий. В этом случае дополнительные действия определяют, как отдельный вариант использования, который связан с основным вариантом связью типа «расширение».

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

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

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

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



    Рисунок 2 - Жизненный цикл программного обеспечения

    Макет программного продукта – это, процесс создания программного продукта на стадии разработки, где содержатся: текст, иллюстрации.

    Макетирование начинается со сбора и уточнения требований к создаваемому ПО. Затем выполняется быстрое проектирование. В нем внимание сосредоточивается на технических характеристиках ПО, которые должны быть видимы пользователю. Проектирование приводит к построению макета программного продукта. Макет сайта может иметь следующий вид (рисунок 3):



    Рисунок 3 - Схема макета программного продукта

    Основные элементы, которые должны размещаться на сайте – планируются на макет:

    1. Логотип.

    2. Заголовок.

    3. Контактная информация.

    4. Форма авторизации (если не требуется).

    5. Меню.

    6. Информационный блок.

    7. Футер.

    1.3. Инструментальные средства разработки программного обеспечения

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

    Microsoft Visual Studio - линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы, как в собственном, так и в управляемом кодах для всех платформ, поддерживаемых Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework и Microsoft Silverlight.

    Visual Studio включает в себя редактор исходного кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как например, Subversion и Visual SourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования или инструментов для прочих аспектов цикла разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server).

    Интегрированная среда разработки программ Microsoft Visual Studio предназначена для создания программных приложений и позволяет:

    1. Создавать приложения с использованием языков Visual Basic, Visual C#, Visual C++, Visual J#.

    2. Создавать Windows- и Web-приложения, включая приложения для портативных устройств.

    3. Создавать клиент-серверные приложения.

    4. Создавать корпоративные Web-приложения масштаба предприятия.

    Microsoft Visual Studio увеличивает производительность труда разработчиков при создании приложений. Включает, например, Visual Studio Team System - интегрированный и расширяемый набор инструментов для управления программными проектами на всех этапах разработки и тестирования, что обеспечивает взаимодействие и совместную работу коллектива разработчиков.

    Microsoft Visual Studio содержит среду выполнения .NET Framework, которая состоит из двух частей: единой среды исполнения (Common Language Runtime, CLR) и библиотеки классов. Библиотека классов является всесторонней, объектно-ориентированной коллекцией типов, которую можно использовать для разработки приложений, начиная с традиционных приложений с командной строкой и с использованием графического пользовательского интерфейса и заканчивая приложениями, использующими Web-формы и XML Web-сервисы. Класс - это тип, описывающий устройство объектов, в то время как объект является конкретным представителем определенного класса. Таким образом, каждый объект является экземпляром определенного класса. Единая среда исполнения управляет кодом во время его выполнения.

    С# - это объектно-ориентированный язык программирования. Он был создан в период с 1998 по 2002 год командой инженеров Microsoft под руководством Андерса Хейлсберга и Скотта Вильтаумота. 

    Язык входит в семью С-подобных языков. Синтаксис приближен к Java и C++. Его особенности: 

    1. Статистическая типизация.

    2. Поддерживается полиморфизм.

    3. Поддерживается перегрузка операторов.

    4. Доступна делегация, атрибуты, события, обобщенные типы и анонимные функции.

    C# устроен так, чтобы программист мог писать меньше кода. Для этого в языке много «магических конструкций» и «синтаксического сахара» - способов выразить идею лаконично.

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

    Для эффективной работы полезно знать о дополнительных инструментах. Вот некоторые из них:

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

    2. Xamarin - фреймворк для разработки кроссплатформенных приложений для Windows Phone, Android и iOS. То есть вы напишете один код, и он сразу будет работать на всех основных платформах.

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

    4. Entity Framework - один из лучших фреймворков для работы с базами данных. Позволяет работать с данными как с объектами.

    5. LINQ (Language Integrated Query) - мини-язык запросов, встроенный в C# и позволяющий легко выбирать, фильтровать, сортировать и группировать любые данные из любых источников: баз данных, массивов, структур, файлов и так далее.

    6. Visual Studio - среда разработки, созданная специально для языка C#.

    Писать код в среде разработки удобно. У неё много плюсов, например:

    1. укажет на ошибки в коде.

    2. имеет встроенную справочную систему.

    3. генерация части кода.

    1.4. Тестирование программного обеспечения

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

    1. Функциональные.

    2. Нефункциональные.

    3. Связанные с изменениями.

    Функциональные тесты базируются на функциях и особенностях, а также на взаимодействии с другими системами и могут быть представлены на всех уровнях тестирования: компонентном или модульном (Component/Unit testing), интеграционном (Integration testing), системном (System testing), приемочном (Acceptance testing). Функциональные виды тестирования рассматривают внешнее поведение системы.

    Функциональное тестирование рассматривает заранее указанное поведение и основывается на анализе спецификаций функциональности компонента или системы в целом. Они основываются на функциях, выполняемых системой, и могут проводиться на всех уровнях тестирования (компонентном, интеграционном, системном, приемочном). Как правило, эти функции описываются в требованиях, функциональных спецификациях или в виде случаев использования системы (use cases).

    Тестирование функциональности может проводиться в двух аспектах:

    1. Требования.

    2. Бизнес-процессы.

    Тестирование в аспекте «требования» использует спецификацию функциональных требований к системе, как основу для дизайна тестовых случаев (Test Cases). В этом случае необходимо сделать список того, что будет тестироваться, а что нет, приоритезировать требования на основе рисков (если это не сделано в документе с требованиями), а на основе этого приоритезировать тестовые сценарии (test cases). Это позволит сфокусироваться и не упустить при тестировании наиболее важный функционал.

    Тестирование в аспекте «бизнес-процессы» использует знание бизнес-процессов, которые описывают сценарии ежедневного использования системы. В этом аспекте тестовые сценарии (test scripts), как правило, основываются на случаях использования системы (use cases).

    Тестирование безопасности (Security and Access Control Testing) - это стратегия тестирования, используемая для проверки безопасности системы, а также для анализа рисков, связанных с обеспечением целостного подхода к защите приложения, атак хакеров, вирусов, несанкционированного доступа к конфиденциальным данным.

    Общая стратегия безопасности основывается на трех основных принципах:

    1. Конфиденциальность.

    2. Целостность.

    3. Доступность.

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

    Тестирование программного обеспечения -процесс исследования программного продукта с целью получения информации о качестве продукта.

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

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

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

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

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

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

    Существует два основных критерия при определении понятия целостности:

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

    2. Доступность. Доступность представляет собой требования о том, что ресурсы должны быть доступны авторизованному пользователю, внутреннему объекту или устройству. Как правило, чем более критичен ресурс, тем выше уровень доступности должен быть.

    Тестирование взаимодействия или Interoperability Testing – это, функциональное тестирование, проверяющее способность приложения взаимодействовать с одним и более компонентами или системами и включающее в себя тестирование совместимости (compatibility testing) и интеграционное тестирование (integration testing).

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

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

    Тестирование производительности (Performance testing), где задачей  является определение масштабируемости приложения под нагрузкой, при этом происходит:

    1. Измерение времени выполнения выбранных операций при определенных интенсивностях выполнения этих операций.

    2. Определение количества пользователей, одновременно работающих с приложением.

    3. Определение границ приемлемой производительности при увеличении нагрузки (при увеличении интенсивности выполнения этих операций).

    4. Исследование производительности на высоких, предельных, стрессовых нагрузках.

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

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

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

    Тестирование установки (Installation Testing) направленно на проверку успешной инсталляции и настройки, а также на обновление или удаление программного обеспечения.

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

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

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

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

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

    Тестирование удобства пользования дает оценку уровня удобства использования приложения по следующим пунктам:

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

    2. Правильность (accuracy) - сколько ошибок сделал пользователь во время работы с приложением (меньше - лучше).

    3. Активизация в памяти (ecall) - как много пользователь помнит о работе приложения после приостановки работы с ним на длительный период времени (повторное выполнение операций после перерыва должно проходить быстрее, чем у нового пользователя).

    4. Эмоциональная реакция (emotional response) - как пользователь себя чувствует после завершения задачи - растерян, испытал стресс? Порекомендует ли пользователь систему своим друзьям? (положительная реакция - лучше).

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

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

    1. Дымовое тестирование (Smoke Testing).

    2. Регрессионное тестирование (Regression Testing).

    3. Тестирование сборки (Build Verification Test).

    4. Санитарное тестирование или проверка согласованности/исправности (SanityTesting).

    Дымовой тест (англ. Smoke testing или smoke test, дымовое тестирование) - в тестировании программного обеспечения означает минимальный набор тестов на явные ошибки. Дымовой тест обычно выполняется программистом; не проходившую этот тест программу не имеет смысла отдавать на более глубокое тестирование.

    Регрессионное тестирование (англ. regression testing, от лат. regressio - движение назад) - собирательное название для всех видов тестирования программного обеспечения, направленных на обнаружение ошибок в уже протестированных участках исходного кода. 

    Тестирование сборки (Build Verification Test), как и дымное тестирование, направленно для предварительной проверки разрабатываемого программного продукта перед запуском полномасштабного тестирования по всем параметрам, проводимого командой тестировщиков. Проводится оно для того, чтобы знать - готов ли релиз для такого этапа разработки ПО, как Тестирование или же он еще нуждается в доработке.

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

    Санитарное тестирование – это, узконаправленное тестирование достаточное для доказательства того, что конкретная функция работает согласно заявленным в спецификации требованиям. Является подмножеством регрессионного тестирования. Используется для определения работоспособности определенной части приложения после изменений, произведенных в ней или окружающей среде. Обычно выполняется вручную. Цель - проверить «рациональность» системы после изменений, чтобы продолжить более тщательное тестирование.

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

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

    В данной дипломной работе после запуска web-сайта «онлайн-библиотеки» (WeBook), на заключительных этапах, должно быть произведено регрессионное тестирование, а также функциональное тестирование.

    1.5. Сопровождение программного обеспечения

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

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

    В состав сопроводительной документации входят:

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

    2. Техническое задание - исходный документ для разработки и испытания изделия.

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

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

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

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

    2. ПРАКТИЧЕСКАЯ ЧАСТЬ

    2.1. Проектирование программного обеспечения

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

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

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

    1. Гость проходит авторизацию на сайте/ Читатель производит процедуру входа в личный кабинет.

    2. Производит поиск книг по жанрам.

    3. Книги предоставляются в электронном варианте / Можно оформить заказ на книгу в печатном варианте.

    Схема работы приведена на рисунке 4.



    Рисунок 4 - Схема работы сайта «WeBook»

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

    1. Продажа книг.

    2. Предоставление книг по жарам в режиме онлайн.

    Выявим структуру программного продукта (Рисунок. 5).

    Рисунок 5 - Структурная схема сайта «WeBook».

    Поскольку web-сайт работает во взаимодействии с базой данных, необходимо составить ER-диаграмму. ER-диаграмма базы данных приведена на рисунке 6.



    Рисунок 6 - ER - диаграмма базы данных

    В базе будет две таблицы «users» и «books». Структуры таблиц приведены ниже, таблица 1 и таблица 2.

    Таблица 1. Структура таблицы «users»

    Поле

    Тип

    Null

    Описание

    id

    Int(10)

    Нет

    Код пользователя

    username

    Varchar(100)

    Нет

    Имя пользователя

    email

    Varchar(100)

    Нет

    Электронная почта пользователя

    password

    Varchar(100)

    Нет

    Пароль от учетной записи пользователя


    Таблица 2. Структура таблицы «books»

    Поле

    Тип

    Null

    Описание

    clientName

    Int(10)

    Нет

    Имя клиента

    clientEmail

    Varchar(100)

    Нет

    Электронная почта клиента

    clientNumber

    Varchar(100)

    Нет

    Номер клиента

    Book

    Varchar(100)

    Нет

    Выбранная книга
      1   2


    написать администратору сайта