Содержание к диссертации
Введение
1. Обзор основных методов, технологий и стандартов, определяющих качество ПО 11
1.1 Введение в определение уровня программных продуктов стандарты и программные продукты case-технологии Capability maturity model (СММ) 15
Iso/1ec 15504 (spice) 18
Iso 9126:1991 (гост p исо / мэк 9126-93) 24
Показатели качества ПО 26
1.2 Обзор методов анализа программного обеспечения 37
Методологии стандарта iso 14598 41
Методология и инструментарий ibm rational 42
Выводы 44
2. Методы принятия решения о качестве ПС 46
Введении 46
2.1. Автоматизированная система градации стандартов 50
Анализ синтаксиса 53
Анализ семантики 59
2.2. Структурировании функции качества 72
Идеология метода сфк 73
Ключевые элементы и инструменты сфк: 76
Дом качества (дк) 77
2.3. Методы верификации пп 93
2.4. Методы принятия решения 107
Выводы 119
3. Реализация методов проедложенных моделей 129
Введение 129
3.1. Автоматизированная система градации стандартов 132
3.2. Программный продукт hqeasy 134
3.3. Методика оптимальных статистических решений 143
3.4. Методика тест-циклов 145
Выводы 158
4. Оценка эффективности и корректности практических исследований 159
Введение 159
4.1. Описание проірамміюго комплекса 160
4.2. Экспериментальное приме! Іеіше системы 163
Выводы 171
Заключение 172
Список использованной литературы 173
Приложение ; 181
- Введение в определение уровня программных продуктов стандарты и программные продукты case-технологии Capability maturity model (СММ)
- Показатели качества ПО
- Анализ синтаксиса
- Автоматизированная система градации стандартов
Введение к работе
Обязательным условием разработки любого программного продукта (ПП) является наличие заказчика (потребителя), а цель разработки -формируют его требования. Потребителей условно можно разделить на конкретного заказчика, который знает какой должен быть «релиз» ПП и массового потребителя, неопределенного в своих требованиях, а соответственно и в качестве желаемого продукта. Следствие такого разделения приводит к делению понятия качества ПП на «качество разработчика ПП» и «качество пользователя ПП». Качество разработчика ПП
При ориентации разработчика на конкретного заказчика, качество ПП регулируется степенью формализации требований, количеством ошибок в коде программы, временем выполнения заказа. Количество ошибок в коде программы и время выполнения заказа зависит от освоенных разработчиком технологий программирования, стандартов, методов тестирования, т.е. качество разработчика ПП определяется качеством нормативной документации и методами контроля её исполнения. Качество разработчика ПП понятие далеко не новое, количество предлагаемых стандартов, технологий разработки программного обеспечения, методов его тестирования очень большое, как показывает практика, многие производители, утверждая свою позицию, приводят статистику ошибок на количество строк в программном коде. Обширный анализ данной области можно найти в трудах профессора Липаева В.В. [36-42], стандартах ИСО и др. источниках, тем не менее, диаграмма доходов российского рынка от средств автоматизированного тестирования программного обеспечения (рис. 1)[3] показывает преобладание зарубежных компаний в силу перечисленных ниже сложностей. Проблемы качества разработчика ПП
• Несовершенство методов формализации требований заказчика при подготовке технического задания на создание программных комплексов и информационных проектов
• Избыточность номенклатуры документов предлагающей стандартизированные и нормативные подходы для реализации различных информационно-технических решений и концепций
• Многообразие узко направленных методов тестирования ПП, приводящих к увеличению времени ввода в эксплуатацию Решение обозначенных проблем повысит рыночную долю российского производителя ПП.
Хорошо известная фраза разработчиков ПП «потребитель сам не знает, что хочет», раскрывает массового потребителя как непараметрический объект, динамически изменяющий свои свойства во времени, делая неполноценным понятие качество ПП, показывая слабую изученность данной области. Причинами такого явления могут быть: большой масштаб области; субъективность мнений, порождающая сложные высоко коррелированные связи; плохо адаптированные для информационных технологий закономерности изменения функции качества и в следствие плохая предсказуемость. Однако, являясь прибыльной и важной с позиции государства, заинтересованного в повышении качества информатизации страны, затрагивающая практически все отрасли область, требует более детального изучения. Наиболее близкими к качеству ПП с позиции потребителя, автору видятся методы определения качества японских ученых [14, 19, 32].
Массовый потребитель не обращается к разработчику, а ждет его предложений, которые могут его удовлетворить. Сложно определить границы требуемого качества, складывается ощущение независимости от потребителя, но проблемы определенные ниже, с которыми сталкиваются и разработчик, и массовый пользователь, отрицательно сказываются на качестве ПП. Проблемы достижения качества пользователя ПП
• Сильная коррелированность метрик характеризующих программный продукт, факторов и закономерностей, определяющих качество программного обеспечения
• Несовершенство методов формализации требований заказчика при подготовке технического задания на создание программных комплексов и информационных проектов
• Почти полное отсутствие автоматизированных методов определения метрик характеризующих качество ПП, их взаимосвязанности, важности (избыточности) для пользователя
• Отсутствие комплексной методологии оценки качества ПП, при огромном количестве ПП направленных на выполнение одинаковых функций
• Неопределенность понятий «качественный ПП», «качественный процесс разработки ПП», «качественная ИС», в силу абстракции стандартов, регламентирующих понятие «качество», прозрачной для особенностей ПП
Отмеченные недостатки качества разработчика ПП и качества пользователя ПП определяют нишу диссертационного исследования. Актуальность, которой подчеркивают действия российских и зарубежных фирм по созданию дорогостоющих отделов, решающих эти вопросы.
На практике исследование проводится с сервисными ПП -отвечающими за автоматизацию обслуживания ЭВМ, в частности файловыми менеджерами.
Введение в определение уровня программных продуктов стандарты и программные продукты case-технологии Capability maturity model (СММ)
Официальная история CMM (Capability Maturity Model, что обычно переводят как "модель зрелости процесса разработки ПО", хотя более верным по смыслу был бы перевод "модель совершенствования возможностей") начинается в 1991 году, когда американский институт SEI (Software Engineering Institute - Институт системного программирования при университете Карнеги-Меллон) опубликовал первую версию этого стандарта. Можно сказать, что стандарт в целом состоит из критериев оценки зрелости организации и рецептов улучшения существующих процессов.
В модели СММ определено пять уровней зрелости организаций. В результате аттестации компании присваивается определенный уровень, который в дальнейшем может повышаться или (теоретически) понижаться [5]. На рис. 3 показаны некоторые технологии, внедрение которых необходимо для достижения различных уровней зрелости организации. Отметим, что каждый следующий уровень включает в себя вес ключевые характеристики предыдущих.
Начальный уровень (initial level) описан в стандарте в качестве основы для сравнения со следующими уровнями. На предприятии начального уровня организации не существует стабильных условий для созданий качественного программного обеспечения. Результат любого проекта целиком и полностью зависит от личных качеств менеджера и опыта программистов, причем успех в одном проекте может быть повторен только в случае назначения тех же менеджеров и программистов на следующий проект. Более того, если такие менеджеры или программисты уходят с предприятия, то с их уходом резко падает качество производимых программных продуктов. В стрессовых ситуациях процесс разработки сводится к написанию кода и его минимальному тестированию.
Для достижения повторяемого уровня (repeatable level) на предприятии должны быть внедрены технологии управления проектами. При этом планирование и управление проектами основывается на накопленном опыте, существуют стандарты на разрабатываемое программное обеспечение (причем обеспечивается следование этим стандартам) и существует специальная группа обеспечения качества. В случае необходимости организация может взаимодействовать с субподрядчиками. В критических условиях процесс имеет тенденцию скатываться на начальный уровень.
Далее следует определенный уровень (defined level), который характеризуется тем, что стандартный процесс создания и сопровождения программного обеспечения задокументирован (включая и разработку ПО, и управление проектами). Подразумевается, что в процессе стандартизации происходит переход на наиболее эффективные практики и технологии. Для создания и поддержания подобного стандарта в организации должна быть создана специальная группа. Наконец, обязательным условием для достижения данного уровня является наличие на предприятии программы постоянного повышения квалификации и обучения сотрудников. Начиная с этого уровня, организация перестает зависеть от качеств конкретных разработчиков, и не имеет тенденции скатываться на уровень ниже в стрессовых ситуациях.
На управляемом уровне (managed level) в организации устанавливаются количественные показатели качества - как на программные продукты, так и на процесс в целом. Таким образом, более совершенное управление проектами достигается за счет уменьшения отклонений различных показателей проекта. При этом осмысленные вариации в производительности процесса можно отличить от случайных вариаций (шума), особенно в хорошо освоенных областях.
Наконец, оптимизирующий уровень (optimizing level) характеризуется тем, что мероприятия по улучшению применяются не только к существующим процессам, но и для оценки эффективности ввода новых технологий. Основной задачей всей организации на этом уровне является постоянное улучшение существующих процессов. При этом улучшение процессов в идеале должно помогать предупреждать возможные ошибки или дефекты. Кроме того, должны вестись работы по уменьшению стоимости разработки программного обеспечения, например, с помощью создания и повторного использования компонент.
При сертификации проводится оценка соответствия всех ключевых областей по 10-балльной шкале. Для успешной квалификации данной ключевой области необходимо набрать не менее б баллов. Оценка ключевой области производится по следующим показателям [7]: Заинтересованность руководства в данной области (планируется ли практическое внедрение данной ключевой области, существует ли понимание у руководства необходимости данной области и т.д.). Насколько широко данная область применяется в организации (например, оценке в 4 балла соответствует фрагментарное применение). Успешность использования данной области на практике (например, оценке в 0 баллов соответствует полное отсутствие какого-либо эффекта, а оценка в 8 баллов выставляется при наличии систематического и измеримого положительного результата практически во всей организации).
Показатели качества ПО
В части стандарта ISO 9126-1 даются определения с уточнениями из остальных его частей для каждой характеристики программного средства, а также для субхарактеристик качества.
Вторая и третья части стандарта - ISO 9126-2 и ISO 9126-3 - посвящены формализации соответственно внешних и внутренних метрик характеристик качества сложных программных средств. Все таблицы содержат унифицированную рубрикацию, где отражены имя и назначение метрики; метод ее применения; способ измерения, тип шкалы метрики; тип измеряемой величины; исходные данные для измерения и сравнения; а также этапы жизненного цикла программного средства (по ISO 12207), к которым применима метрика.
Четвертая часть стандарта - ISO 9126-4 - предназначена для покупателей, поставщиков, разработчиков, сопровождающих, пользователей и менеджеров качества программных средств. В ней обосновываются и комментируются выделенные показатели сферы (контекста) использования программных средств и группы выбранных метрик для пользователей.
Стандарт описывает метрики качества ПС на основе их внутренних атрибутов и внешнего поведения вычислительной системы. Эти типы метрик применимы при определении требований к качеству и целей проекта ПС, включая промежуточные продукты.
Стандартом рекомендуется отражать тремя взаимодействующими и взаимосвязанными группами показателей, характеризующими: внутреннее качество, проявляющееся в процессе разработки; внешнее качество, заданное требованиями заказчика; качество при использовании в процессе нормальной эксплуатации и результативностью достижения потребностей пользователей с учётом затрат.
Каждый критерий может использоваться, если определена его метрика и может быть указан способ её измерения и сопоставления с требующимся значением. Для конкретных ПС доминирующие критерии качества назначаются при проектировании требований технического задания. Программы для ЭВМ как объекты проектирования, разработки, испытаний и оценки качества характеризуется следующими обобщёнными показателями [13]: проблемно-ориентированной областью применения, техническим и социальным назначением программного комплекса; конкретным типом решаемых функциональных задач с достаточно определенной областью применения соответствующими пользователями; объёмом и сложностью совокупности программ и базы данных, решающей единую целевую задачу данного типа; необходимыми составом и требуемыми значениями характеристиками качества функционирования программ и величиной допустимого ущерба из-за недостаточного их качества; степенью связи решаемых задач с реальным масштабом времени или допустимой длительностью ожидания результатов решения задачи; прогнозируемыми значениями длительности эксплуатации и перспективой создания, множества версий комплекса программ; предполагаемым тиражом производства и применения комплекса программ; степенью необходимой документированности программ.
Показатели качества ПО
Корректная работа компьютеров часто является определяющей для качественного управления объектами, успеха предприятий и безопасности человека. Специфицирование и оценивание показателей качества программного продукта - ключевой фактор обеспечения их адекватного применения. Это может быть достигнуто на основе выделения и определения подходящих характеристик качества с учетом целей использования и функциональных задач программных средств (ПС). Важно, чтобы ПС оценивалось по каждой характеристике качества с использованием стандартизированных или широко применяемых метрик.
Исходными данными и высшим приоритетом при выборе показателей качества в большинстве случаев являются назначение, функции и функциональная пригодность соответствующего программного средства. Достаточно полное и корректное описание этих свойств должно служить базой для определения значений большинства остальных характеристик и атрибутов качества. Принципиальные и технические возможности и точность измерения значений атрибутов характеристик качества всегда ограничены в соответствии с их содержанием. Это определяет рациональные диапазоны значений каждого атрибута, которые могут быть выбраны на основе здравого смысла, а также путем анализа прецедентов в спецификациях требований реальных проектов [14].
Процессы выбора и установления метрик и шкал для описания характеристик качества программных средств можно разделить на два этапа:
выбор и обоснование набора исходных данных, отражающих общие особенности и этапы жизненного цикла проекта программного средства и его потребителей, каждый из которых влияет на определенные характеристики качества комплекса программ;
выбор, установление и утверждение конкретных метрик и шкал измерения характеристик и атрибутов качества проекта для их последующей оценки и сопоставления с требованиями спецификаций в процессе квалификационных испытаний или сертификации на определенных этапах жизненного цикла программного средства.
На первом этапе за основу следует брать всю базовую номенклатуру характеристик, субхарактеристик и атрибутов, стандартизированных в ISO 9126. Их описания желательно предварительно упорядочить по приоритетам с учетом назначения и сферы применения конкретного проекта программного средства. Далее необходимо выделить и ранжировать по приоритетам потребителей, которым необходимы определенные показатели качества проекта программного средства с учетом их специализации и профессиональных интересов. Подготовка исходных данных завершается выделением номенклатуры базовых, приоритетных показателей качества, определяющих функциональную пригодность программного средства для определенных потребителей.
На втором этапе, после фиксирования исходных данных, которое должен выполнить потребитель оценок качества, процессы выбора номенклатуры и метрик начинаются с ранжирования характеристик и субхарактеристик для конкретного проекта и их потребителя. Далее этими специалистами для каждого из отобранных показателей должна быть установлена и согласована метрика и шкала оценок субхарактеристик и их атрибутов для проекта и потребителя результатов анализа. Для показателей, представляемых качественными признаками, желательно определить и зафиксировать в спецификациях описания условий, при которых следует считать, что данная характеристика реализуется в программном средстве. Выбранные значения характеристик качества и их атрибутов должны быть предварительно проверены разработчиками на их реализуемость с учетом доступных ресурсов конкретного проекта и при необходимости откорректированы.
Анализ синтаксиса
На основании содержательной части стандарта, делается попытка оценить его полноту применительно к использованию в данном классе задач. Иными словами предлагается автоматизировать анализ текста стандартов на предмет выявления его качественных и количественных параметров. Данная задача относится к классу распознавания образов, в рамках нашего исследования. Результатом работы системы станет значение полноты метрик определяющих стандарты.
Стандарты регламентируют процессы и продукты жизненного цикла программных средств и баз данных. Основными показателями качества стандартов являются: количество знаний (методов) предоставляемых стандартом в проблемной области достоверность применения этих знаний
Под знаниями, которые предоставляет стандарт, будем понимать методы и способы решения задач в области назначения стандарта. В нашем случае проблемная область - это область разработки программного обеспечения. Специфика данной области заключается в создании автоматизированного интеллектуального продукта. Этот показатель подробнее рассмотрен в следующем разделе.
Можно также отмстить, что большинству стандартов в области разработки программного обеспечения предшествовали технологии, полученные опытным путем. Поэтому, достоверность применения знаний предоставляемых стандартом по большей части зависит от оценки опыта применения стандарта и точности формализации. Данный показатель можно оценить вероятностно, основываясь на статистические результаты применения стандартов различными предприятиями и оценки экспертов.
Общая модель выбора нормативных документов представлена на рис. 13 , и система градации стандартов на рис. 14.
Определение количества знаний предоставляемых стандартом в проблемной области (Показатель 1) в автоматизированном режиме происходит с помощью анализа текстов стандарта. Анализ текста можно поделить на синтаксический анализ, семантический и анализ знаний внешнего мира (расширенная интерпретация знаний). Синтаксический анализ позволяет формировать структуру текста и представляет собой сочетание методов структурного представления текста и ATN-анализа (метод расширенных сетей переходов). Стандарт Определение количества информации Анализ синтаксиса Анализ семантики Объединение знаний с учетом внешних данных Определение достоверности информации Экспертные методы Статистические методы Ряд признаков Признак Признак Признак Признак Выборка номенклатуры Рис. 13. Общая схема выбора стандартов
Выходные данные используются в семантическом анализе, который определяет назначение слов, фраз и предложений. Здесь применяются стохастические методы (в частности алгоритм ID3), алгоритм поиска оптимальных параметров выделения тематики и метод частотно-контекстной классификации тематики текста. Расширенная интерпретация знаний последний блок в определении первого показателя. На этой стадии структуры из базы знаний добавляются к внутренему представлению предложения для формирования расширенного представления значения предложения.
Определение достоверности применения знаний предоставляемых стандартом (Показатель 2) происходит с использованием экспертных и статистических методов. Учитывается мнение экспертов для определения результата опыта применения методов регламентируемых стандартом. Статистически определяется надежность стандарта, используя двоичную систему оценок (надежный/ненадежный).
Выходные данные, полученные при определении первого показателя и второго показателя, используются при определении соответствия разработанным автором, признакам оптимальности стандартов. Каждый признак оценивается на интервальной шкале, имеющей границы от 1 доЮ балов. Так же для большей адекватности соответствия предлагается использовать метод экспертных оценок. Далее происходит ранжирование стандартов с учетом итоговых оценок.
Анализ синтаксиса
Модель структурного представления текста
Предлагается использовать модель структурного представления текстовой информации [54]. Основными достоинствами такого подхода является использование графовой модели структурного представления текста произвольного содержания, что после применения ATN-анализа [47] может дать адекватное отражение текста в системе.
Введем некоторые понятия присущие данному подходу:
Текст - это последовательность предложений, слов, построенная согласно правилам данного языка, данной знаковой системы и образующая сообщение [25].
Тема текста - некоторое субъективное представление человека о рассматриваемой в тексте предметной области, о его основном содержании. Тема текста представляет собой основу текста, его приближенное представление, которое человек формирует для себя после чтения текста.
Понятно, что реальная система, задачей которой является выявление тематики, не может оперировать "некоторыми субъективными представлениями человека". Необходимо машинное представление темы текста, коррелирующее с субъективными представлениями пользователя. Такое машинное представление будем называть тематикой текста.
Под информационной структурой текста будем понимать мультиграф, смоделированный информационным потоком, вершинами которого являются слова, а ребрами - связи между словами в тексте.
Информационный поток - это детерминированный поток событий (слов), принадлежащих некоторому конечному множеству (множество всех слов). Информационный поток эквивалентен временному ряду номинальных (категориальных) величин.
Информационная структура - совокупность всех событий и связей между ними. Для информационной структуры текста связи между событиями — это словосочетания.
Автоматизированная система градации стандартов
На основании содержательной части стандарта, делается попытка оценить его полноту применительно к использованию в данном классе задач. Иными словами предлагается автоматизировать анализ текста стандартов на предмет выявления его качественных и количественных параметров. Данная задача относится к классу распознавания образов, в рамках нашего исследования. Результатом работы системы станет значение полноты метрик определяющих стандарты.
Функциональный алгоритм системы представлен на рис. 14. Здесь определение количества знаний предоставляемых стандартом в проблемной і области (Показатель 1) в автоматизированном режиме происходит с помощью анализа текстов стандарта. Анализ текста можно поделить на синтаксический анализ, семантический и анализ знаний внешнего мира (расширенная интерпретация знаний). Синтаксический анализ позволяет формировать структуру текста и представляет собой сочетание методов структурного представления текста и ATN-анализа (метод расширенных сетей переходов). Выходные данные используются в семантическом анализе, І который определяет назначение слов, фраз и предложений. Здесь применяются стохастические методы (в частности алгоритм ID3), алгоритм поиска оптимальных параметров выделения тематики и метод частотно-контекстной классификации тематики текста. Расширенная интерпретация знаний последний блок в определении первого показателя. На этой стадии структуры из базы знаний добавляются к внутреннему представлению предложения для формирования расширенного представления значения
предложения.
Определение достоверности применения знаний предоставляемых стандартом (Показатель 2) происходит с использованием экспертных и статистических методов. Учитывается мнение экспертов для определения результата опыта применения методов регламентируемых стандартом. Статистически определяется надежность стандарта, используя двоичную систему оценок (надежный/ненадежный).
Выходные данные, полученные при нахождении первого показателя и второго, используются при определении соответствия разработанным автором, признакам оптимальности стандартов. Каждый признак оценивается на интервальной шкале, имеющей границы от 1 до 10 балов. Так же для большей адекватности соответствия предлагается использовать метод экспертных оценок. Далее происходит ранжирование стандартов с учетом итоговых оценок.
Практическое использование методики показало, уменьшение объемов информационной модели на 25%, а при использовании расширенного банка , данных (от 10 000 документов) до 40% процентов. Более подробные результаты и фрагменты программных листингов можно найти в приложении и в IV главе.
Разработан программный продукт, позволяющий автоматизировать процедуры структурирования функции качества в интерактивном режиме. Применение программы рассмотрено на конкретном примере, программа написана на языке C++ и может работать на ЭВМ не ниже Intel Pentium 100MHz.
QHEasy — это программный продукт, позволяющий выполнять процесс проектирования и построения Дома Качества. Программа позволяет вводить запросы потребителя и характеристики качества с различными свойствами. В качестве свойств можно применять формулы, в том числе для вычисления влияния характеристик качества на запросы потребителя, на основе матрицы зависимости. Построение корреляционной матрицы позволяет точнее выбирать цели характеристик качества.
QHEasy включает в себя все нужное для проектирования и построения ДК. Программный продукт представляет собой: Инструментальное средство с интуитивно понятным интерфейсом, с которым может работать даже человек, имеющий ограниченную практику работы с компьютером. Дом Качества постоянно отображается и все работа происходит непосредственно с ним, что облегчает пользователю понимание процесса построения ДК. Средство, выполняющее рутинные задачи, такие как черчение ДК, подсчет арифметических и статистических вычислений. Средства сохранения созданного ДК. Ниже приводится описание работы с программой HQEasy: Начало работы После запуска QHEasy автоматически создается новый документ, содержащий Дом Качества: