Липаев В.В. Программная инженерия
.pdfЛекция 11. Характеристики качества программных средств
—назначение ПС полностью и корректно детализировано в требова ниях к функциям комплекса программ и его компонентов;
—реализация требований к функциям ПС обеспечена достоверным и адекватным составом и содержанием исходной информации от объектов внешней среды;
—реализация функций ПС способна подготавливать всю требуемую
идостаточно корректную информацию для пользователей и объектов внеш ней среды.
Прослелсивание качества результатов при углублении и детали зации этих описаний и обеспечение их взаимной адекватности является основой для определения группы показателей функциональной пригодно сти. Они должны максимально полно и точно представляться в контракте, техническом задании и спецификациях требований к ПС и к его функцио нальным компонентам, так как устранение их дефектов требует особенно крупных ресурсов.
Любые ПС, прежде всего, должны иметь экономическую, техничес кую, научную или социальную эффективность применения, которая в про ектах должна отражать основную цель их экизненного цикла в системе. Эта системная эффективность может быть описана количественно или качественно, в виде набора полезных свойств программного продукта, их отличий от имеющихся у других комплексов программ, а также источни ков возможной эффективности. В результате должны быть формализова ны цель использования и набор главных требований заказчика и пользова телей при приобретении программного продукта, а также предполагаемая его сфера применения и назначение. Полнота и точность представления этой характеристики ПС может оцениваться в основном экспертно и явля ется исходной для прослеживания всех последующих, производных свойств и атрибутов функциональной пригодности.
Цель и назначение ПС детализируются и формализуются в требова ниях к функциям компонентов и всего комплекса программ, способного реализовать декларированные цели:
—соответствие комплекса программ функциям системы;
—соответствие автоматизируемых функций и комплексов задач на значению ЖЦ ПС;
—общие технические требования к реализации функций, компонен тов и задач.
300
11.2. Свойства и атрибуты качества функциональных возможностей...
Адекватность и полнота отражения требуемыми функциями сформу лированного назначения ПС является характеристикой, определяющей по тенциальную возможность реализации его функциональной пригодноети в целом. Прослеживание детализации и покрытия целей, требования ми к функциям сверху вниз (начиная от целей ПС), а также конкретизация и корректировка целей снизу вверх от потенциально реализуемых функ ций компонентов должны обеспечивать адекватность и качество этой час ти декларируемой основы функциональной пригодности.
Функции ПС реализуются в определенной аппаратной, операционной и пользовательской внешней среде системы, характеристики которых су щественно влияют на функциональную пригодность. Для выполнения тре буемых функций комплекса программ необходима адекватная исходная
информация от объектов внешней среды, содержание которой должно полностью обеспечивать реализацию декларированных функций. Полнота формализации номенклатуры, структуры и качества входной информации для выполнения требуемых функций является одной из важных составля ющих при определении функциональной пригодности ПС в соответству ющей внешней среде.
Цель и функции ПС реализуются тогда, когда выходная информация достигает потребителей — объектов или операторов-пользователей, с тре буемым содержанием и качеством, достаточным для обеспечения ее эф фективного применения. Содержательная часть этой информации опреде ляется конкретными задачами системы, основными технико-экономичес кими и/или социальными показателями функционирования системы и отражается метриками в использовании. Степень покрытия всей выход ной информацией: целей, назначения и функций ПС для пользователей — следует рассматривать как основную меру качества функциональной при годности. Прослеживание и оценивание адекватности и полноты состава выходной информации снизу вверх к назначению ПС должны завершать выбор базовых субхарактеристик качества функциональной пригодности, независимо от сферы применения системы.
В процессе проектирования в составе функциональной пригодности могут быть выделены две группы базовых субхарактеристик, определяю щие функциональные и структурные требования и особенности ПС,
При формализации и выборе функциональных требований следует, воз можно, четко формулировать в документах контракта:
301
Лекция 11. Характеристики качества программных средств
—экономические, организационные, технические и/или социальные стратегические цели всего жизненного цикла ПС и его компонентов;
—назначение, внешнюю среду и условия эффективного применения
ПС;
—системную эффективность и в том числе требуемые технико-эко номические показатели применения ПС в составе системы;
—функциональные задачи основных компонентов и ПС в целом, а также системную эффективность каждого;
—необходимое и достаточное качество и временной регламент ре шения каждой функциональной задачи;
—соответствие ПС и его компонентов стандартам и нормативным документам на проектирование и применение;
—ограничения параметров внешней среды и условий для примене ния ПС, гарантирующие требуемые характеристики функциональной при годности.
Функциональная пригодность в течение жизненного цикла ПС зави сит от структурных (архитектурных) характеристик, которые долж ны отражаться в требованиях технического задания и/или спецификаций на компоненты и ПС в целом:
—соответствие функций и структуры программного средства аппа ратной и операционной среде и их ограниченным ресурсам;
—соответствие правил структурного построения комплекса, функ циональных компонентов и модулей типовым требованиям к архитектуре ПС и его компонентов, а также к уровню покрытия ими заданных функций комплекса программ;
—состав, структура и способы организации данных, а также требова ния к обмену данными между компонентами ПС должны быть адекватны организации информационного обеспечения и функциям системы;
—должны быть заданы временной регламент и характеристики про цесса динамической реализации автоматизированных функций;
—должно быть определено допустимое время задержки выдачи ре зультатов решения задач;
—должны быть предусмотрены и реализованы требования к контро лю, хранению, обновлению и восстановлению программ и данных.
Вряде систем особое значение для функциональной пригодности имеет системное проектирование организации информационного обеспе чения и базы данных (см. п. 11.4). При этом должны быть определены:
302
11.2.Свойства и атрибуты качества функциональных возможностей...
—назначение базы данных и состав информации в ней;
—совместимость ПС с другими системами по источникам и пот ребителям информации базы данных;
—организация сбора, передачи, контроля и корректировки информа ции базы данных;
—интенсивность и объемы потоков информации базы данных.
После формулирования требований к функциональной пригоднос
ти нового проекта ПС обычно целесообразно попытаться найти готовые ПС с требуемыми функциями. Однако множество мелких конструктив ных, казалось бы, второстепенных требований и нестандартизированных интерфейсов зачастую затрудняют непосредственное применение в новом проекте готовых компонентов с подходящими функциями. Это определя ет необходимость тщательного оценивания для новых проектов всего на бора приоритетных конструктивных характеристик качества в ПС с по добными характеристиками функциональной пригодности.
В наибольшей степени функциональная пригодность во многих слу чаях зависит от корректности и наде^кности ПС. Значительные труд ности при создании ориентиров для выбора мер и шкал характеристик качества проявляются при анализе корректности, способности к взаимо действию и защищенности — безопасности ПС.
Правильность — корректность: это способность ПС обеспечивать правильные (или приемлемые) результаты для пользователей. Эталонами для выбора требований к корректности при проектировании могут быть: верифицированные и взаимоувязанные требования к функциям комплек са, компонентов и модулей программ, а также правила их структурного построения, организация взаимодействия и интерфейсов (таблица 11.1). Эти требования при разработке должны быть прослежены сверху вниз до модулей и использоваться как эталоны при установлении необходимой корректности соответствующих компонентов. В процессе проектирования и разработки модулей и групп программ применяются частные структур ные критерии корректности, которые включают корректность структуры программ, обработки данных и межмодульных интерфейсов. Каждый из частных критериев может характеризоваться несколькими методами изме рения качества и достигаемой степенью корректности программ: детер минировано, стохастически или в реальном времени.
303
Лекция 11. Характеристики качества программных средств
Таблица 11.1
Субхарактеристики, атрибуты качества и свойства для выбора функциональных возможностей программных средств
1 Субхарактеристики |
Атрибуты качества и свойства |
Корректность |
— соответствие требований к функциям ПС требованиям к ин |
|
формационной системе; |
|
— соответствие требований к функциональным компонентам |
|
требованиям к функциям ПС; |
|
— соответствие текстов программ требованиям к функциональ |
|
ным компонентам ПС; |
|
— соответствие объектного кода исходному тексту программ |
|
функциональных компонентов ПС; |
|
— степень покрытия тестами функций и возможных маршрутов |
|
исполнения программ |
Способность к взаи — с операционной системой и аппаратной средой; модействию — с внешней средой системы и с пользователями;
—между программными компонентами;
—между компонентами распределенных информационных сис тем
Защищенность — соответствие критериям и требованиям защиты от предумыш ленных угроз безопасности ПС;
—соответствие методам и средствам защиты от проявления слу чайных дефектов программ и данных;
—обеспечение эффективности оперативных методов защиты и восстановления при проявлениях и реализации угроз безопасно сти;
—соответствие стандартам и нормативным документам на за щиту от различных типов угроз безопасности;
—обеспечение равнопрочной защиты в соответствии с опасно стью угроз и доступностью ресурсов для защиты
Требования к субхарактеристике корректность могут представлять ся в виде описания двух основных свойств, которым должны соответство вать все программные компоненты и ПС в целом. Первое требование состоит в выполнении определенной степени (%) прослеживаемости сверху вниз реализации требований технического задания и спецификации на ПС при последовательной детализации описаний программных компонентов вплоть до текстов и объектного кода программ.
Второе требование заключается в выборе степени и стратегии по крытия тестами структуры и функций программных компонентов, сово-
304
11.2. Свойства и атрибуты качества функциональных возможностей...
купности маршрутов исполнения модулей и всего комплекса программ для последующего процесса верификации и тестирования, достаточного для функционирования ПС с необходимым качеством и точностью ре зультатов, при реальных ограничениях ресурсов на тестирование. Мерой выбранной корректности может быть относительное число протестиро ванных функций и маршрутов, которое может измеряться в процентах от обш[его числа исполняемых. Опыт показывает, что зачастую в готовом, сложном ПС оказываются протестированными только около 50—70% функ ций и маршрутов, и практически очень трудно эту величину довести до 90—95%. Косвенно эту величину при определенной автоматизации про цессов и квалификации специалистов отражает трудоемкость и длитель ность тестирования, что непосредственно влияет на функциональную при годность ПС.
Способность к взаимодействию — состоит в свойстве ПС и его компонентов взаимодействовать с одним или большим числом определен ных компонентов внутренней и внешней среды (см. табл. 11.1). При выбо ре и установлении при проектировании способности программных и ин формационных компонентов к взаимодействию ее можно оценивать объе мом технологических изменений в ПС, которые необходимо выполнять при дополнении или исключении некоторой функции или компонента, когда отсутствуют изменения операционной, аппаратной или пользова тельской среды. С этим показателем связана корректность и унифициро ванность межмодульных интерфейсов, которые определяются двумя вида ми связей: по управлению и по информации.
Требования к характеристике способность к взаимодействию могут быть достаточно полно формализованы как набор свойств и утверждены в процессе системного проектирования, с некоторыми уточнениями на пос ледующих этапах. Их основой являются ссылки на нормативные докумен ты, на интерфейсы открытых систем или на выбранные для конкретного проекта стандарты де-факто. При выборе свойств программных компо нентов, обеспечиваюпдих способность к взаимодействию в конкретном проекте ПС, следует оценивать величину вычислительных ресурсов, необ ходимых для их реализации. При этом важно учитывать возможность повторного использования апробированных компонентов и переноса на различные платформы.
305
Лекция 11. Характеристики качества программных средств
Унификация свойств интерфейсов на взаимодействие с внутренней, внешней средой и с пользователями должна отражаться в специальных разделах технологической документации и иметь возможность проверки заказчиком и/или экспертами по документам и текстам программ. Эта характеристика состоит в описании свойств и практически не влияет на качество функционирования текущей версии ПС. Степень унификации интерфейсов может измеряться их относительным числом или объемом текста (например, в процентах от объема программ), которые подвергают ся изменениям при любых корректировках взаимодействия программ. Ряд общих понятий, методов и функций, которые могут рассматриваться как достаточно полная база и набор свойств компонентов, обеспечивающих высокую способность к взаимодействию, обобщены в концепции, мето
дах и стандартах открытых систем.
Защищенность и безопасность функционирования — одна из наи более трудно формализуемых характеристик качества сложных ПС, кото рая занимает исключительное по важности положение среди всех конст руктивных характеристик комплексов программ. Цели, назначение и фун кции защиты тесно связаны с особенностями функциональной пригодности каждого ПС. Разработка и формирование требований к свойствам защи щенности должны осуществляться на основе потребностей эффективной реализации назначения и функций ПС при различных, реальных угрозах. В процессе системного анализа и проектирования должны быть выявлены потенциальные предумышленные и случайные угрозы функционирова нию ПС и установлен необходимый уровень защиты от них данного комп лекса программ. В соответствие с этим уровнем заказчиком выбирается и устанавливается стандартизированная категория защищенности и безо пасности ПС и необходимый набор методов, свойств и средств защиты с учетом ограниченных ресурсов на их реализацию. В результате сформи рованные требования должны обеспечивать равнопрочную защиту от ре альных угроз и реализацию необходимых мер контроля и подтверждения целостности и характеристик качества функциональной пригодности ком плекса программ в условиях проявления различных угроз безопасности функционирования ПС (см. п. 11.5).
306
11.3.Конструктивные характеристики качества сложных программных средств
11.3.Конструктивные характеристики качества сложных программных средств
Конструктивные характеристики разделены на две группы: количе ственные и качественные, которые различаются возможностями конкре тизации мер и шкал. Две группы стандартизированных характеристик качества ПС — Надежность и Эффективность в наибольшей степени доступны количественным измерениям. Для них в таблице 11.2 пред ставлены примеры возможных мер и шкал измерения основных количе ственных атрибутов субхарактеристик качества. Они могут служить ори ентирами при выборе и установлении требуемых значений этих показате лей качества в спецификациях ПС.
Таблица 11.2
Основные количественные характеристики программных средств и их атрибуты
Характеристики качества |
Мера |
Шкала |
1 Надежность |
|
|
Завершенность: |
|
|
наработка на отказ при отсутствии рестарта; |
Часы |
10—1000 |
степень покрытия тестами функций и структуры программ |
% |
50—100 |
Устойчивость: |
|
|
наработка на отказ при наличии автоматического рестарта; |
Часы |
10—1000 |
относительные ресурсы на обеспечение надежности и ре |
|
|
старта |
% |
10—90 |
Восстанавливаемость: |
|
длительность восстановления
Доступность-готовность:
относительное время работоспособного функционирования
Эффективность
Временная эффективность:
время отклика — получения результатов на типовое задание; пропускная способность — число типовых заданий, испол няемых в единицу времени
Используемость ресурсов:
относительная величина использования ресурсов ЭВМ при нормальном функционировании программного средства
Минуты |
10-^—10 |
|
|
Вероятность |
0,9—0,999 |
Секунды |
0,1—100 |
Число в ми |
|
нуту |
1—1000 |
Вероятность |
0,7—0,95 1 |
Надежность: свойства комплекса программ обеспечивать достаточно низкую вероятность потери работоспособности — отказа в процессе
307
Лекция 11. Характеристики качества программных средств
функционирования ПС в реальном времени. Основные атрибуты надежно сти могут быть объективно измерены и сопоставлены с требованиями. Требования к значениям атрибутов субхарактеристики завершенность — допустимой наработки на отказ — устанавливаются при отсутствии авто матического рестарта и при наличии администратора, контролирующего работоспособность ПС. Применением программно-аппаратных механиз мов автоматического рестарта эта наработка при проявлении отказов мо жет быть повышена, т.е. при некоторых отказах возможно их автомати ческое обнаружение и оперативное восстановление работоспособности, вследствие чего значения устойчивости и наработки на отказ возрастают. Это должно учитываться при определении требований к коэффициенту готовности — вероятности застать ПС в работоспособном состоянии. Так же как при формировании требований к корректности (см. табл. 11.1), для надежности большое значение имеет покрытие тестами в процессе отлад ки структуры и функций программных компонентов и ПС в целом.
Надежность функционирования программ является понятием динамическим, проявляющимся во времени, и существенно отличается от по нятия статической корректности программ. Надежность ПС наиболее пол но характеризуется устойчивостью или способностью к безотказному функционированию и восстанавливаемостью работоспособного состояния после произошедших сбоев или отказов. В свою очередь, устойчивость зависит от степени покрытия тестами функций и структуры программ, от уровня неустраненных дефектов и ошибок (завершенность) и от способно сти ПС реагировать на их проявления так, чтобы это не отражалось на показателях надежности. Последние определяются эффективностью конт роля данных, поступающих из внешней среды и от средств обнаружения аномалий функционирования ПС. В реальных условиях по различным причинам исходные данные могут попадать в области значений, не прове ренные при разработке и испытаниях, а также не заданные требованиями спецификации и технического задания, вызывающие сбои и отказы. При этом некорректная программа может функционировать совершенно на дежно.
Завершенность: свойство ПС не попадать в состояния отказов вслед ствие ошибок и дефектов в программах и данных. Количество или плот ность проявления скрытых дефектов и ошибок непосредственно отражает-
308
11.3. Конструктивные характеристики качества сложных программных средств
ся на длительности нормального функционирования комплекса программ между отказами. Завершенность можно характеризовать наработкой (дли тельностью) на отказ (при отсутствии автоматического восстановления — рестарта), измеряемой обычно часами. На эту субхарактеристику влияют только отказы, вследствие проявившихся дефектов. Они могут быть обус ловлены неполным тестовым покрытием при испытаниях компонентов и ПС в целом, а также недостаточной завершенностью тестирования их функций.
Устойчивость к дефектам и ошибкам: свойство ПС автоматически поддерживать заданный уровень качества функционирования при прояв лениях дефектов и ошибок или нарушениях установленного интерфейса. Для этого в ПС должна вводиться временная, программная и информаци онная избыточность, реализующая оперативное обнаружение дефектов и ошибок функционирования, их идентификацию и автоматическое восста новление (рестарт) нормального функционирования ПС. Эффективное, опе ративное устранение проявления дефектов, ошибок и некорректного взаи модействия с операционной и внешней средой определяют субхарактери стику — устойчивость комплексов программ.
Восстанавливаемость: свойство ПС в случае отказа возобновлять требуемый уровень качества функционирования, а также исправлять по врежденные программы и данные. После отказа ПС иногда бывает нерабо тоспособно в течение некоторого времени, продолжительность которого определяется его восстанавливаемостью. Для этого необходимы вычисли тельные ресурсы и время на выявление неработоспособного состояния, диагностику причин отказа, а также на реализацию процессов восстанов ления. Основными показателями процесса восстановления являются его длительность и вероятностные характеристики. Восстанавливаемость ха рактеризуется также полнотой восстановления нормального функциони рования программ в процессе ручного или автоматического их перезапус ка — рестарта. Перезапуск должен обеспечивать возобновление нор мального функционирования ПС, на что требуются ресурсы ЭВМ и время, которые можно характеризовать относительной величиной (% от общих ресурсов).
Доступность или готовность: свойство ПС быть в состоянии вы полнять требуемую функцию в данный момент времени при заданных
309