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

  • Оценка (обзор) и аудит (Review and Audits)

  • Управленческие оценки (Management Reviews)

  • Технические оценки (Technical Reviews)

  • Прогонки (Walk-throughs)

  • Практические соображения (Practical Considerations)

  • (Software Quality Requirements) Факторы влияния (Influence factors)

  • Гарантоспособность (Dependability)

  • Уровни целостности программного обеспечения (Integrity levels of

  • Основы Программной Инженерии (по swebok) Введение Программная инженерия как дисциплина swebok руководство


    Скачать 3.21 Mb.
    НазваниеОсновы Программной Инженерии (по swebok) Введение Программная инженерия как дисциплина swebok руководство
    Анкорswebok
    Дата14.10.2022
    Размер3.21 Mb.
    Формат файлаpdf
    Имя файлаswebok_2004_ru.pdf
    ТипРуководство
    #733732
    страница26 из 30
    1   ...   22   23   24   25   26   27   28   29   30
    Проверка (верификация) и аттестация (Verification
    and Validation, V&V)

    С целью краткости <изложения> (что, не мешало их детализировать достаточным образом, в виде соответствующих “подтем” в рамках формата
    SWEBOK, так как, будучи тесно связанными и взаимодополняющими, проверка и аттестация все же обладают и самостоятельным содержанием),
    проверка (верификация) и аттестация – Validation and Verification (V&V) – рассмотрены в SWEBOK в
    рамках единой темы. В свою очередь, они
    являются самостоятельными темами, например,
    в стандарте жизненного цикла программного
    обеспечения 12207. Стандарт IEEE 1059-93 “IEEE
    Guide for Software Verification and Validation Plans”
    дает такое определение V&V: “Проверка и аттестация программного обеспечения –
    упорядоченный подход в оценке программных продуктов, применяемый на протяжении всего жизненного цикла. Усилия, прилагаемые в рамках работ по проверке и аттестации, направлены на обеспечение качества как неотъемлемой характеристики программного обеспечения и удовлетворение пользовательских требований”
    (здесь и далее, как и при обсуждении SQA,
    пользовательские требования, скорее, не user requirements в понимании управления требованиями, а потребности пользователей, ради удовлетворения которых создается программное обеспечение).
    здесь и далее в переводе намеренно используется обозначение V&V, как
    общепринятое в индустрии программного обеспечения
    V&V напрямую адресуется вопросам качества программного обеспечения и использует соответствующие техники тестирования для обнаружения тех или иных дефектов. V&V может применяться для промежуточных продуктов, однако,
    в том объеме, который соответствует промежуточным “шагам” <соответствующих>
    процессов жизненного цикла.
    V&V напрямую адресуется вопросам качества программного обеспечения и использует соответствующие техники тестирования для обнаружения тех или иных дефектов. V&V может применяться для промежуточных продуктов, однако,
    в том объеме, который соответствует промежуточным “шагам” <соответствующих>
    процессов жизненного цикла.
    Процесс V&V определяет в какой степени продукт
    (результат) тех или иных работ по разработке и сопровождению соответствует требованиям,
    сформулированным в рамках этих работ, а конечный продукт удовлетворяет заданным целям и пользовательским требованиям (корректнее было бы говорить не только и, может быть, не столько о
    “требованиях”, то есть потребностях, сколько об ожиданиях). Верификация – попытка обеспечить правильную разработку продукта (продукт построен
    правильным образом; обычно, для промежуточных,
    иногда, для конечного продукта), в том значении, что получаемый в рамках соответствующей деятельности продукт соответствует спецификациям, заданным в процессе предыдущей деятельности. Аттестация – попытка обеспечить создание правильного продукта (построен правильный продукт; обычно, в контексте конечного продукта), с точки зрения достижения поставленной цели. Оба процесса – верификация и аттестация –
    начинаются на ранних стадиях разработки и сопровождения. Они обеспечивают исследованию
    (экспертизу) ключевых возможностей продукта как в контексте непосредственно предшествующих результатов (промежуточных продуктов), так и с точки зрения удовлетворения соответствующих спецификаций.
    Целью планирования V&V является обеспечение процессов верификации и аттестации необходимыми ресурсами, четкое назначение ролей и обязанностей. Получаемый план V&V
    документирует и <детально> описывает различные ресурсы, роли и действия, а также используемые техники и инструменты. Понимание различных целей каждого действия в рамках V&V может помочь в точном планировании техник и ресурсов (включая,
    финансовые), необходимых для достижения заданных целей. Стандарты IEEE 1012-98 “Software
    Verification and Validation” и 1059-93 “IEEE Guide for
    Software Verification and Validation Plans” (Appendix A)
    определяют типичное содержание плана проверки и аттестации.
    План также касается аспектов управления,
    коммуникаций (взаимодействия), политик и процедур в отношении действий по верификации и аттестации и их взаимодействия. Кроме того, в нем могут быть отражены вопросы формирования отчетности по дефектам и документирования требований (конечно, с точки зрения выполнения задач по проверке и аттестации продуктов).
    Оценка (обзор) и аудит (Review and Audits)
    В целях краткости изложения, оценка (review) и аудит объединены в SWEBOK в одну тему (в данном случае, такое объединение выглядит более обоснованным, чем в случае V&V, где частью процесса аттестации могут быть, например, приемо- сдаточные испытания, наверняка отсутствующие при верификации; оценка же и аудит, на практике, часто отличаются лишь степенью детализации, акцентам в отношении исследуемых аспектов, лицом/органом,
    выполняющим соответствующие работы, а также степенью формализации процесса). В стандарте жизненного цикла 12207 эти работы разделены на самостоятельные темы. Более детально они описаны в стандарте IEEE 1028-97 “IEEE Standard for Software Reviews”, в котором представлено пять типов оценок и аудитов (обратите внимание, что
    классификация рассматривает аудит лишь как один из типов оценки):
    Управленческие оценки (management reviews)
    Технические оценки (technical reviews)
    Инспекции (inspections)
    “Прогонки” (walk-throughs)
    Аудиты (audtis)
    Управленческие оценки (Management Reviews)
    “Назначение управленческих оценок состоит в отслеживании развития <проекта продукта>,
    определения статуса планов и расписаний,
    утверждения требования и распределения ресурсов,
    или оценки эффективности управленческих подходов, используемых для достижения поставленных целей.” - IEEE 1028-97 “IEEE Standard for Software Reviews”. Управленческие оценки поддерживают принятие решений о внесении изменений и выполнении корректирующих действий,
    необходимых в процессе выполнения программного проекта. Управленческие оценки определяют адекватность планов, расписаний и требований, в то же время, контролируя их прогресс или несоответствие. Эти оценки могут выполняться в отношении продукта, будучи фиксируемы в форме отчетов аудита, отчетов о состоянии (развитии),
    V&V-отчетов, а также различных типов планов –
    управления рисками, проекта/проектного управления, конфигурационного управления,
    безопасности <использования> программного обеспечения (safety), оценки рисков и т.п.
    Информация, связанная с данными вопросами,
    также представлена в областях знаний “Управление программной инженерией” и “Конфигурационное управление”.
    Технические оценки (Technical Reviews)
    “Назначением технических оценок является исследование программного продукта для определения его пригодности для использования в надлежащих целях. Цель состоит в идентификации расхождений с утвержденными спецификациями и стандартами.” - IEEE 1028-97 “IEEE Standard for
    Software Reviews”.
    Технические оценки (Technical Reviews)
    “Назначением технических оценок является исследование программного продукта для определения его пригодности для использования в надлежащих целях. Цель состоит в идентификации расхождений с утвержденными спецификациями и стандартами.” - IEEE 1028-97 “IEEE Standard for
    Software Reviews”.
    Для обеспечения технических оценок необходимо распределение следующих ролей: лицо,
    принимающее решения (decision-maker); лидер оценки (review leader); регистратор (recorder); а также технический персонал, поддерживающий

    (непосредственно исполняющий) действия по оценке. Техническая оценка требует, в обязательном порядке, наличия следующих входных данных:
    Формулировки целей
    Конкретного программного продукта
    (подвергаемого оценке)
    Заданного плана проекта (плана управления проектом)
    Списка проблем (вопросов), ассоциированных с продуктом
    Процедуры технической оценки
    Команда <технической оценки> следует заданной процедуре оценки. Квалифицированные (с технической точки зрения) лица представляют обзор продукта (представляя команду разработки).
    Исследование <продукта> проводится в течение одной и более встреч (между теми, кто представляет продукт и теми, кто провидит оценку). Техническая оценка завершается после того, как выполнены все предписанные действия по исследованию продукта.
    Инспекции (Inspections)
    “Назначение инспекций состоит в обнаружении и идентификации аномалий в программном продукте.”
    - IEEE 1028-97 “IEEE Standard for Software Reviews”.
    Существует два серьезных отличия инспекций от оценок (управленческой и технической):

    Лица, занимающие управленческие позиции
    (менеджеры) в отношении к любым членам команды инспектирования, не должны участвовать в инспекциях.
    Инспекция должна вестись под руководством непредвзятого (независимого от проекта и его целей)
    лидера, обученного техникам инспектирования.
    Инспектирование программного обеспечения всегда вовлекает авторов промежуточного или конечного продукта, в отличие от оценок, которые не требуют этого в обязательном порядке. Инспекции (как временные организационные единицы – группы,
    команды) включают лидера, регистратора,
    рецензента и нескольких (от 2 до 5) инспекторов.
    Члены команды инспектирования могут специализироваться в различных областями экспертизы (обладать различными областями компетенции), например, предметной области,
    методах проектирования, языке и т.п. В заданный момент (промежуток) времени инспекции проводятся в отношении отдельного небольшого фрагмента продукта (в большинстве случаев, фокусируясь на отдельных функциональных или других характеристиках; часто, отталкиваясь от отдельных бизнес-правил, функциональных требований или атрибутов качества). Каждый член команды должен исследовать программный продукт и другие входные данные до проведения инспекционной встречи,
    применяя, возможно, те или иные аналитические
    техники (описанные ниже в подтеме 3.3.3) в небольшим фрагментам продукта или к продукту, в целом, рассматривая в последнем случае только один его аспект, например, интерфейсы. Любая найденная аномалия должна документироваться, а информация передаваться лидеру инспекции. В
    процессе инспекции лидер руководит сессией
    <инспекции> и проверяет, что все <члены команды>
    подготовились к инспектированию. Общим инструментом, используемым при инспектировании,
    является проверочный лист (checklist), содержащий аномалии и вопросы, связанные с аспектами
    <программного продукта>, вызывающими интерес.
    Результирующий лист часто классифицирует аномалии (см. стандарт IEEE 1044-93 “IEEE Standard for the Classification of Software Anomalies”) и оценивается командой с точки зрения его завершенности и точности. Решение о завершении инспекции принимается в соответствии с одним
    (любым) из трех критериев:
    Принятие <продукта> с отсутствием либо малой необходимостью переработки
    Принятие <продукта> с проверкой переработанных фрагментов
    Необходимость повторной инспекции
    Инспекционные встречи занимают, обычно,
    несколько часов, в отличие от технической оценки и аудита, предполагающих, в большинстве случаев, больший объем работ и,
    соответственно, длящиеся дольше.

    Прогонки (Walk-throughs)
    “Назначение прогонки состоит в оценке программного продукта. Прогонка может проводиться с целью ознакомления (обучения)
    аудитории с программным продуктом.” - IEEE 1028-
    97 “IEEE Standard for Software Reviews”. Главные цели прогонки состоят (по IEEE 1028) в:
    Поиске аномалий
    Улучшении продукта
    Обсуждении альтернативных путей реализации
    Оценке соответствия стандартам и спецификациям
    Прогонка похожа на инспекцию, однако, обычно проводится менее формальным образом. В
    основном, прогонка организуется инженерами для других членов команды с целью получения отклика от них на свою работу, как одного из элементов
    (техник) обеспечения качества.
    Аудиты (Audits)
    “Назначением аудита программного обеспечения является независимая оценка программных продуктов и процессов на предмет их соответствия применимым регулирующим документам,
    стандартам, руководящим указаниям, планам и процедурам.” - IEEE 1028-97 “IEEE Standard for
    Software Reviews”. Аудит является формально организованной деятельностью, участники которой
    выполняют определенные роли, такие как главный аудитор (lead auditor), второй аудитор (another auditor), регистратор (recorder) и инициатор (initiator).
    В аудите принимает участие представитель оцениваемой организации/организационной единицы. В результате аудита идентифицируются случаи несоответствия и формируется отчет,
    необходимый команде <разработки> для принятия корректирующих действий.
    При том, что существуют различные формальные названия (и классификации) оценок и аудита
    (например, как мы видели в стандарте IEEE 1028-
    97), важно отметить, что такого рода действия могут проводиться почти для любого продукта на любой стадии процесса разработки или сопровождения.
    Практические соображения (Practical
    Considerations)
    Требования к качеству программного обеспечения
    (Software Quality Requirements)
    Факторы влияния (Influence factors)
    На планирование, управление и выбор SQM- действий и техник оказывают влияние различные факторы, среди которых:
    Область применения системы, в которой будет работать программное обеспечение (критичное
    для безопасности <людей>), критичное для бизнеса и т.п.)
    Системные и программные требования
    Какие компоненты используются в системе –
    коммерческие (внешние) или стандартные
    (внутренние)
    Какие стандарты программной инженерии применимы в заданном контексте
    Каковы методы и программные инструменты,
    применяемые для разработки и сопровождения,
    а также для обеспечения качества и совершенствования (продукта и процессов)
    Бюджет, персонал, организация проектной деятельности, планы и расписания для всех процессов
    Кто целевые пользователи и каково назначение системы
    Уровень целостности системы
    Информация об этих факторах влияет на то, как именно будут организованы и документированы процессы SQM, какие SQM-работы будут отобраны
    (стандартизированы в рамках проекта, команды,
    организационной единицы, организации), какие необходимы ресурсы и каковы ограничения,
    накладываемые в отношении усилий, направляемых на обеспечение качества.
    Гарантоспособность (Dependability)

    (Гарантоспособость – гарантия <высокой>
    надежности, защищенности от сбоев)
    В случаях, когда сбой системы может привести к крайне тяжелым последствиям (такие системы иногда называют в англоязычных источниках “high confidence” или “high integrity system”, в русском языке к ним иногда применяют название “системы повышенной надежности”, “высокой доступности” и т.п.), общая (совокупная) гарантоспособность системы (как сочетания аппаратной части,
    программного обеспечения и человека) является главным и приоритетным требованием качества, по отношению к основной функциональности
    <системы>. Гарантоспособность (dependability)
    программного обеспечения включает такие характеристики, как защищенность от сбоев (fault- tolerance), безопасность использования (safety –
    безопасность в контексте приемлемого риска для здоровья людей, бизнеса, имущества и т.п. ),
    информационная безопасность или защищенность
    (security – защита информации от несанкционированных операций, включая доступ на чтение, а также гарантия доступности информации авторизованным пользователям, в объеме заданных для них прав), а также удобство и простота использования (usability). Надежность (reliability)
    также является критерием, который может быть определен в терминах гарантоспособности (см.
    стандарт ISO/IEC 9126-1:2001 “Software Engineering -
    Product Quality, Part 1: Quality Model”).

    В обсуждении данного вопроса существенную роль играет обширная литература по системам повышенной надежности. При этом, применяется терминология, пришедшая из области традиционных механических и электрических систем (в т.ч. не включающих программное обеспечение) и описывающая концепции опасности, рисков,
    целостности систем и т.п. SWEBOK приводит ряд источников, где подробно обсуждаются эти вопросы.
    Уровни целостности программного обеспечения (Integrity levels of
    software)
    Уровень целостности программного обеспечения определяется на основании возможных последствий сбоя программного обеспечения и вероятности возникновения такого сбоя. Когда важны различные аспекты безопасности (применения и информационной безопасности), при разработке планов работ в области идентификации возможных очагов аварий могут использоваться техники анализа опасностей (в контексте безопасности использования, safety) и анализа угроз (в информационной безопасности, security). История сбоев аналогичных систем может также помочь в идентификации наиболее полезных техник,
    направленных на обнаружение сбоев и
    <всесторонней> оценки качества программного обеспечения. Уровни целостности (например,
    градации целостности) предлагаются, в частности,
    стандартом IEEE 1012-98 “IEEE Standard for Software
    Reviews”.
    При более детальном рассмотрении целостности программного обеспечения в контексте конкретных проектов, необходимо уделять специальное внимание (выделяя соответствующие ресурсы и проводя необходимые работы) не только SQM- процессам (особенно, формальным, включая аудит и аттестацию), но и аспектам управления требованиями (в части критериев целостности),
    управления рисками (включая планирование рисков как на этапе разработки, так и на этапе эксплуатации и сопровождения системы), проектирования
    (которое, для повышения гарантоспособности, в обязательном порядке предполагает глубокий анализ и проверку планируемых к применению архитектурных и технологических решений, часто,
    посредством создания пилотных проектов,
    демонстрационных стендов и т.п.) и тестирования
    (для обеспечения всестороннего исследования поведенческих характеристик системы, в том числе с эмуляцией рабочего окружения/конфигурации, в которых система должна использоваться в процессе эксплуатации).
    1   ...   22   23   24   25   26   27   28   29   30


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