Введение в программную инженерию и управление жизненным циклом ПО. Программная инженерия. Качество программного обеспечения

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

Copyright © Сергей Орлик, 2004-2005.

mailto:sorlik@borland.ru

https://sorlik.blogspot.com

15

автором “техниками коллективной оценки”. Все же посмотрим, как именно SWEBOK описывает

данные техники.

Форма такого рода техник, включая оценку и аудит, может варьироваться от формальных

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

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

большинстве случаев, и более специалистов. При этом, такие встречи могут требовать

предварительной подготовки (практически всегда касающейся определения содержания встреч, то

есть перечня выносимых на обсуждение вопросов, прим. автора). К ресурсам, используемым в

таких техниках, наравне с исследуемыми артефактами (продуктом, документацией, моделями и

т.п., прим. автора) могут относится различного рода листы проверки (checklists) и результаты

аналитических техник (рассматриваются ниже) и работ по тестированию. Данные техники

рассматриваются, например, в стандарте 12207 при обсуждении оценки (<joint> review) и аудита

(audit). SWEBOK приводит и другие полезные источники, в которых можно найти дополнительную

информацию по обсуждаемому вопросу.

3.3.3 Аналитические техники (Analytical techniques)

Инженеры, занимающиеся программным обеспечением, как правило, применяют аналитические

техники.

Если в данном случае создатели SWEBOK предполагали смысловую нагрузку “generally” в

отношении применения аналитических техник именно подразумевая “как правило”, а не

“достаточно широко”, то, по мнению автора, такого рода суждение является крайне

консервативным и ограниченным. Особенно это заметно в контексте широкого (и достаточно

успешного) применения Agile-методик и подходов, в которых individuals and interactions (см.первое

положение The Agile Manifesto) предполагает <непосредственное> общение и постоянное

взаимодействие членов команды (включая представителей заказчика – см. третье положение Agile

Manifesto - customer collaboration). В частности, Agile-взгляд на SQM, вероятно, требует

расширения вариантов форм оценки дополнительными категориями.

Иногда, несколько инженеров используют одну и ту же технику, но в отношении разных частей

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

другие – предполагают “ручную” работу. Многие могут помогать находить дефекты напрямую, но

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

автора). Ряд техник также включает различного рода экспертизу (assessment) как составной

элемент общего анализа качества. Примеры таких техник - анализ сложности (complexity analysis),

анализ управляющей логики (или анализ контроля потоков управления - control flow analysis) и

алгоритмический анализ (algorithmic analysis).

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

проекту. Примером техники поддержки является анализ сложности, который полезен для

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

корректной реализации, тестирования или сопровождения. Результат анализа сложности может

также применяться для разработки тестовых сценариев (test cases). Такие техники поиска

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

программного обеспечения с обширной алгоритмической логикой крайне важно применять

алгоритмические техники, особенно в тех случаях, когда некорректный алгоритм (не его

реализация, а именно логика, прим. автора) может привести к катастрофическим результатам

(например, программное обеспечение авионики, для которой вопросы безопасности

использования – safety играют решающую роль, прим. автора). Существует обширный спектр

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

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

аналитических техник.

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

применяются для проверки требований и дизайна (надо признать, лишь иногда, в реальной

сегодняшней практике промышленной разработки программного обеспечения; см. обсуждение

формальных методов в области знаний SWEBOK “Инструменты и методы программной

инженерии”, прим. автора). Проверка корректности применяется к критическим фрагментам

программного обеспечения (что, вообще говоря, мало связано с формальными методами – это


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: