1.1. ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ В настоящее время компьютеры находят все более широкое применение во всех сферах жизнедеятельности человека. От правильности их работы во многом зависят результаты труда и безопасность тысяч людей. В этой связи в последние годы во всем мире особое внимание уделяется стандартизации программных средств (ПС) и процессов их разработки, прогнозированию, оценке и управлению качеством программных средств на протяжении всего их жизненного цикла. На процессы разработки и оценки качества ПС оказывают влияние следующие обобщенные показатели ПС [4]: 1. область применения и назначение ПС; 2. тип решаемых функциональных задач; 3. объем и сложность ПС; 4. необходимый состав и требуемые значения характеристик качества ПС и величина допустимого ущерба из-за недостаточного их качества; 5. степень связи решаемых задач с реальным масштабом времени или допустимой длительностью ожидания результатов решения задачи; 6. прогнозируемые значения длительности эксплуатации и перспектива создания множества версий ПС; 7. предполагаемый тираж производства и применения ПС; 8. степень необходимой документированности ПС. Существует ряд национальных, государственных и международных стандартов, посвященных вопросам стандартизации, оценки качества и сертификации программных средств и систем качества предприятия. В данных стандартах используются следующие понятия и определения. Программы – это данные, предназначенные для управления конкретными компонентами системы обработки информации в целях реализации определенного алгоритма [8]. Программное средство – объект, состоящий из программ, процедур, правил и документов, относящихся к функционированию системы обработки информации . Программный продукт – это программное средство, предназначенное для поставки, передачи, продажи пользователю. Жизненный цикл (ЖЦ) программного средства или системы – это совокупность процессов, работ и задач, включающая в себя разработку, эксплуатацию и сопровождение ПС или системы, охватывающая жизнь ПС или системы от установления требований к ним до прекращения их использования. В соответствии с [21] под качеством любого изделия понимается совокупность свойств и характеристик изделия, относящихся к его способности удовлетворять установленные или предполагаемые потребности. С учетом данного определения в [8, 24] качество программного средства определяется как совокупность свойств программного средства, обуславливающая его пригодность удовлетворять заданные или подразумеваемые потребности в соответствии с его назначением. В литературе часто используется следующее определение качества ПС: качество программного продукта – это совокупность его свойств, обеспечивающая возможность достижения его целей без излишних затрат средств и труда со стороны пользователя; качество функционирования ПС –множество свойств, обусловливающих пригодность ПС обеспечивать надежное и своевременное представление требуемой информации потребителю для ее дальнейшего использования по назначению. Атрибут – измеримое физическое или абстрактное свойство ПС [18]. Атрибуты могут быть внутренними и внешними. В [8] атрибут рассматривается как свойство программного средства – отличительная особенность программного средства, которая может проявляться при его создании, испытании, анализе или изменении. Критерий оценки – это совокупность принятых в установленном порядке правил и условий, с помощью которых устанавливается приемлемость в целом качества программного средства [8]. Характеристика качества ПС – набор свойств программного средства, посредством которых описывается и оценивается его качество [8]. Подхарактеристика качества ПС – это характеристика качества программного средства, входящая в состав другой характеристики качества [8]. Метрика – определенные метод и шкала измерения подхарактеристики качества. Метрики качества ПС базируются на внутренних атрибутах ПС и внешнем поведении вычислительной системы (ВС), в состав которой входит ПС. Показатель качества ПС –характеристика качества программного средства, обладающая количественным значением [8]. Уровень пригодности ПС (уровень качества функционирования ПС) – это степень удовлетворения потребности, представленная посредством конкретного набора значений характеристик качества программного средства. Мера (measure) – это число или категория, присвоенная атрибуту объекта путем измерения. Измерение (measurement) – это использование метрики для присвоения атрибуту значения (числа или категории) из шкалы [18]. Каждый показатель качества может использоваться, если определена его метрика, способы измерения и сопоставления с требующимся значением. Шкала – набор значений с определенными свойствами [18]. При оценке качества используются следующие типы шкал [18]: 1) номинальная – соответствует набору категорий; 2) упорядоченная – соответствует упорядоченному набору делений шкалы; 3) интервальная – соответствует упорядоченной шкале с равноудаленными делениями; 4) относительная – соответствует упорядоченной шкале с равноудаленными делениями, оцененными в относительных единицах (относительно некоторой абсолютной величины). Метрики, использующие номинальную и упорядоченную шкалы, применяются для оценки качественных показателей, которые нельзя измерить количественно. Метрики, использующие интервальную и относительную шкалы, применяются для оценки количественных показателей. 1.2. ПРЕДСТАВЛЕНИЯ О КАЧЕСТВЕ ПРОГРАММНЫХ СРЕДСТВ В ТЕЧЕНИЕ ЖИЗНЕННОГО ЦИКЛА В течение жизненного цикла (ЖЦ) ПС его качество изменяется. Для различных стадий ЖЦ стандартами определены следующие представления о качестве ПС: 1. целевое качество (ЦК) – необходимое и достаточное качество, отражающее реальные потребности заказчика или пользователя; ЦК не может быть полностью определено в начале проектирования ПС, поскольку заказчик не всегда может его четко определить, однако разработчики должны стремиться к достижению ЦК; 2. требуемое качество продукта (ТКП) – значения характеристик, фактически установленные в спецификации требований к качеству; ТКП используется как цель для начального утверждения в спецификации; должны фиксироваться оптимальные и допустимые минимальные требования; 3. качество проекта (КП) – характеристики, представленные в основных компонентах проекта ПС (архитектуре, структуре программ, проектировании пользовательских интерфейсов); КП отражает концепцию и стратегию проекта; 4. оценочное (или прогнозируемое) качество продукта (ОКП) – оцененное или предсказанное качество для конечного ПС на каждой стадии ЖЦ; ОКП основано на качестве процессов и технологии его обеспечения; ОКП может оцениваться и предсказываться в процессе разработки для каждой характеристики качества, определенной в требованиях к ПС; 5. качество поставленного продукта (КПП) – набор характеристик качества поставленного заказчику и готового к применению ПП, прошедшего испытания в моделированной среде с имитированными или реальными данными; 6. качество в использовании (КВИ) – качество системы, содержащей ПП, с точки зрения пользователя; КВИ измеряется в терминах результата использования программ, а не внутренних свойств ПС. Качество ПС отражается тремя группами показателей, характеризующими: • внутреннее качество, проявляющееся в процессе разработки; • внешнее качество, заданное требованиями заказчика; • качество при использовании в процессе нормальной эксплуатации и результативность достижения потребностей пользователей с учетом затрат. Особым показателем качества ПС является стоимость (затраты на приобретение, создание, модификацию, эксплуатацию ПС). Данный показатель качества непосредственно влияет на все остальные показатели качества и определяет выбор пользователя в пользу покупки или разработки ПС. При этом потенциальный потребитель должен иметь механизм сравнения предлагаемых показателей качества и стоимости ПП для выбора поставщика или разработчика. 1.3. ФАКТОРЫ, ОПРЕДЕЛЯЮЩИЕ КАЧЕСТВО ПРОГРАММНЫХ СРЕДСТВ Очевидно, что на качество программных средств существенно влияют ошибки (fault), выражающиеся в дефектах, погрешностях или неумышленных искажениях объекта или процесса. Определение ошибки основано на предположении, что известно правильное эталонное состояние объекта, по отношению к которому определяется наличие ошибки. Для организации эффективной борьбы с ошибками необходимо исследование факторов, влияющих на качество ПС со стороны различных ошибок ПС. Такое исследование позволит целенаправленно разрабатывать комплексы методов и средств обеспечения качества сложных ПС различного назначения при реально достижимом снижении уровня ошибок проектирования и разработки. На рис.1 приведена схема угроз качеству ПС и методов их предотвращения [4]. Модель взаимодействия основных компонентов, приведенных на рис.1, является базой для дальнейшего анализа качества ПС. Полностью устранить перечисленные на рис.1 негативные воздействия на качество ПС невозможно. Поэтому необходимо разрабатывать методы и средства, уменьшающие их влияние на ПС. Очевидно, что степень влияния на качество ПС всех внутренних и некоторых внешних дестабилизирующих факторов определяется качеством технологий проектирования, разработки, сопровождения и документирования ПС.
Рис.1. Схема угроз качеству программных средств и методов их предотвращения При ограниченных ресурсах на разработку ПС для достижения заданных требований к качеству необходимо управление обеспечением качества в течение всего ЖЦ программ и данных. Попытки создания сложных ПС без использования эффективных технологий и средств автоматизации проектирования связаны с высоким риском провала проектов вследствие трудностей обеспечения необходимого качества функционирования и взаимодействия компонентов ПС. 1.4. МЕТОДЫ ОБЕСПЕЧЕНИЯ КАЧЕСТВА ПРОГРАММНЫХ СРЕДСТВ Современные технологии поддержки ЖЦ ПС в обязательном порядке включают методы и средства обеспечения качества ПС. По способам обеспечения заданного качества данные методы и средства можно подразделить на следующие группы: 1). методы и средства создания ПС высокого, гарантированного качества; 2). методы и средства предотвращения ошибок проектирования за счет систем обеспечения качества, эффективных технологий и средств автоматизации всего ЖЦ комплексов программ и баз данных; 3). методы и средства обнаружения и устранения различных ошибок проектирования, разработки и сопровождения ПС путем верификации и систематического автоматизированного тестирования на всех этапах жизненного цикла ПС; 4). методы и средства удостоверения достигнутых значений качества ПС в процессе их испытаний и сертификации перед передачей в эксплуатацию; 5). методы и средства оперативного выявления последствий ошибок программ и данных и автоматизированного восстановления качества и нормального функционирования ПС. Методы первой и второй групп базируются на применении современных CASE-технологий и систем автоматизированного проектирования. Их применение является одним из самых эффективных современных путей повышения качества ПС. CASE-средства поддерживают коллективную разработку сложных проектов, используются на этапе системного анализа, разработки технического задания и спецификаций, проектирования концептуальной и логической структур ПС и баз данных (БД), поддерживают автоматическую кодогенерацию и позволяют значительно снижать уровень системных, алгоритмических и программных ошибок при разработке ПО. Тестирование является основным методом измерения качества, определения корректности, реальной надежности и безопасности функционирования программ на всех этапах ЖЦ ПС. Однако процесс тестирования программ имеет свои особенности по сравнению с тестированием аппаратуры: 1). отсутствие эталонной программы, которой должны точно соответствовать все результаты тестирования; 2). принципиальная невозможность использования полных тестовых наборов для исчерпывающей проверки функционирования сложных ПС; 3). относительно невысокая степень формализации критериев качества результатов тестирования и достигаемых при этом корректности и надежности функционирования испытуемых ПС. Модели внешней среды и наборы тестов по сложности соизмеримы с тестируемыми объектами и не гарантированы от ошибок. В результате в программах и данных всегда остаются ошибки. Часть из них выявляется в процессе эксплуатации ПС в реальной среде. Целью сертификации ПС является удостоверение их качества, надежности и безопасности применения. Сертификация проводится специальными аттестованными проблемно-ориентированными испытательными лабораториями в наиболее жестких условиях тестирования с возможностью создания критических и стрессовых ситуаций в пределах, заданных эксплуатационной и нормативной документацией. При успешном завершении испытаний на ПС выдается документ – сертификат соответствия. Он официально подтверждает соответствие функций и характеристик ПС стандартам, эксплуатационным и нормативным документам, допустимость его применения в определенной области. 1.5. РЕСУРСЫ, ВЛИЯЮЩИЕ НА КАЧЕСТВО ПС На выбор методов разработки ПС влияют доступные ресурсы. Следовательно, они являются косвенными факторами, влияющими на качество ПС. Виды ресурсов, используемых в жизненном цикле ПС: 1). допустимые финансово-экономические затраты (с учетом затрат на разработку, закупку и эксплуатацию системы качества, закупку и эксплуатацию систем автоматизации проектирования ПС); 2). допустимая длительность разработки (ограничивает возможности тестирования); 3). кадры специалистов (оцениваются численностью, тематической и технологической квалификацией); 4). доступные разработчикам вычислительные ресурсы (аппаратурная оснащенность технологического процесса). 1.6. СИСТЕМНОЕ ПРОЕКТИРОВАНИЕ ПРОГРАММНЫХ СРЕДСТВ Системное проектирование является основой высокого качества жизненного цикла ПС. В середине 80-х годов произошел перелом в технологиях проектирования сложных ПС, трудоемкость разработки которых составляет десятки и сотни человеко-лет. Основная цель современных технологий создания ПС – повышение экономической эффективности всего ЖЦ ПС. Для этого используются наиболее эффективные методы проектирования и проводится комплексная автоматизация технологий обеспечения всего ЖЦ ПС. Понятие современной технологии включает совокупность методов и инструментальных средств автоматизации технологического процесса разработки и всего ЖЦ ПС. Технологический процесс регламентирует порядок организации и проведения работ неавтоматизированного и автоматизированного выполнения технологических операций, направленных на получение в имеющихся организационно-технических условиях готового программного средства с заданными функциями и качеством. Методологической основой любой технологии является типовой технологический процесс. Он отражается набором этапов, операций и используемых методических средств, обеспечивающих ведение разработки на всех стадиях от инициирования проекта и подготовки технического задания до завершения испытаний ПС. В современных технологиях объединены методы непосредственной разработки программ и данных с методами обеспечения качества и организации управления их созданием с учетом технологических и человеческих факторов. Индустриализация технологий создания ПС базируется на стандартизации работ процесса разработки программ, их структурного построения и интерфейсов с операционной и внешней средой. Для этого должны быть определены необходимые для достижения конечной цели состав и этапы работ, а также требуемые для их выполнения ресурсы. Требуемое качество ПС должно анализироваться и формулироваться в начале их жизненного цикла и обеспечить эффективность всех последующих процессов. Системное проектирование сложных программ охватывает период их ЖЦ, начиная от формулирования первичного замысла на создание или модернизацию ПС и до начала детального проектирования и разработки ПС. На рис.2 представлены основные компоненты системного проектирования [4]. Для системного анализа и проектирования требуются специалисты особенно высокой квалификации – системные аналитики, так как их возможные ошибки наиболее сильно отражаются на эффективности и качестве всего ЖЦ ПС. Поэтому в современных технологиях особое внимание уделяется анализу и развитию методов и средств автоматизации начальных этапов проектирования. Основная цель системного проектирования – обоснование необходимости, направлений и концепций создания или модернизации ПС или изменений его качества. В настоящее время на этапе системного проектирования широко используются CASE-средства (Computer Aided Software (System) Engineering). Современные CASE-средства обеспечивают широкие возможности выбора процессов моделирования предметной области, автоматизированного анализа системных требований и выработки первичных требований к проекту ПС. Для этого разработаны специальные методы и средства описания систем на различных уровнях детализации функций, качества и архитектуры ПС (диаграммы потоков данных, потоков управления, сущность-связь и др.).
Рис.2. Основные компоненты процесса разработки системного проекта программного средства (ПС)
CASE-средства позволяют также выполнять стратегическое планирование проекта ПС, обеспечивают наглядное представление каждого плана, оценку возможной трудоемкости и длительности разработки, необходимого числа специалистов и других ресурсов для их реализации. Проведенные оценки проекта позволяют осуществить предварительный выбор основных CASE-методов и инструментальных средств для проведения последующего рабочего проектирования и поддержки всего ЖЦ. Результатами системного проектирования является системный проект, техническое задание (ТЗ) и договор на продолжение проектирования или решение о его нецелесообразности и прекращении. 1.7. СТАТИСТИЧЕСКИЕ ХАРАКТЕРИСТИКИ ПРОЯВЛЕНИЯ ОШИБОК В ПРОГРАММАХ Особенность выявления ошибок в программах и данных ПС – отсутствие полностью определенного эталона. Поэтому при тестировании сначала обнаруживаются вторичные ошибки – результаты проявления некоторых исходных дефектов, называемых первичными ошибками [4]. Вторичные ошибки делятся на три категории: • сбои, не отражающиеся существенно на работоспособности ПС, и приносящие ущерб, которым можно пренебречь; • ординарные отказы, ущерб от которых находится в некоторых допустимых пределах, отражающиеся на показателях качества ПС; • катастрофические отказы, ущерб от которых влияет на безопасность применения ПС. В общем случае по типу первичных ошибок невозможно предсказать категорию вторичной ошибки. Поэтому невозможно ранжировать типы первичных ошибок по степени их влияния на качество ПС. Наиболее существенными факторами, влияющими на статистические характеристики первичных ошибок, являются: • методология, технология и уровень автоматизации обеспечения ЖЦ ПС и программирования его компонентов; • длительность с начала процесса тестирования и текущий этап разрабоки програм; • класс ПС, размер и типы тестируемых программных компонентов; • методы, виды, уровень автоматизации и аекватность тестирования; • виды и достоверность эталонов. Первичные ошибки, в порядке усложнения их обнаружения и увеличения ресурсов, необходимых для их устранения, разделяются на следующие виды: • технологические ошибки подготовки машинных носителей и документации, ввода программ в память компьютера и их вывода на отображающие средства; • программные ошибки, вследствие неправильной записи исходного текста программ на языке программирования и ошибок трансляции программ в объектный код; • алгоритмические ошибки, связанные с неполным формированием необходимых условий решения, некорректной постановкой и спецификацией задач; • системные ошибки, обусловленные отклонением функционирования ПС в реальной системе и характеристик внешних объектов от предполагавшихся при проектировании. В настоящее время существуют математические модели, описывающие основные закономерности изменения суммарного числа обнаруживаемых вторичных ошибок в программах. Модели имеют вероятностный характер и дают удовлетворительные результаты при высоких уровнях интенсивности проявления ошибок (т.е. при невысоком качестве ПС). Данные модели предназначены для приближенной оценки: • потенциально возможной надежности функционирования комплексов программ в процессе испытаний и эксплуатации; • числа случайных ошибок, оставшихся невыявленными в анализируемых программах; • времени тестирования, требующегося для обнаружения следующей ошибки в функционирующей программе; • времени, необходимого для выявления всех имеющихся ошибок в ПС с заданной вероятностью.
|