Свойства и атрибуты качества функциональных возможностей сложных программных средств
Системная эффективностьцелевого применения программных средств определяется степенью удовлетворения потребностей определенных лиц – заказчиков и/или пользователей, которую во многих случаях желательно измерять экономическими категориями: прибылью, стоимостью, трудоемкостью, предотвращенным ущербом-риском, длительностью применения и т.п.. Решение этих задач должно быть направлено на обеспечение высокой функциональной пригодности ПС, путем сбалансированного улучшения, конструктивных характеристик качества в условиях ограниченных ресурсов на ЖЦ. Для этого в процессе системного анализа при подготовке технического задания и требований спецификаций, значения атрибутов и субхарактеристик качества, должны выбираться с учетом их влияния на функциональную пригодность. Ориентирами могут служить диапазоны изменения атрибутов конструктивных характеристик качества ПС, границы количественных или качественных шкал которых сверху и снизу могут быть выбраны на основе следующих принципов:
- предельные значения характеристик качества, должны быть ограничены сверху допустимыми или рациональными затратами ресурсов на их достижение при разработке и совершенствовании ПС;
- наибольшие допустимые затраты ресурсов, например труда и времени для реализации конструктивных характеристик, должны обеспечивать функциональную пригодность жизненного цикла ПС на достаточно высоком уровне;
- допустимые наихудшие значения отдельных конструктивных характеристик качества, могут соответствовать значениям, при которых заметно начинает снижаться функциональная пригодность при применении ПС;
- ограниченные значения отдельных конструктивных характеристик качества, не должны негативно отражаться на возможных высоких значениях других приоритетных характеристик.
Способность ПС обеспечивать решение конкретных задач, удовлетворяющих установленные потребности заказчиков и пользователей при применении комплекса программ в заданных условиях, отражена в стандарте ISO 9126:1 характеристикой - функциональные возможности. В ней на первом месте стоит самая важная субхарактеристика ЖЦ ПС – функциональность или функциональная пригодность. Кроме нее в состав функциональных возможностей включены, по существу, конструктивные субхарактеристики: корректность и способность к взаимодействию. Более сложно классифицировать защищенность-безопасность, функции которой непосредственно и органически связаны с конкретными особенностями функциональной пригодности (см. п.11.5).
Функциональная пригодность - это набор и описания атрибутов, определяющих назначение, основные, необходимые и достаточные функции ПС, заданные техническим заданием и спецификациями требований заказчика или потенциального пользователя. В процессе проектирования комплекса программ атрибуты функциональной пригодности должны конкретизироваться в спецификациях на ПС в целом и на компоненты. Атрибутами этой характеристики качества могут быть функциональная полнота решения заданного комплекса задач, степень покрытия функциональных требований спецификациями и их стабильность при совершенствовании ПС, число реализуемых требований заказчиков. Кроме них функциональную пригодность отражают множество различных специализированных критериев, которые тесно связаны с конкретными решаемыми задачами и сферой применения комплекса программ. Их можно рассматривать как частные критерии или как факторы, влияющие на основной показатель качества ПС.
Эта характеристика может значительно модифицироваться в жизненном цикле ПС и соответственно изменяться конкретное содержание базовых функций, которые подлежат применению и оцениванию. На последовательных этапах ЖЦ, функции промежуточных продуктов (спецификаций компонентов, модулей, текстов программ и т.п.) должны оцениваться на соответствие описаниям в отдельных, частных документах. Это позволяет поэтапно формализовать применяемые субхарактеристики и атрибуты функциональной пригодности. Такими атрибутами могут быть: функциональная адекватность программ документам и декларированным требованиям, утвержденным заказчиком; степень покрытия тестами исходных требований; полнота и законченность реализации этих требований; точность выполнения требований детальных спецификаций на функциональные компоненты ПС.
Среди всего многообразия функциональных характеристик программных средств можно выделить две группы, одна из которых отражает разнообразные специфические особенности, связанные непосредственно с назначением, функциями и сферой применения ПС, а вторая - доступна для частичной унификации состава и структуры и для оценивания стандартизированными методами. Эта вторая группа характеризует ряд базовых, инвариантных свойств качества, которые позволяют определять некоторые субхарактеристики функциональной пригодности ПС, независимо от конкретных целей и сфер применения. С этой позиции функциональная пригодность определяется качеством взаимосвязи и согласованности последовательных формулировок содержания и реализации основных фрагментов в цепочке стандартизированных требований технического задания на ПС: целей – назначения – функций – исходной информации – результатов для пользователей, определяющих что:
- описание целей программного средства корректно переработано в подробное описание его назначения и внешней среды применения;
- назначение ПС полностью и корректно детализировано в требованиях к функциям комплекса программ и его компонентов;
- реализация требований к функциям ПС обеспечена достоверным и адекватным составом и содержанием исходной информации от объектов внешней среды;
- реализация функций ПС способна подготавливать всю требуемую и достаточно корректную информацию для пользователей и объектов внешней среды.
Прослеживание качества результатов при углублении и детализации этих описаний и обеспечение их взаимной адекватности является основой для определения группы показателей функциональной пригодности. Они должны максимально полно и точно представляться в контракте, техническом задании и спецификациях требований к ПС и к его функциональным компонентам, так как устранение их дефектов требует особенно крупных ресурсов.
Любые ПС, прежде всего, должны иметь экономическую, техническую, научную или социальную эффективность применения, которая в проектах должна отражать основную цель их жизненного циклав системе. Эта системная эффективность может быть описана количественно или качественно, в виде набора полезных свойств программного продукта, их отличий от имеющихся у других комплексов программ, а также источников возможной эффективности. В результате должна быть формализована цель использования и набор главных требований заказчика и пользователей при приобретении программного продукта, а также предполагаемая его сфера применения и назначение. Полнота и точность представления этой характеристики ПС может оцениваться, в основном, экспертно и является исходной для прослеживания всех последующих, производных свойств и атрибутов функциональной пригодности.
Цель и назначение ПС детализируются и формализуются в требованиях к функциям компонентов и всего комплекса программ, способного реализовать декларированные цели:
- соответствие комплекса программ функциям системы;
- соответствие автоматизируемых функций и комплексов задач назначению ЖЦ ПС;
- общие технические требования к реализации функций, компонентов и задач.
Адекватность и полнота отражения требуемыми функциями, сформулированного назначения ПС, является характеристикой, определяющей потенциальную возможность реализации его функциональной пригодности в целом. Прослеживание детализации и покрытия целей, требованиями к функциям сверху вниз (начиная, от целей ПС), а также конкретизация и корректировка целей снизу вверх от потенциально реализуемых функций компонентов должны обеспечивать адекватность и качество этой части декларируемой основы функциональной пригодности.
Функции ПС реализуются в определенной аппаратной, операционной и пользовательской внешней среде системы, характеристики которых существенно влияют на функциональную пригодность. Для выполнения требуемых функций комплекса программ необходима адекватная исходная информацияот объектов внешней среды, содержание которой должно полностью обеспечивать реализацию декларированных функций. Полнота формализации номенклатуры, структуры и качества входной информации для выполнения требуемых функций, является одной из важных составляющих при определении функциональной пригодности ПС в соответствующей внешней среде.
Цель и функции ПС реализуются тогда, когда выходная информациядостигает потребителей - объектов или операторов-пользователей, с требуемым содержанием и качеством, достаточным для обеспечения ее эффективного применения. Содержательная часть этой информации определяется конкретными задачами системы, основными технико-экономи-ческими и/или социальными показателями функционирования системы и отражается метриками в использовании. Степень покрытия всей выходной информацией: целей, назначения и функций ПС для пользователей, следует рассматривать как основную меру качества функциональной пригодности. Прослеживание и оценивание адекватности и полноты состава выходной информации снизу вверх к назначению ПС должны завершать выбор базовых субхарактеристик качества функциональной пригодности, независимо от сферы применения системы.
В процессе проектирования в составе функциональной пригодности могут быть выделены две группы базовых субхарактеристик, определяющие функциональные и структурные требования и особенности ПС. При формализации и выборе функциональных требований следует, возможно, четко формулировать в документах контракта:
- экономические, организационные, технические и/или социальные стратегические цели всего жизненного цикла ПС и его компонентов;
- назначение, внешнюю среду и условия эффективного применения ПС;
- системную эффективность и, в том числе, требуемые технико-эконо-мические показатели применения ПС в составе системы;
- функциональные задачи основных компонентов и ПС в целом, а также системную эффективность каждого;
- необходимое и достаточное качество и временной регламент решения каждой функциональной задачи;
- соответствие ПС и его компонентов стандартам и нормативным документам на проектирование и применение;
- ограничения параметров внешней среды и условий для применения ПС, гарантирующие требуемые характеристики функциональной пригодности.
Функциональная пригодность в течение жизненного цикла ПС зависит от структурных (архитектурных) характеристик, которые должны отражаться в требованиях технического задания и/или спецификаций на компоненты и ПС в целом:
- соответствие функций и структуры программного средства аппаратной и операционной среде и их ограниченным ресурсам;
- соответствие правил структурного построения комплекса, функциональных компонентов и модулей, типовым требованиям к архитектуре ПС и его компонентов, а также к уровню покрытия ими заданных функций комплекса программ;
- состав, структура и способы организации данных, а также требования к обмену данными между компонентами ПС, должны быть адекватны организации информационного обеспечения и функциям системы;
- должны быть заданы временной регламент и характеристики процесса динамической реализации автоматизированных функций;
- должно быть определено допустимое время, задержки выдачи результатов решения задач;
- должны быть предусмотрены и реализованы требования к контролю, хранению, обновлению и восстановлению программ и данных.
В ряде систем особое значение для функциональной пригодности имеет системное проектирование организации информационного обеспечения и базы данных (см. п. 11.4). При этом должны быть определены:
- назначение базы данных и состав информации в ней;
- совместимость ПС с другими системами по источникам и потребителям информации базы данных;
- организация сбора, передачи, контроля и корректировки информации базы данных;
- интенсивность и объемы потоков информации базы данных.
После формулирования требований к функциональной пригодности нового проекта ПС обычно целесообразно попытаться найти готовые ПС с требуемыми функциями. Однако множество мелких конструктивных, казалось бы, второстепенных требований и не стандартизированных интерфейсов, зачастую затрудняют непосредственное применение в новом проекте готовых компонентов с подходящими функциями. Это определяет необходимость тщательного оценивания для новых проектов всего набора приоритетных конструктивных характеристик качества, в ПС с подобными характеристиками функциональной пригодности.
В наибольшей степени функциональная пригодность во многих случаях зависит от корректности и надежности ПС. Значительные трудности при создании ориентиров для выбора мер и шкал характеристик качества, проявляются при анализе корректности, способности к взаимодействию и защищенности – безопасности ПС.
Правильность - корректность: это способность ПС обеспечивать правильные (или приемлемые) результаты для пользователей. Эталонами для выбора требований к корректности при проектировании могут быть: верифицированные и взаимоувязанные требования к функциям комплекса, компонентов и модулей программ, а также правила их структурного построения, организация взаимодействия и интерфейсов (таблица 11.1). Эти требования при разработке должны быть прослежены сверху вниз до модулей, и использоваться как эталоны при установлении необходимой корректности соответствующих компонентов. В процессе проектирования и разработки модулей и групп программ применяются частные структурные критерии корректности, которые включают корректность структуры программ, обработки данных и межмодульных интерфейсов. Каждый из частных критериев может характеризоваться несколькими методами измерения качества и достигаемой степенью корректности программ: детерминировано, стохастически или в реальном времени.
Требования к субхарактеристикекорректность могут представляться в виде описания двух основных свойств, которым должны соответствовать все программные компоненты и ПС в целом. Первое требование состоит в выполнении определенной степени (%) прослеживаемости сверху вниз реализации требований технического задания и спецификации на ПС при последовательной детализации описаний программных компонентов вплоть до текстов и объектного кода программ.
Второе требование заключается в выборе степени и стратегии покрытия тестами структуры и функций программных компонентов, совокупности маршрутов исполнения модулей и всего комплекса программ для последующего процесса верификации и тестирования, достаточного для функционирования ПС с необходимым качеством и точностью результатов, при реальных ограничениях ресурсов на тестирование. Мерой выбранной корректности может быть относительное число протестированных функций и маршрутов, которое может измеряться в процентах от общего числа исполняемых. Опыт показывает, что зачастую в готовом, сложном ПС оказываются протестированными только около 50-70% функций и маршрутов, и практически очень трудно эту величину довести до 90-95%. Косвенно эту величину при определенной автоматизации процессов и квалификации специалистов отражает трудоемкость и длительность тестирования, что непосредственно влияет на функциональную пригодность ПС.
Способность к взаимодействию – состоит в свойстве ПС и его компонентов взаимодействовать с одним или большим числом определенных компонентов внутренней и внешней среды (см. табл. 11.1). При выборе и установлении при проектировании способности программных и информационных компонентов к взаимодействию, ее можно оценивать объемом технологических изменений в ПС, которые необходимо выполнять при дополнении или исключении некоторой функции или компонента, когда отсутствуют изменения операционной, аппаратной или пользовательской среды. С этим показателем связана корректность и унифицированность межмодульных интерфейсов, которые определяются двумя видами связей: по управлению и по информации.
Требования к характеристикеспособность к взаимодействию могут быть достаточно полно формализованы как набор свойств и утверждены в процессе системного проектирования, с некоторыми уточнениями на последующих этапах. Их основой являются ссылки на нормативные документы на интерфейсы открытых систем или на выбранные для конкретного проекта стандарты де-факто. При выборе свойств программных компонентов, обеспечивающих способность к взаимодействию в конкретном проекте ПС, следует оценивать величину вычислительных ресурсов, необходимых для их реализации. При этом важно учитывать возможность повторного использования апробированных компонентов и переноса на различные платформы.
Унификация свойств интерфейсов на взаимодействие с внутренней, внешней средой и с пользователями должна отражаться в специальных разделах технологической документации и иметь возможность проверки заказчиком и/или экспертами по документам и текстам программ. Эта характеристика состоит в описании свойств и практически не влияет на качество функционирования текущей версии ПС. Степень унификации интерфейсов может измеряться их относительным числом или объемом текста (например, в процентах от объема программ), которые подвергаются изменениям при любых корректировках взаимодействия программ. Ряд общих понятий, методов и функций, которые могут рассматриваться как достаточно полная база и набор свойств компонентов, обеспечивающих высокую способность к взаимодействию, обобщены в концепции, методах и стандартах открытых систем.
Защищенность и безопасность функционированияодна из наиболее трудно формализуемых характеристик качества сложных ПС, которая занимает исключительное по важности положение среди всех конструктивных характеристик комплексов программ. Цели, назначение и функции защиты тесно связаны с особенностями функциональной пригодности каждого ПС. Разработка и формирование требований к свойствам защищенности должны осуществляться на основе потребностей эффективной реализации назначения и функций ПС при различных, реальных угрозах. В процессе системного анализа и проектирования должны быть выявлены потенциальные предумышленные и случайные угрозы функционированию ПС и установлен необходимый уровень защиты от них данного комплекса программ. В соответствие с этим уровнем заказчиком выбирается и устанавливается стандартизированная категория защищенности и безопасности ПС и необходимый набор методов, свойств и средств защиты с учетом ограниченных ресурсов на их реализацию. В результате сформированные требования должны обеспечивать равнопрочную защиту от реальных угроз и реализацию необходимых мер контроля и подтверждения целостности и характеристик качества функциональной пригодности комплекса программ в условиях проявления различных угроз безопасности функционирования ПС (см. п. 11.5).