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

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

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

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

 

11 

тирующие жизненный цикл ПС, системы обеспечения качества, понимать необходимость и проводить верификацию, тестирование и 
сертификацию сложного программного продукта. Отсутствие этого 
производственного сотрудничества предопределяет низкую системотехническую квалификацию многих отечественных фирм, берущихся 
за создание крупных информационных систем. В результате многие 
проекты сложных программных средств оказываются недостаточного 
качества и требуют длительной доработки для устранения множества 
системных и технических дефектов и ошибок. 
Дисциплина «Стандартизация, сертификация и управление качеством программного обеспечения» имеет своей целью дать систематизированное представление о методах организации контроля качества программных продуктов в промышленном производстве, о современных государственных и международных стандартах качества 
программного обеспечения, об организации сертификации. Курс 
ориентирован на ведение проектирования, разработки, сопровождения и документирования программных продуктов с использованием 
регламентированных процессов в соответствии с формальными требованиями, определенными заказчиком. Специфика данного курса 
заключается в том, что учебный материал будет рассматриваться на 
основе стандартов, используемых в рамках индустриальной разработки программных систем. 
Основные понятия и характеристики программного обеспечения 
рассмотрены в главе 1. Дана характеристика понятию качества программного обеспечения, рассмотрены основные дестабилизирующие 
факторы, оказывающие влияние на качество программных средств. 
Рассмотрены понятия метрик качества программного обеспечения. 
Приведены особенности измерения и оценивания характеристик качества программных средств. 
Глава 2 посвящена изложению основ метрической теории программ. В ней приводятся характеристики основных метрик и моделей 
оценки качества программного обеспечения, применяемые в настоящее время. Рассматриваются классическая теория Холстеда, методы 
оценки структурной сложности программ, процедурно- и объектноориентированные метрики, модели надежности. 
В главе 3 обсуждаются особенности процесса стандартизации. Рассмотрены виды стандартов обеспечения качества, основные принципы 
стандартизации. Дана характеристика стандартам разработки информационных систем и создания программного обеспечения. 

4 . . 
5 . , , -. 

Учебник предназначен, в первую очередь, для студентов группы 
специальностей «Информатика и вычислительная техника», а также 
для разработчиков программного обеспечения, которые хотели бы 
более подробно изучить методы, применяемые при оценке качества 
программных средств. В то же время и сложившиеся специалисты, 
развивающие навыки или применяющие свои знания для разработки 
и внедрения программного обеспечения, также найдут полезные сведения как в практическом, так и методологическом плане.

Глава 1  

ОСНОВНЫЕ ПОНЯТИЯ  
И ХАРАКТЕРИСТИКИ КАЧЕСТВА 
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 

1.1. Понятие качества программного 
обеспечения 

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

К покупке доступен более свежий выпуск Перейти