- •Стандарт ISO 912
- •Качество исходного кода
- •Качество ПО
- •Содержание основных характеристик качества программных средств
- •Функциональная
- •Надежность
- •Применимость
- •Эффективность
- •Сопровождаемость
- •Переносимость
- •Дополнительно каждая характеристика сопровождается субхарактеристикой согласованность, то есть отсутствие противоречий со стандартами и
- •Функциональная
- •Функциональная
- •Функциональная
- •Корректность программных модулей
- •Корректность обработки данных
- •Корректность структуры комплексов программ
- •Корректность межмодульных интерфейсов
- •Надежная программа
- •Особенности и отличия программных проектов от традиционных технических систем
- •Особенности и отличия программных проектов от традиционных технических систем
- •Определение степени работоспособности системы предполагает наличие в ней средств, способных установить соответствие ее
- •Принцип классификации сбоев и отказов
- •Надежность функционирования ПС
- •Восстанавливаемость
- •Критерий длительности наработки на отказ
- •Несмотря на быстрый рост ресурсов памяти и производительности ЭВМ, очень часто потребности в
- •Ресурсная экономия
- •Временная экономичность ПС
- •Пропускная способность
Дополнительно каждая характеристика сопровождается субхарактеристикой согласованность, то есть отсутствие противоречий со стандартами и нормативными документами, а также с другими показателями.
Характеристики и субхарактеристики в стандарте определены очень кратко, без комментариев и рекомендаций по их применению к конкретным системам и проектам. Материалы имеют справочный характер и не содержат рекомендаций по выбору и упорядочению необходимого минимума критериев в зависимости от особенностей объекта и среды разработки. Кроме того, для большинства показателей отсутствуют методики их измерения и сопоставления с требованиями спецификаций, а также рекомендации, на каких этапах разработки их целесообразно применять. Для многих показателей допускается использование метода экспертных оценок, что в условиях отсутствия обоснованных требований к уровню квалификации экспертов не гарантирует объективности оценок этих показателей. Более того, описания показателей качества ориентированы на высококвалифицированных системных аналитиков и заказчиков ПС, которым предоставляется возможность выбирать необходимую номенклатуру характеристик в соответствии с назначением, областью применения и конкретными особенностями создаваемых объектов.
Функциональная
пригодность
это набор атрибутов, определяющий назначение, номенклатуру, основные необходимые и достаточные функции ПС, заданные техническим заданием заказчика или потенциального пользователя. В процессе проектирования ПС атрибуты функциональной пригодности должны конкретизироваться в спецификации на компоненты. Эти атрибуты можно численно представить точностью вычислений, относительным числом поэтапно изменяемых функций, числом спецификаций требований заказчиков и т.д. Кроме них функциональную пригодность отражают множество различных специализированных критериев, которые тесно связаны с конкретными функциями программ. Их можно рассматривать как частные критерии или как факторы, влияющие на основные показатели.
В наибольшей степени функциональная пригодность проявляется в
корректности и надежности ПС, поэтому этим показателям посвящено основное содержание раздела. Кроме них функциональную пригодность отражают множество различных критериев, которые тесно с ней связаны. Их можно рассматривать как частные критерии или как факторы, влияющие на основные показатели.
Функциональная
пригодность
Функциональная пригодность определяется
качеством системного и структурного проектирования ПС. Критериями, отражающими эти
свойства могут быть: способность компонентов к взаимодействию и степень стандартизации интерфейсов, мобильность программ и их защищенность от негативных внешних воздействий. Способность программных и информационных компонентов к взаимодействию можно оценивать объемом изменений в ПС, которые необходимо выполнить при дополнении или исключении некоторой функции, когда отсутствуют изменения операционной или аппаратной среды.
Функциональная
пригодность
В зависимости от назначения ПС почти каждый из показателей рассмотренной группы может стать в значительной степени доминирующим или почти полностью определяющим функциональную пригодность ПС. Однако практически во всех случаях важнейшим критерием является функциональная корректность ПС. Приведенные ниже виды корректности используются, в основном, для интегральной оценки результатов тестирования разработанных ПС В процессе проектирования модулей и групп программ применяются частные конструктивные критерии корректности, которые включают корректность структуры программ, обработки данных и межмодульных интерфейсов. Каждый из частных критериев может характеризоваться несколькими методами измерения качества и достигаемой степенью корректности программ: детерминированно, стохастически или в реальном времени.
Корректность программных модулей
Включает функциональную и конструктивную корректность. Конструктивная корректность модулей заключается в соответствии их структуры общим правилам структурного программирования и конкретным правилам оформления и внутреннего строения программных модулей в данном проекте. Функциональная корректность модулей определяется корректностью обработки исходных данных и получения результатов. В зависимости от функциональных задач корректность модуля может оцениваться детерминировано, по полностью определенным наборам эталонных значений, или стохастически, при задании эталонов распределениями случайных величин.
Корректность обработки данных
Также имеет функциональную и конструктивную составляющие. Конструктивная корректность обработки данных определяется правилами их структурирования и упорядочения. Эти правила могут быть достаточно полно формализованы без учета конкретных особенностей функционирования программ. Назначение и область применения программ определяют выбор используемых структур данных и конкретных дисциплин их упорядочения. Функциональная корректность обработки данных связана в основном с конкретизацией их содержания в процессе исполнения программ, а также при подготовке данных внешним абонентам. Корректность обработки данных определяется степенью отладки процесса обработки представительной выборки переменных в диапазонах их изменения.
Корректность структуры комплексов программ
Определяется корректностью структуры модулей и корректностью структуры групп программ, построенных из модулей. Для оценки корректности структуры программ используется несколько частных показателей, различающихся степенью охвата тестами структурных компонентов программы при тестировании. Проверка корректности структуры компонентов производится в основном статически по исходным текстам программ или динамически при исполнении программы в объектном коде. При обоих методах по мере углубления критериев проверок возрастает объем и сложность тестов, а следовательно, и достигаемая степень корректности программ.
Корректность межмодульных интерфейсов
Определяется двумя видами связей между модулями: по управлению и по информации. Связи по управлению составляют вызовы программных модулей и возвраты в вызывавшие. Каждая связь модуля по управлению может содержать ошибку и являться причиной одного из видов некорректностей. Взаимодействие модулей по информации может происходить через обменные переменные, непосредственно подготавливаемые и используемые соседними модулями, или через глобальные переменные. Некорректности взаимодействия модулей по информации очень разнообразны, трудно контролируемые и часто носят стохастический характер. Многообразие и сложность информационных связей в больших ПС значительно затрудняют формализацию достигнутой корректности программ. Критерии становятся стохастическими и качество ПС оценивается интегрально по результатам общего функционирования.
Надежная программа
Прежде всего должна обеспечивать достаточно низкую вероятность отказа в процессе функционирования в реальном времени. Быстрое реагирование на искажения программ, данных или вычислительного процесса и восстановление работоспособности за время меньшее, чем порог между сбоем и отказом, обеспечивают высокую надежность программ. При этом некорректная программа может функционировать абсолютно надежно. В реальных условиях по различным причинам исходные данные могут попадать в области значений, вызывающих сбои, не проверенные при испытаниях, а также не заданные требованиями спецификации и технического задания. Если в этих ситуациях происходит достаточно быстрое восстановление, такое что не фиксируется отказ, то такие события не влияют на основные показатели надежности- наработку на отказ и коэффициент готовности. Следовательно, надежность функционирования программ является понятием динамическим, проявляющимся во времени, и существенно отличается от понятия корректности программ.
Особенности и отличия программных проектов от традиционных технических систем
При применении понятий надежности к программным средствам следует учитывать особенности и отличия этих
объектов от традиционных технических систем, для которых первоначально разрабатывалась теория надежности