Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Управление качеством программного обеспечения

Покупка
Основная коллекция
Артикул: 720383.01.01
К покупке доступен более свежий выпуск Перейти
Рассмотрены вопросы управления качеством, оценки характеристик и измерения метрик программного обеспечения по наиболее известным методикам. Изложены основные положения метрической теории программ, основные особенности процессов стандартизации и сертификации программных средств. Дана характеристика концепции и моделям управления качеством программного обеспечения. Для студентов, преподавателей, разработчиков программного обеспечения, а также специалистов и менеджеров широкого профиля.
45
Черников, Б. В. Управление качеством программного обеспечения : учебник / Б.В. Черников. — Москва : ИД «ФОРУМ» : ИНФРА-М, 2020. — 240 с. — (Среднее профессиональное образование). - ISBN 978-5-8199-0902-7. - Текст : электронный. - URL: https://znanium.ru/catalog/product/1046280 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
УПРАВЛЕНИЕ КАЧЕСТВОМ 
ПРОГРАММНОГО 
ОБЕСПЕЧЕНИЯ

Б.В. Черников

Рекомендовано 
Межрегиональным учебно-методическим советом 
профессионального образования в качестве учебника 
для учебных заведений, реализующих программу 
среднего профессионального образования 
по укрупненной группе специальностей 
09.02.00 «Информатика и вычислительная техника» 
(протокол № 12 от 24.06.2019)

УЧЕБНИК

Москва 
ИД «ФОРУМ» — ИНФРА-М
2020


УДК 004.05(075.32)
ББК 32.973я723
 
Ч49

Черников Б.В.
Ч49 
 
Управление качеством программного обеспечения : учебник / 
Б.В. Черников. — Москва : ИД «ФОРУМ» : ИНФРА-М, 2020. — 
240 с. — (Среднее профессиональное образование).

ISBN 978-5-8199-0902-7 (ИД «ФОРУМ»)
ISBN 978-5-16-015695-8 (ИНФРА-М)

Рассмотрены вопросы управления качеством, оценки характеристик 
и измерения метрик программного обеспечения по наиболее известным 
методикам. Изложены основные положения метрической теории программ, основные особенности процессов стандартизации и сертификации 
программных средств. Дана характеристика концепции и моделям управления качеством программного обеспечения.
Для студентов, преподавателей, разработчиков программного обеспечения, а также специалистов и менеджеров широкого профиля.

УДК 004.05(075.32)
ББК 32.973я723

Р е ц е н з е н т ы:
кафедра «Архитектура программных систем» Научно-исследовательского университета «Высшая школа экономики»;
кафедра «Информатика и программное обеспечение» Московского 
государственного института электронной техники (технического университета);
Карминский A.M., доктор технических наук, доктор экономических 
наук, профессор, профессор Научно-учебного комплекса «Инженерный бизнес и менеджмент» Московского государственного технического университета имени Н.Э. Баумана (технического университета)

ISBN 978-5-8199-0902-7 (ИД «ФОРУМ»)
ISBN 978-5-16-015695-8 (ИНФРА-М)
© Черников Б.В., 2020
© ИД «ФОРУМ», 2020

Оглавление 

Список сокращений …………………………………………………... 
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 

ванному назначению и первоначальным спецификациям требований, 
часто не укладываются в согласованные графики и бюджет разработки. Проекты оказываются неудачными или даже терпят полный 
провал из-за недостаточной компетентности привлекаемых разработчиков, их неадекватного оптимизма, а также вследствие отсутствия у 
них современной технологии и стандартов, обеспечивающих требуемое высокое качество проектов программных средств. 
Разработчики и поставщики часто обещают заказчикам быструю 
реализацию проектов при относительно небольших затратах, но не 
могут обеспечить комплексное проектирование и необходимое качество систем. В результате созданные информационные системы не 
способны выполнять полностью требуемые функциональные задачи 
с гарантированным качеством, и их приходится долго и иногда безуспешно дорабатывать для достижения необходимого качества и надежности функционирования, затрачивая дополнительно большие 
средства и время. 
Вследствие этого для многих проектов информационных систем 
характерны следующие недостатки: 
• не полностью реализуются цели и требования заказчика к 
функциям и качеству комплексов программ; 
• низка достоверность первичных оценок необходимых бюджета, 
сроков и ресурсов для разработки программных средств и баз данных 
при заключении контрактов, вследствие чего не выполняются требования заказчика; 
• плохо ведется контроль за ходом проекта, из-за чего велик риск 
отсутствия у конечного продукта заданного качества, нарушения начальных планов, невыполнения функциональных и экономических 
разделов контрактов на разработку программных средств. 
Многие ошибки, обусловленные неопределенностью или некорректностью технических заданий и спецификаций требований, могут 
и должны быть выявлены на ранних стадиях проектирования, что 
способствует его ускорению и повышению качества. Стратегической 
задачей в жизненном цикле современных информационных систем 
стало обеспечение качества программных средств и баз данных. 
Для решения таких задач необходимо сотрудничество системных 
аналитиков, архитекторов и менеджеров, специалистов по комплексированию и обеспечению качества крупных проектов разработки 
программных средств. Они должны знать современные методы, технологии и международные стандарты, поддерживающие и регламен
К покупке доступен более свежий выпуск Перейти