АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Ключевые метрики для контроля разработки

Читайте также:
  1. IV. Формы контроля
  2. IV. Формы контроля
  3. V. Формы контроля
  4. VI. ОЦЕНОЧНЫЕ СРЕДСТВА ДЛЯ ТЕКУЩЕГО КОНТРОЛЯ И ПРОМЕЖУТОЧНОЙ АТТЕСТАЦИИ
  5. VI. ОЦЕНОЧНЫЕ СРЕДСТВА ДЛЯ ТЕКУЩЕГО КОНТРОЛЯ УСПЕВАЕМОСТИ И ПРОМЕЖУТОЧНОЙ АТТЕСТАЦИИ
  6. VII Формы текущего и итогового контроля
  7. Автоматизированные системы контроля за исполнением документов
  8. Автоматизированные системы контроля и учета электроэнергии (АСКУЭ).
  9. Акустические методы контроля
  10. Алгоритм разработки урока
  11. Алгоритмизация процесса разработки и принятия управленческого решения
  12. Беспомощность из-за утраты контроля

Ключевыми метриками, применяемыми при решении задач SQA , являются:

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

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

Размер. Основная проблема и препятствие для применения ряда методов определения стоимости состоит в том, что для предсказания усилий на разработку нужно сначала предсказать размер конечной системы в единицах SLOC (число строк исходных инструкций кода) . Существуют хорошие руководства по определению длины кода "готового" программного продукта. Однако, во-первых, они непригодны для прогнозирования, а, во-вторых, длина кода не всегда отражает размер современных программных продуктов (например, продуктов, предназначенных для интенсивной работы с базами данных средствами современных СУБД).

Достойную альтернативу измерению SLOC составляет определение размера программного обеспечения в условных единицах функциональности (FP, от Functional Points), выполняемое на ранних стадиях жизненного цикла исходя из анализа функциональных требований к программному обеспечению. Методологию анализа показателей функционального размера (FPA, Function Point Analysis) предложил А. Альбрехт в 1979 году. Обзор методов, разработанных на основе FPA и учитывающих пользовательский взгляд на разрабатываемый программный продукт.

Сложность. Оценка таких характеристик качества программных средств, как надежность или сопровождаемость, не может быть выполнена до тех пор, пока не получена хотя бы первая версия кода программного средства. Однако еще до завершения разработки системы полезно знать, какие ее компоненты могут оказаться менее надежными, сложнее тестируемыми или хуже сопровождаемыми, и принимать это во внимание при распределении ресурсов разработки и тестирования. Многочисленные исследования показали, что хорошим "предсказателем" для этих целей служат метрики сложности. Наиболее известными метриками сложности являются метрики М. Холстеда (1977 год) и метрика "цикломатическое число" Т. МакКейба (1976 года).

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

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

Метрики ошибок. Обнаружение и своевременное устранение ошибок - основная задача процессов контроля качества программных средств. Между тем, ни за рубежом, ни в Украине, не достигнуто согласия по определению основных понятий в этой области - дефект, ошибка, отказ. Эти понятия по-разному определяются не только в научной литературе по качеству и надежности программного обеспечения, но и в стандартах. Проще всего поступили разработчики стандарта IEEE Std.1044 "Standard Classification for Software Anomalies" (Стандартная классификация аномалий программного обеспечения) , которые предпочли использовать единый термин "аномалия" (anomaly) вместо других - error, fault, failure, incident, flaw, problem, gripe, glitch, defect или bug - что для целей этого стандарта оправданно. В Украине положение усугубляется внесением "погрешностей перевода" специальных терминов в переводную литературу. Поэтому в данном изложении мы даем свое толкование используемых терминов и указываем их приемлемые английские эквиваленты.

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

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

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

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

Дефект устраняется при проверке.

 

рис.19

Рис. 13.13. Связь ошибок, дефектов и отказов

