Автор работы: Пользователь скрыл имя, 16 Июня 2012 в 11:53, реферат
Информационные технологии являются одним из основных элементов
инфраструктуры современного общества. Они служат базой для экономической деятельности и социального и культурного развития человечества, обеспечивая людям доступ к огромным массивам разнообразной информации и связывая их друг с другом, где бы они не находились.
целостность данных после отказа в рамках заданных времени и ресурсов.
o Соответствие стандартам надежности (reliability compliance).
Удобство использования (usability) или практичность — способность ПО быть
удобным в обучении и использовании, а также привлекательным для
пользователей.
o Понятность (understandability) — показатель, обратный к усилиям,
которые затрачиваются пользователями на восприятие основных понятий
ПО и осознание способов их использования для решения своих задач.12
o Удобство обучения (learnability) — показатель, обратный к усилиям,
затрачиваемым пользователями на обучение работе с ПО.
o Удобство работы (operability) — показатель, обратный трудоемкости
решения пользователями задач с помощью ПО.
o Привлекательность (attractiveness) — способность ПО быть
привлекательным для пользователей.
o Соответствие стандартам удобства использования (usability compliance).
Производительность (efficiency) или эффективность — способность ПО при
заданных условиях обеспечивать необходимую работоспособность по
отношению к выделяемым для этого ресурсам.
o Временная эффективность (time behaviour) — способность ПО решать
определенные задачи за отведенное время.
o Эффективность использования ресурсов (resource utilisation) —
способность решать нужные задачи с использованием заданных объемов
ресурсов определенных видов. Имеются в виду такие ресурсы, как
оперативная и долговременная память, сетевые соединения, устройства
ввода и вывода, и пр.
o Соответствие стандартам производительности (efficiency compliance).
Удобство сопровождения (maintainability) — удобство проведения всех видов
деятельности, связанных с сопровождение программ.
o Анализируемость (analyzability) или удобство проведения анализа —
удобство проведения анализа ошибок, дефектов и недостатков, а также
удобство анализа необходимости изменений и их возможных
последствий.
o Удобство внесения изменений (changeability) — показатель, обратный
трудозатратам на выполнение необходимых изменений.
o Стабильность (stability) — показатель, обратный риску возникновения
неожиданных эффектов при внесении необходимых изменений.
o Удобство проверки (testability) — показатель, обратный трудозатратам на
проведение тестирования и других видов проверки того, что внесенные
изменения привели к нужным результатам.13
o Соответствие стандартам удобства сопровождения (maintainability
compliance).
Переносимость (portability) — способность ПО сохранять работоспособность
при переносе из одного окружения в другое, включая организационные,
аппаратные и программные аспекты окружения.
Иногда в русскоязычной литературе эта характеристика называется
мобильностью. Однако термин «мобильность» стоит зарезервировать для
перевода «mobility» — способности ПО и системы в целом сохранять
работоспособность при ее физическом перемещении в пространстве.
o Адаптируемость (adaptability) — способность ПО приспосабливаться к
различным окружениям без проведения для этого действий, помимо
заранее предусмотренных.
o Удобство установки (installability) — способность ПО быть
установленным или развернутым в определенном окружении.
o Способность к сосуществованию (coexistence) — способность ПО
сосуществовать в общем окружении с другими программами, деля с ними
ресурсы.
o Удобство замены (replaceability) другого ПО данным — возможность
применения данного ПО вместо других программных систем для
решения тех же задач в определенном окружении.
o Соответствие стандартам переносимости (portability compliance).
Указанные выше характеристики используются для описания качества ПО с
точки зрения его разработчиков и их руководства. Для пользовательской точки зрения,
т.е. качества ПО при использовании, стандарт ISO 9126 предлагает другую систему
факторов.
Эффективность (effectiveness) — способность решать задачи пользователей с
необходимой точностью при использовании в заданном контексте.
Продуктивность (productivity) — способность предоставлять определенные
результаты в рамках ожидаемых затрат ресурсов.14
Безопасность (safety) — способность обеспечивать необходимо низкий уровень
риска нанесения ущерба жизни и здоровью людей, бизнесу, собственности или
окружающей среде.
Удовлетворение пользователей (satisfaction) — способность приносить
удовлетворение пользователям при использовании в заданном контексте.
В дальнейшем мы будем использовать систему из шести факторов,
предназначенную для оценки и описания внешнего или внутреннего качества ПО, поскольку все методы верификации затрагивают именно эти его аспекты.Место верификации в жизненном цикле ПО
Хотя общую структуру жизненного цикла произвольной программной системы определить невозможно, существует несколько наиболее часто используемых способов организации различных видов деятельности в рамках жизненного цикла. Их называют моделями жизненного цикла ПО. Чаще всего работы организуются либо в соответствии с каскадной (или водопадной) моделью [26,, либо в рамках одной из многочисленных разновидностей итеративной модель жизненного цикла, впервые описанной в 1970 году.
Каскадная модель хорошо работает в тех случаях, когда требования к создаваемой системе удается полностью выявить и зафиксировать в начале проекта (что на практике случается не часто), и результаты всех выполняемых действий проходят тщательный анализ на внутреннюю корректность и соответствие исходным данным. В противном случае обнаруживаемые впоследствии ошибки и недоработки в результатах предыдущих шагов существенно затрудняют продвижение проекта и снижают его управляемость. Таким образом, в рамках каскадной модели верификация имеет должна выполняться в рамках всех видов деятельности для проверки Определение концепции системы
Определение и анализ требований
Тестирование
Кодирование
Проектирование
Эксплуатация
Определение концепции системы
Определение и анализ требований
Эксплуатация
Тестирование
Кодирование
Проектирование корректности их результатов, и именно она в первую очередь обеспечивает успешное движение к конечной цели. Один из видов верификации — тестирование — даже выделяется в отдельный этап проекта.
В рамках итеративной модели отдельные виды деятельности уже не привязаны к этапам проекта и могут выполняться в разнообразных комбинациях. Итеративная модель позволяет быстро реагировать на изменения требований, но требует большего умения от руководителя проекта. В ее рамках различные методы верификации также имеют важнейшее значение, поскольку только с их помощью можно получить оценку качества результатов проекта, как конечных, так и промежуточных. Именно оценка качества служит основной информацией для оценки продвижения к целям проекта, планирования следующих итераций, принятия решений о прекращении проекта или передаче его результатов заказчику.
2.1. Задачи верификации в рамках жизненного цикла ПО
Все используемые на практике модели жизненного цикла по схеме организации работ являются разновидностями либо каскадной, либо итеративной модели, поэтомунезависимо от процесса разработки ПО верификация играет в нем ключевую роль, решая следующие задачи.
Выявление дефектов (ошибок, недоработок, неполноты и пр.) различных артефактов разработки ПО (требований, проектных решений, документации или кода), что позволяет устранять их и поставлять пользователям и заказчикам более правильное и надежное ПО.
Выявление наиболее критичных и наиболее подверженных ошибкам частей
создаваемой или сопровождаемой системы.
Контроль и оценка качества ПО во всех его аспектах.
Предоставление всем заинтересованным лицам (руководителям, заказчикам, пользователям и пр.) информации о текущем состоянии проекта и характеристиках его результатов.
Предоставление руководству проекта и разработчикам информации для планирования дальнейших работ, а также для принятия решений о продолжении
проекта, его прекращении или передаче результатов заказчику.
2.2. Верификация и другие процессы разработки и сопровождения ПО
Процессом жизненного цикла ПО называется группа видов деятельности, выполняемых для решения определенного набора связанных задач по разработке или сопровождению ПО. На сегодняшний день нет четко определенного общего списка процессов, который не вызывал бы возражений у тех или иных исследователей и практиков. Международные стандарты ISO 12207, IEEE 1074, ISO 15288, ISO 15504 используют несколько отличающиеся системы процессов.
По ISO 12207 к верификации имеют отношение 5 процессов: обеспечение качества (quality assurance), собственно верификация, валидация, совместные экспертизы (joint review) и аудит (audit). Тестирование целиком отнесено к валидации. Кроме того, выделен процесс разрешения проблем (problem resolution), для которого верификация и валидация поставляют входные данные (те самые проблемы).
IEEE 1074 выделяет только один связанный с верификацией процесс — группу деятельностей по оценке (evaluation), которая включает экспертизы (review), аудиты, прослеживание требований и тестирование. Еще несколько видов деятельности, которые можно отнести к верификации и валидации, разбросаны по другим процессам — сбор и анализ метрик, анализ осуществимости, определение потребностей в улучшении ПО, валидация программы обучения.
ISO 15288 считает отдельными процессами управление качеством, оценивание, верификацию и валидацию.
В ISO 15504 (SPICE) в качестве процессов выделены совместные экспертизы и аудиты (один процесс), управление качеством, обеспечение качества и экспертизы (review). Тестирование считается частью других процессов — реализации и интеграции ПО и интеграции программно-аппаратной системы в целом.
С технической точки зрения верификация и валидация являются неотъемлемыми элементами деятельности по обеспечению качества. С одной стороны, эта деятельность должна обеспечить формирование критериев качества, использование при разработке доказавших свою эффективность технологий, определение и контроль процедур выполнения отдельных операций, точность, согласованность и полноту при описании требований, проектных решений, пользовательской документации, формулировку требований и проектных решений на необходимом уровне абстракции. С другой стороны, в рамках обеспечения качества с помощью верификации и валидации необходимо оценивать текущие характеристики качества ПО и отдельных артефактов процесса разработки и сопоставлять их с критериями и правилами, определенными в рамках системы обеспечения качества проекта и организации в целом.Деятельность по управлению качеством отличается от обеспечения качества, по-видимому, только большим акцентом на административных процедурах и предварительном определении целей обеспечения качества, на прямой ответственности руководства проекта за качество его результатов.
Экспертизы и аудит, в свою очередь, являются методами проведения верификации и валидации, такими же, как тестирование, оценка архитектуры на основе сценариев или проверка моделей. В стандартах они рассматриваются как отдельные процессы, скорее всего, потому что применимы к произвольным артефактам жизненного цикла в рамках любого вида деятельности, а также часто используются для оценки процессов и организационных видов деятельности в проекте, в отличие от большинства других методов верификации.