Управление качеством программного обеспечения
Покупка
Основная коллекция
Тематика:
Управление качеством. Квалиметрия
Издательство:
Издательский Дом ФОРУМ
Автор:
Черников Борис Васильевич
Год издания: 2019
Кол-во страниц: 240
Дополнительно
Вид издания:
Учебник
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-8199-0499-2
ISBN-онлайн: 978-5-16-102705-9
Артикул: 173600.06.01
Рассмотрены вопросы управления качеством, оценки характеристик и измерения метрик программного обеспечения по наиболее известным методикам. Изложены основные положения метрической теории программ, основные особенности процессов стандартизации и сертификации программных средств. Дана характеристика концепции и моделям управления качеством программного обеспечения.
Соответствует требованиям федеральных государственных образовательных стандартов высшего образования последнего поколения.
Для студентов, преподавателей, разработчиков программного обеспечения, а также специалистов и менеджеров широкого профиля.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.04: Программная инженерия
- 38.03.05: Бизнес-информатика
- ВО - Магистратура
- 38.04.05: Бизнес-информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
УПРАВЛЕНИЕ КАЧЕСТВОМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Б.В. Черников Рекомендовано УМО в области экономики и менеджмента в качестве учебника для студентов высших учебных заведений, обучающихся по направлению «Бизнес-информатика» УЧЕБНИК Москва ИД «ФОРУМ» — ИНФРА-М 2019
УДК 004.05(075.8) ББК 32.973я73 Ч49 Черников Б.В. Ч49 Управление качеством программного обеспечения : учебник / Б.В. Черников. — М. : ИД «ФОРУМ» : ИНФРА-М, 2019. — 240 с. — (Высшее образование: Бакалавриат). ISBN 978-5-8199-0499-2 (ИД «ФОРУМ») ISBN 978-5-16-010688-5 (ИНФРА-М, print) ISBN 978-5-16-102705-9 (ИНФРА-М, online) Рассмотрены вопросы управления качеством, оценки характеристик и измерения метрик программного обеспечения по наиболее известным методикам. Изложены основные положения метрической теории программ, основные особенности процессов стандартизации и сертификации программных средств. Дана характеристика концепции и моделям управления качеством программного обеспечения. Соответствует требованиям федеральных государственных образовательных стандартов высшего образования последнего поколения. Для студентов, преподавателей, разработчиков программного обеспечения, а также специалистов и менеджеров широкого профиля. УДК 004.05(075.8) ББК 32.973я73 Р е ц е н з е н т ы: кафедра «Архитектура программных систем» Научно-исследовательского университета «Высшая школа экономики»; кафедра «Информатика и программное обеспечение» Московского государственного института электронной техники (технического университета); Карминский A.M., доктор технических наук, доктор экономических наук, профессор, профессор Научно-учебного комплекса «Инженерный бизнес и менеджмент» Московского государственного технического университета имени Н.Э. Баумана (технического университета) ISBN 978-5-8199-0499-2 (ИД «ФОРУМ») ISBN 978-5-16-010688-5 (ИНФРА-М, print) ISBN 978-5-16-102705-9 (ИНФРА-М, online) © Черников Б.В., 2012 © ИД «ФОРУМ», 2012
Оглавление Список сокращений …………………………………………………... 6 Предисловие …………………………………………………………… 9 Глава 1 ОСНОВНЫЕ ПОНЯТИЯ И ХАРАКТЕРИСТИКИ КАЧЕСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ …………………….……….. 13 1.1. Понятие качества программного обеспечения ……….……… 13 1.2. Дестабилизирующие факторы программного обеспечения … 19 1.3. Метрики качества программных средств ……………………. 25 1.3.1. Факторы, влияющие на качество программных средств ……. 26 1.3.2. Внутреннее и внешнее качество ………………………………. 29 1.3.3. Качество в использовании ……………………………………… 34 1.4. Особенности измерения и оценивания характеристик качества ………………………………………………………… 35 1.4.1. Характеристика процесса измерений ………………………… 35 1.4.2. Измерительные шкалы ………………………………………… 38 1.4.3. Категории показателей ………………………………………… 41 Вопросы для самоконтроля ………………………………………... 44 Глава 2 ОСНОВЫ МЕТРИЧЕСКОЙ ТЕОРИИ ПРОГРАММ …………..... 45 2.1. Общие сведения о программометрике ……………………….. 45 2.2. Характеристика алгоритмической сложности ….….………… 50 2.2.1. Понятие алгоритмической сложности ………………………… 50 2.2.2. Свойства алгоритмической сложности ……………………….. 52 2.3. Метрики, основанные на лексическом анализе программ …. 56 2.3.1. Метрики Холстеда ……………………........................................ 56 Вероятностная модель текста программы ……………………. 56 Измеряемые свойства программ ………………………………. 59 Математическое ожидание длины текста программы ………. 61 Метрические характеристики программ ……………………... 65 Оптимизация количества и длины модулей в программе …… 69 Количественная оценка работы программирования ………… 72 Оценка уровня языков программирования …………………… 75 Метрика числа ошибок в программе …………………………. 80 Порядок расчета метрических характеристик программных средств …………………………………………………………... 84
Оглавление 4 2.3.2. Метрики Джилба ……………………………………………….. 87 2.3.3. Метрики Чепина ……………….……………………………….. 89 2.4. Метрики структурной сложности программ ………………… 91 2.4.1. Понятие структурной сложности программ ………………….. 91 2.4.2. Критерии выделения маршрутов ………………….................... 94 Критерий 1………………………………………………………. 94 Критерий 2 ……………………………………………………… 96 Критерий 3………………………………………………………. 101 2.4.3. Метрика Маккейба ……………………………………… 103 2.5. Процедурно-ориентированные метрики …………………….. 106 2.5.1. Метрики на основе функциональных указателей ……………. 106 2.5.2. Метрики связности модулей …………………........................... 111 2.5.3. Метрики сцепления модулей ………………………………….. 116 2.6. Объектно-ориентированные метрики ………………………… 121 2.6.1. Общие характеристики объектно-ориентированных компонентов …………………………………………………….. 123 2.6.2. Набор метрик Мартина ……………………………………….... 125 2.6.3. Набор метрик Чидамбера и Кемерера ………………………… 127 2.6.4. Комплексный набор метрик Лоренца и Кидда ………………. 133 2.6.5. Набор метрик Абреу …………………………………………… 138 2.7. Модели надежности программных средств …………………. 144 2.7.1. Прогнозные модели …………………………………………….. 146 2.7.2. Оценочные модели ……………………………………………… 146 Модель надежности Джелински-Моранды …………………... 147 Статистическая модель Миллса ………………………………. 149 Эвристическая модель …………………………………………. 152 2.7.3. Измерительные модели ………………………………………… 153 Модель Нельсона ………………………………………………. 153 Модель Мусы …………………………………………………... 155 Вопросы для самоконтроля ………………………………………... 157 Глава 3 СТАНДАРТИЗАЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ….. 159 3.1. Роль стандартизации в управлении качеством ……………… 160 3.2. Виды стандартов обеспечения качества ……………………… 165 3.2.1. Основополагающий стандарт …………………………………. 168 3.2.2. Стандарт на продукцию ………………………………………... 169 3.2.3. Стандарт на процесс ……………………………………………. 170 3.2.4. Стандарт на методы контроля …………………………………. 171 3.2.5. Стандарт на услугу, терминологический стандарт ………….. 172 3.3. Принципы стандартизации …………….……………………… 173 3.4. Стандарты разработки информационных систем …………… 178
Оглавление 5 3.4.1. ГОСТ серии 24 …………………………………………………. 179 3.4.2. ГОСТ серии 34 …………………………………………………. 181 3.5. Стандарты разработки программного обеспечения ………… 182 3.6. Проблемы стандартизации в современных условиях ………. 186 Вопросы для самоконтроля ………………………………………... 188 Глава 4 СЕРТИФИКАЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ……... 189 4.1. Назначение и цели сертификации ……………………………. 189 4.2. Правовое обеспечение сертификации ………………………... 191 4.3. Содержание процедуры сертификации ………….…………… 193 Вопросы для самоконтроля ………………………………………... 199 Глава 5 КОНЦЕПЦИЯ И МОДЕЛИ УПРАВЛЕНИЯ КАЧЕСТВОМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ……………………..………. 200 5.1. Концепция управления качеством …………………………… 200 5.1.1. Предшественники современной концепции …………………. 200 5.1.2. Современная модель управления качеством ………………… 203 5.1.3. Стандарт управления качеством ……………………………… 205 5.2. Модели управления качеством ………………………………. 210 5.2.1. Японские модели управления качеством ….…………………. 210 5.2.2. Европейский подход к управлению качеством ………………. 212 5.2.3. Российский опыт управления качеством ……………………… 214 5.3. Организационно-технологические аспекты управления качеством ………….…………………………………………… 214 5.3.1. Нравственно надежный персонал …………………………….. 214 5.3.2. Управление качеством на этапах разработки ………………… 217 5.3.3. Организация труда ……………………………………………… 222 5.4. Модель совершенствования потенциальных возможностей .. 223 5.4.1. Capability Maturity Model ………………………………………. 224 5.4.2. SPICE ……………………………………………………………. 229 Вопросы для самоконтроля ………………………………………... 234 Глоссарий ………………..……………………………………………... 235 Рекомендуемая литература ………………..……………….………... 238
Список сокращений АС – автоматизированная система БД – база данных ЕСПД – Единая система программной документации ЖЦ – жизненный цикл ИСО – Международная организация по стандартизации МГС – Межгосударственный совет по стандартизации, метрологии и сертификации ПО – программное обеспечение ПС – программное средство ТТ – технические требования ТУ – технические условия AHF – Attribute Hiding Factor (фактор закрытости свойства) AIF – Attribute Inheritance Factor (фактор наследования свойства) ANP – Average Number of Parameters per operation (среднее количество параметров на операцию) AOS – Average Operation Size (средний размер операции) CBO – Coupling Between Object classes (cвязанность между классами объектов) CEN – The European Committee for Standardization (Европейский комитет стандартизации широкого спектра товаров) CENELEC – The European Committee for Electrotechnical Standardization (Европейский комитет стандартизации решений в электротехнике) CL – Capability Levels (абсолютная сложность программы) CMM – Capability Maturity Model (модель зрелости процесса разработки программного обеспечения) COF – Coupling Factor (фактор сцепления) CS – Class Size (размер класса) DIT – Depth of Inheritance Tree (глубина дерева наследования) EFQM – European Foundation for Quality Management (Европейский фонд управления качеством) ETSI – European Telecommunications Standards Institute (Европейский институт стандартизаций в области коммуникаций)
Список сокращений 7 FP – Function Points (функциональные указатели) IEEE – Institute of Electrical and Electronics Engineers (Институт инженеров по электротехнике и электронике) ISO – International Organization for Standardization (Международная организация по стандартизации) LCOM – Lack Cohesion Of Methods (отсутствие сцепления в методах) LOC – Lines Of Code (количество строк программы) MHF – Method Hiding Factor (фактор закрытости метода) MIF – Method Inheritance Factor (фактор наследования метода) MOOD – Metrics for Object Oriented Design (метрики для объектно-ориентированной разработки) MSF – Microsoft Solutions Framework (решения Microsoft по организации разработки программного обеспечения) NKC – Number of Key Classes (количество ключевых классов) NM – Number of Methods (количество методов) NOA – Number of Operations Added by a Subclass (количество операций, добавленных подклассом) NOC – Number Of Child (количество потомков) NOO – Number of Operations Overridden by a Subclass (количество операций, переопределяемых подклассом) NSS – Number of Scenario Scripts (количество описаний сценариев) NSUB – Number of subsystem (количество подсистем) OC – Operation Complexity (сложность операции) OLE – Object Linking and Embedding (связывание и встраивание объектов) OOD – Object Oriented Design (объектно-ориентированная разработка) POF – Polymorphism Factor (фактор полиморфизма) RFC – Response For Class (количество откликов на класс) SADT – Structured Analysis and Design Technique (методология структурного анализа и разработки) SI – Specialization Index (индекс специализации) SOLID – Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion (аббревиатура от сочетания наименований принципов дизайна классов – единственной обязанности, открытости и закрытости, подстановки Лисков, изоляции интерфейсов, инверсии зависимостей)
Список сокращений 8 SPICE – Software Process Improvement and Capability dEtermination (определение возможностей и улучшение процесса создания программного обеспечения) TQC – Total Quality Control (Всеобщий контроль качества) ТQМ – Total Quality Management (Всеобщее управление качеством) UML – Unified Modeling Language (унифицированный язык моделирования) WMC – Weighted Methods Per Class (взвешенные методы на класс)
Предисловие Промышленная разработка программного обеспечения как часть промышленной разработки сложных систем – высокотехнологичный процесс, в который вовлечено множество различающихся по численности, сфере деятельности и квалификации коллективов разработчиков. Одной из основных задач при совместной работе большого количества разработчиков или их коллективов является обеспечение единой схемы работы, позволяющей планировать выполнение работ, обеспечивать целостность и непротиворечивость различных узлов системы, а также давать гарантии соответствия системы ожиданиям заказчика. Выполнение этой задачи облегчается при подчинении процесса разработки технологическим требованиям, регламентирующим различные аспекты разработки: жизненный цикл проекта и разрабатываемой системы, требования к процессам разработки, внедрения и сопровождения системы. Непрерывное повышение сложности функций, реализуемых программами в информационных системах, непосредственно приводит к увеличению их объема и трудоемкости создания. Соответственно сложности программ еще быстрее возрастает количество выявляемых и остающихся в них дефектов и ошибок, что отражается на их качестве. Достаточно часто разрабатываются комплексы программ объемом в миллионы строк текста, которые принципиально не могут быть безошибочными. Поэтому проблема обнаружения и устранения ошибок обостряется по мере увеличения сложности задач, решаемых программами, и грозит катастрофами в информационных системах (ИС), выполняющих критические функции управления крупными, дорогими и особенно важными объектами или процессами. Во многих случаях современные контракты и предварительные планы на создание сложных программных средств (ПС) и баз данных (БД) для ИС подготавливаются и оцениваются в ряде случаев небрежно, на основе неформализованных представлений заказчиков и разработчиков о требуемых функциях и характеристиках систем. Значительные ошибки в определении требуемых показателей качества, в оценке трудоемкости, стоимости и длительности создания программных средств являются достаточно массовыми и типичными. В результате многие системы не соответствуют исходному, деклариро
Предисловие 10 ванному назначению и первоначальным спецификациям требований, часто не укладываются в согласованные графики и бюджет разработки. Проекты оказываются неудачными или даже терпят полный провал из-за недостаточной компетентности привлекаемых разработчиков, их неадекватного оптимизма, а также вследствие отсутствия у них современной технологии и стандартов, обеспечивающих требуемое высокое качество проектов программных средств. Разработчики и поставщики часто обещают заказчикам быструю реализацию проектов при относительно небольших затратах, но не могут обеспечить комплексное проектирование и необходимое качество систем. В результате созданные информационные системы не способны выполнять полностью требуемые функциональные задачи с гарантированным качеством, и их приходится долго и иногда безуспешно дорабатывать для достижения необходимого качества и надежности функционирования, затрачивая дополнительно большие средства и время. Вследствие этого для многих проектов информационных систем характерны следующие недостатки: • не полностью реализуются цели и требования заказчика к функциям и качеству комплексов программ; • низка достоверность первичных оценок необходимых бюджета, сроков и ресурсов для разработки программных средств и баз данных при заключении контрактов, вследствие чего не выполняются требования заказчика; • плохо ведется контроль за ходом проекта, из-за чего велик риск отсутствия у конечного продукта заданного качества, нарушения начальных планов, невыполнения функциональных и экономических разделов контрактов на разработку программных средств. Многие ошибки, обусловленные неопределенностью или некорректностью технических заданий и спецификаций требований, могут и должны быть выявлены на ранних стадиях проектирования, что способствует его ускорению и повышению качества. Стратегической задачей в жизненном цикле современных информационных систем стало обеспечение качества программных средств и баз данных. Для решения таких задач необходимо сотрудничество системных аналитиков, архитекторов и менеджеров, специалистов по комплексированию и обеспечению качества крупных проектов разработки программных средств. Они должны знать современные методы, технологии и международные стандарты, поддерживающие и регламен