- •Оглавление
- •Цикл жизни программного обеспечения
- •Начальные этапы разработки по
- •Общие требования к методологии и проектированию по
- •Качество и надежность программного обеспечения
- •Показатели качества
- •Сложность комплексов программ
- •Надежность комплексов программ
- •Критерии надежности
- •Сбой, отказ, восстановление
- •Алгоритмы сортировки
- •Введение
- •Внутренняя сортировка
- •Сравнение эффективности алгоритмов сортировки
- •Простая сортировка вставками
- •Быстрая сортировка Хоара. Сортировка методом пузырька
- •Сортировка методом «турнира с выбыванием»
- •Реализация сортировки вставками. Алгоритм Шелла.
- •Сортировка слиянием. Поразрядная сортировка
- •Поиск данных
- •Введение в поиск данных
- •Последовательный поиск
- •Поиск в упорядоченной таблице
- •Бинарный поиск
- •Поиск по дереву
- •Вставка в дерево бинарного поиска
- •Удаление из дерева бинарного поиска
- •Хеширование
- •Разрешение коллизий при хешировании методом открытой адресации
- •Выбор хеш-функции
- •Объектно-ориентированное программирование
- •Введение в объектно-ориентированное программирование
- •Инкапсуляция
- •Полиморфизм
- •Конструкторы и деструкторы
- •Наследование
- •Объединения, встраиваемые функции
- •Указатели и адреса
- •Программирование параллельных вычислений
- •Введение
- •Сети. Родитель сети
- •Синхронизация процессов
- •Литература
Качество и надежность программного обеспечения
Показатели качества
Критерии качества программного обеспечения [2] представляют собой измеряемые численные показатели в виде показателей целевой функции, характеризующие степень выполнения программами своего назначения. Принципиальной особенностью требований качества комплекса программ является невозможность выделения единственного критерия качества. В ходе анализа выделяется приоритетный критерий, удовлетворяющий следующим требованиям:
он должен численно характеризовать степень выполнения основной целевой функции системы наиболее важной для этапа анализа программного обеспечения;
критерий должен обеспечивать возможность определения затрат, необходимых для достижения его значений, а также степени влияния на показатель качества различных внешних факторов и параметров;
он должен быть по возможности простым по содержанию, хорошо измеряемым и слабо зависеть от множества неконтролируемых факторов.
Наиболее широко в информационных системах применяются экономические критерии. Эти критерии представляют собой эффективность в виде повышения производительности труда, снижения потребления, увеличения объема выполнения работ, качества, надежности и т.д. Выделение и измерение показателей характеризующих качество программ необходимо, прежде всего, для целевого управления разработкой ПО. Показатели качества подлежат измерению и численной оценке, для чего осуществляется их формализация вводом так называемых метрик. Применение метрик (числовых оценок параметров) к комплексам программ позволяет упорядочить их разработку, испытания, эксплуатацию и сопровождение. Качество ПО при этом может оцениваться количественно. На практике применяют следующие виды метрик и шкал для измерения показателей:
первый вид числовых параметров - метрик характеризуется относительными величинами или реально измеряемыми физическими показателями, например временем наработки на отказ, вероятностью ошибки, числом маршрутов в программе и т.д.
второй вид метрик - порядковая шкала позволяет ранжировать некоторые характеристики путем сравнения с опорными значениями. При этом устанавливается приоритетность признаков.
третий вид метрик (категорийная шкала) характеризует только наличие рассматриваемого свойства или признака у объекта. Фиксируется есть или нет данное качество в зависимости от наличия рассматриваемого показателя у комплекса программ (например, наличие структурирования, гибкости, простоты освоения и т.д.).
Реальные значения показателей качества могут поэтапно уточняться в процессе создания и эксплуатации программ. На первом этапе формирования технического задания и спецификаций на ПО выявляются доминирующие показатели, устанавливается относительная важность каждого из показателей и строится обобщенная функция качества.
По мере создания комплекса программ после завершения отладки и проведения испытаний уточняется достигнутое реальное значение каждого из показателей и обобщенной функции качества всего комплекса. Показатели качества могут определяться в процессе эксплуатации, в результате чего обеспечивается долгосрочная перспектива объективного измерения и повышения качества программ. В течение жизненного цикла ПО возможно изменение удельного веса и роли анализируемых критериев. На каждом этапе жизненного цикла можно выделить важнейший доминирующий критерий качества и основные потребляемые ресурсы, которые значительно отличаются от соответствующих показателей на других этапах. Существует несколько моделей выборок критериев качества и их связей с различными факторами. Анализ качества ПО проводится с использованием деления критериев качества на функциональные и конструктивные. Выделены также факторы, влияющие на основные показатели, которые иногда рассматриваются как частные критерии качества программ.
Функциональные критерии отражают основную специфику применения и степень соответствия программ их целевому назначению. Для программ управления в них входят показатели точности выходных данных, диапазон изменения параметров, время реакции, адаптивность к внешним воздействиям и т.д. В системах обработки информации функциональные показатели отражают номенклатуру исходных данных, достоверность результатов, разнообразие функций редактирования и др. При анализе и выборе функциональных критериев качества необходимо учитывать совокупную эффективность комплекса программ на всем жизненном цикле программного обеспечения с учетом затрат на проектирование, эксплуатацию и сопровождение.
Конструктивные критерии качества ПО более или менее инвариантны ( независимы) к их целевому назначению и основным функциям. К ним относятся сложность программ, надежность функционирования, используемые ресурсы ЭВМ и т.д.
Таблица 2.1. Критерии качества и определяющие их факторы
Проектирование |
Эксплуатация |
Сопровождение | |
ОСНОВНЫЕ КРИТЕРИИ КАЧЕСТВА КОМПЛЕКСА ПРОГРАММ
| |||
|
|
| |
|
|
| |
|
|
| |
|
|
| |
ОСНОВНЫЕ ФАКТОРЫ, ОПРЕДЕЛЯЮЩИЕ КАЧЕСТВО
| |||
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
|
Выделенные факторы, определяющие качество проектирования программ, можно разделить на группы структурного проектирования (п. 1-3), технологического обеспечения (п. 4-6) и организационно- человеческие факторы (п. 7). В заключение следует особо выделить временные показатели жизненного цикла ПО:
длительность проектирования;
продолжительность эксплуатации очередной версии и длительность проведения каждой модификации.
Продолжительность проведения этих работ в ряде случаев может быть более важным критерием, чем трудоемкость. В некоторых случаях суммарная длительность эффективной эксплуатации является доминирующим критерием качества программ.
Рассмотрим управление качеством ПО. Такое управление включает:
анализ системных требований к ПО и ранжирование показателей качества с выделением обязательных и желательных значений характеристик;
разработку методик и стандартов контроля степени выполнения заданной технологии модульно-иерархического проектирования комплекса программ и его компонент;
создание методов, средств, технологии объективного измерения и поэтапного контроля степени выполнения заданных требований к качеству программ;
создание средств инструментальной технологической поддержки автоматизации программирования, отладки, испытаний, обеспечивающих создание комплекса программ с заданными показателями качества;
организацию коллектива специалистов и организацию процесса проектирования с целевой задачей максимального удовлетворения требований заказчика к качеству комплекса программ.
Управление качеством можно разделить на подготовительную фазу и фазу активного контроля и управления. На подготовительной фазе разрабатываются стандарты, методы и средства, потенциально способствующие созданию комплекса программ с заданными характеристиками качества. Выбор и подготовка технологии проектирования в значительной мере определяют последующее качество программ.
Важнейшим для качества программ является этап системного анализа, формирования технического задания и общей спецификации на комплекс программ. При этом для управления качеством ПО необходимо учитывать два типа ограничений. Первый тип ограничений характеризует уровень современных знаний теории и методов решения поставленных задач, как с позиции формализации основных функциональных алгоритмов, так и с точки зрения методов структурного построения сложных систем и технологии их проектирования. Второй тип ограничений составляют в основном технические параметры средств, на которых предполагается реализовать комплекс программ, трудовые и финансовые ресурсы, которые могут быть выделены на разработку и эксплуатацию ПО.