Если дефект "срабатывает" - возникает цепь ошибок, передаваемых от модуля к модулю. Если ошибка не компенсируется в программе (благодаря встроенным в программу средствам отказоустойчивости или в результате случайного "срабатывания" другого дефекта) - она может привести к аномалии в функционировании программного средства. Считать ли аномалию отказом - зависит от определения понятия отказ в спецификации требований к разрабатываемому программному средству. Обычно говорят, что в результате выполнения программы произошел Инцидент (Incident) , который проявился в виде определенной аномалии. Последующий анализ инцидента и аномалии может показать наличие Проблема (Problem) или ее отсутствие. О проблеме составляется отчет, который в виде входного документа направляется процессу "Управление решением проблем" . Таким образом, схему отказа программы можно представить цепочкой дефект в коде "(defect) [- ошибка (fault)] - аномалия (anomaly) = отказ (failure)".

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

Количество или плотность дефектов, обнаруженных в программе в ходе тестирования, нельзя считать хорошими индикаторами качества программного средства, в большей степени они служат индикаторами серьезности процесса тестирования. Тем не менее, регистрация дефектов определена как обязательное требование базового стандарта по качеству - ISO 90 00-3:1997. Регистрация дефектов служит основой для построения банков исторических эталонных данных по программным проектам и продуктам, которые могут использоваться для сравнения вновь разрабатываемых программных средств с аналогами и улучшения процессов программной инженерии. Некоторые из них представлены в таблице 13.4.

Характеристика Показатели высокого потенциального качества ПС В среднем
Плотность дефектов в программном продукте, который реализует совсем новые функции 0,97 дефектов/УЕФ 14 дефектов/КБЬОС
Плотность дефектов в программном продукте, который реализует не новые функции 0,14 дефектов/УЕФ 2 дефекта/КБЬОС
Плотность выявленных дефектов в ходе разработки (для ПС в области организационного управления) 1,2 дефектов/УЕФ 17,4 дефектов/К БЬОС
Эффективность устранения дефектов > 95% всех дефектов устра няются во время разработки > 56% всех дефектов устра няются во время разработки
Стабильность требований < 2.5% изменений в базовых требованиях  
Ясность требований > 97.5 % проверенных требований  
Плотность дефектов после тестирования 0.06 дефектов/УЕФ 0.44 дефектов/УЕФ 6,4 дефектов/КБЬОС
Производительность разработки 39 УЕФ или4250 БЬОС в чел.-мес. 23 УЕФ или 2500 БЬОС в чел.-мес.
Наименьшая (по отно шению к среднему) плотность потенциальных дефектов в артефакте проекта (в расчете на УЕФ) В требованиях - 0.20 В проектных решениях - 0.25 В коде - 0.25 В документации - 0.20 Не точно устраненных - 0.1 Всего 1.0 дефектов в УЕФ В требованиях - 1.0 В проекте - 1.25 В коде - 1.25 В документации - 1.0 Не точно устраненных - 0.5 Всего 5.0 дефектов в УЕФ
Наименьшая плотность фактических дефектов (в расчете на УЕФ) В требованиях - 0.02 В проекте - 0.0125 В коде - 0.003 В документации - 0.01 Не точно устраненных - 0.01 Всего 0.056 фактических дефектов/УЕФ В требованиях - 0.16 В проекте - 0.10 В коде - 0.024 В документации - 0.08 Не точно устраненных - 0.08 Всего 0.444 фактических дефектов/УЕФ
Эффективность устра нения дефектов (спо собность устранять дефекты без внесения новых) СММ уровень 5 - 95%, СММ уровень 4 - 93% СММ уровень 3 - 91%, СММ уровень 2 - 89% СММ уровень 1 - 85%

Таблица 13.4. Эталонные данные по программным проекта

В таблице 13.5 представлены данные о процессах выявления и устранения дефектов, опубликованные С. Кэном .

Таблица 13.5. Структура дефектов по стадиям жизненного цикла программного средства

Стадия жизненного цикла Унаследовано Внесено Всего присутствуют Эффективность устранения Устранено Остаток
Анализ требований Нет 1.2 1.2 Нет Нет 1.2
Спецификация треб. 1.2 8.6 9.8 74% 7.3 2.5
Проектирование 2.5 9.4 11.9 61% 7.3 4.6
Кодирование 4.6 15.4 20.0 55% 11.0 9.0
Автоном. тестирование 9.0 Нет 9.0 36% 3.2 5.8
Интеграц. тестирование 5.8 Нет 5.8 67% 3.9 1.9
Испытания 1.9 Нет 1.9 58% 1.1 0.8
Эксплуатация 0.8 Нет Нет Нет Нет Нет

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


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Поиск по сайту:



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