- •Содержание
- •1.13. Задания для самопроверки 59
- •1.17. Задания для самопроверки 88
- •1.19. Задания для самопроверки 108
- •1.23. Задания для самопроверки 116
- •1.27. Задания для самопроверки 125
- •1.37. Задания для самопроверки 144
- •1.48. Задания для самопроверки 159
- •Перечень рисунков
- •Перечень таблиц
- •Введение
- •Принятые сокращения
- •1.Жизненный цикл разработки по
- •Программные проект и его атрибуты
- •Ролевые модели в программном проекте
- •Размер и сложность программного проекта
- •Характеристики программного проекта
- •Качество программного продукта
- •Экран проекта и сводка о подходе
- •Критерий smart для формулирования целей
- •Критерии успешности программного проекта
- •Модели жизненного цикла
- •Водопадная модель
- •Модель быстрой разработки приложения
- •Пошаговая модель
- •Спиральная модель Боэма
- •Прототипная модель
- •Выбор модели жизненного цикла
- •Задания для самопроверки
- •2.Типовой каркас для разработки по
- •Программная разработка
- •Планирование проекта
- •Модель cocomo для оценки трудозатрат в проекте
- •Модель slim для оценки трудозатрат в проекте
- •Разработка спецификации требований
- •Отслеживание и контроль
- •Верификация и валидация
- •Обеспечение качества
- •Конфигурационное управление
- •Метрики
- •Повышение квалификации
- •Задания для самопроверки
- •3. Модели зрелости способностей cmm/cmmi
- •Ключевые области процесса в модели cmm
- •Характеристика уровней зрелости в модели cmm
- •Интегрированная модель зрелости способностей cmmi
- •История возникновения
- •Уровни зрелости и области процесса
- •Уровни способностей процесса в модели cmmi
- •Специальные и общие цели и практики процессных областей
- •Характеристики уровней зрелости в модели cmmi
- •Задания для самопроверки
- •4.Управление рисками в программном проекте
- •Модели esi и pmi управления рисками
- •Выявление рисков
- •Анализ рисков
- •Расстановка приоритетов для рисков
- •Планирование рисков
- •Исполнение ответных стратегий
- •Оценивание результатов исполнение ответных стратегий
- •Документирование действий по рискам
- •Заключительное оценивание рисков
- •Задания для самопроверки
- •5.Стандарты качества iso в применении к по
- •Структура и принципы семейства стандартов iso 9000
- •Модели iso 9000 на базе процессов
- •Самооценивание по ключевым элементам iso 9000
- •Задания для самопроверки
- •6.Формальные методы в разработке по
- •Инструменты формализации и верификации
- •Взаимодействие функциональностей
- •Интегрированная технология анализа и верификации
- •Задания для самопроверки
- •7.Некоторые общие технологические приемы
- •Инспекции по Фейгану
- •Диаграммы Исикавы («рыбий скелет»)
- •Инструменты
- •Swot-анализ
- •Сбалансированный экран результативности
- •Технологическая дорожная карта
- •Метод Дельфи
- •Деревья решений
- •Сравнительное ранжирование
- •Методология подвижного программирования
- •Принципы подвижного программирования
- •Рабочий цикл и роли участников
- •Рабочие документы и обстановка
- •Задания для самопроверки
- •8.Сертификация программного обеспечения в авиации
- •История создания серии документов do-178 и ed-12
- •Уровни программного обеспечения
- •Процессы жизненного цикла по авиационных систем
- •Цели процессных деятельностей
- •Рабочие документы и категории их контроля
- •Процесс планирования по
- •Процессы разработки по
- •Определение требований
- •Проектирование
- •Кодирование
- •Верификация
- •Конфигурационное управление
- •Обеспечение качества
- •Контакт с органом сертификации
- •Выводы и рекомендации
- •Задания для самопроверки
- •9.Задания для самостоятельной работы
- •Темы, связанные с единым каркасом для разработки по
- •Перечень тем
- •Краткое описание каждой темы
- •Тема 2. Программная архитектура базового инструмента для распределенного управления программными проектами
- •Тема 3. Профили типовых рабочих компонентов для разработки приложений
- •Тема 1. Прототип метрической базы данных для управления разработкой приложений
- •Тема 5. Репозиторий повторно используемых компонентов
- •Тема 6. Сквозной пример для единого каркаса разработки приложений
- •Темы, связанные применением формальных методов перечень тем
- •Тема 1. Сравнительный анализ систем верификации
- •Тема 2. Формализация протоколов связи краткое описание каждой темы
- •Тема 1. Сравнительный анализ систем верификации
- •Тема 2. Формализация протоколов связи
- •10.Литература
- •11.Приложения
- •Шаблон для одностраничного экрана проекта
- •Примерная структура положения о работе и тз
- •Примерная форма еженедельного отчета
- •Примерная форма презентации на ежемесячном операционном обзоре
- •12.Указатель
Метрики
Все вышеперечисленные деятельности в своем исполнении опираются на те или иные метрики, которые регулярно собираются и анализируются для определения текущего состояния проекта и его соответствия утвержденному плану разработки. Эти метрики хранятся в БД проекта и накапливаются в организации-разработчике для сравнительного анализа и планирования. Всего известно свыше 500 различных метрик, которые могут собираться в программном проекте; из них в каждом конкретном проекте используется только небольшая часть, выбор которой определяется исполнителем и заказчиком, исходя из целей и задач проекта.
Все эти метрики, как правило, должны обладать следующими свойствами:
простота для понимания и точная определенность – для упрощения их вычисления и анализа;
дешевизна – для минимизации связанных с ними расходов на их сбор, анализ и дальнейшее применение;
устойчивость – чтобы изменения в их значениях в ходе проекта имели осмысленную интерпретацию;
согласованность между собой и с длительной историей использования – чтобы максимизировать свою ценность для исполнителей и заказчика;
ненавязчивость – чтобы обеспечивать наибольшие возможности для их собирания, желательно с минимальным участием исполнителей.
В программном проекте различают три типа метрик:
метрики самого процесса разработки (Process Metrics) – для улучшения разработки и сопровождения, такие как:
эффективность сдерживания дефектов (Defect Containment Effectiveness) в процентах числа дефектов, выявленных до сдачи продукта, от общего числа дефектов (выявленных до сдачи плюс выявленных уже после сдачи);
себестоимость программной разработки (Cost of Software Development) в суммарных затратах на одного участника разработки в денежном выражении в месяц, включая оборудование и накладные расходы;
производительность труда (Productivity) в KAELOC на 1 человеко-месяц;
метрики разрабатываемого продукта (Product Metrics) – для улучшения его качества, такие как:
размер исходного кода (Source Code Size) в KLOC или KAELOC;
сложность программного кода (Code Complexity) в единицах, определяемых выбранной моделью оценки сложности;
объем разработанной документации (Documentation Size) в числе страниц или строк текста;
стоимость разработки (Development Cost) в денежном выражении на KLOC или KAELOC продукта;
пост-релизные дефекты (Post-Release Defects) в количестве дефектов, выявленных уже после сдачи продукта, как на стороне заказчика, так и исполнителя в течение определенного срока (обычно 1 год или 6 месяцев), на 1 KLOC или KAELOC;
метрики данного проекта (Project Metrics) – для его улучшения, такие как:
количество разработчиков и тестировщиков (Staffing) в количестве ставок и фактическом количестве людей при использовании неполных ставок;
количество различных методов и инструментов, используемых в разработке (Methods and Tools), включая лицензии на ПО;
уже понесенные трудозатраты (Effort) в человеко-днях или человеко-месяцах;
суммарная текущая стоимость проекта (Project Cost) в денежном выражении;
достигнутый процент прохождения тестов из запланированного тестового набора (Tests Passed);
достигнутый процент покрытия тестами (Test Coverage) требований из спецификации и(или) кода по различным критериям покрытия;
обнаруженная плотность ошибок/дефектов (Defect Density) в количестве обнаруженных дефектов (ошибок) на 1 KLOC или 1 KAELOC продукта;
достигнутое качество кода (Product Quality) в оценке количества еще не выявленных дефектов плюс число уже известных, но еще не устраненных дефектов, на 1 KLOC или 1 KAELOC продукта;
достигнутая степень завершенности проекта (Project Completion) в процентах по объему готового кода или по количеству готовых модулей;
точность следования графику (Schedule Accuracy) в процентах отклонений фактических дат запланированных событий проекта от плановых дат;
точность поставок (On Time Delivery) в проценте поставок, сделанных точно в срок, от всех совершенный поставок в данном проекте;
затраты на обеспечение качества (Cost of Quality) в процентах от всех трудозатрат в данном проекте;
затраты на переделки (Cost of Poor Quality) в процентах от всех трудозатрат в данном проекте; включают в себя затраты на поиск найденных ошибок, их исправление и повторение разработки до верификации сделанных исправлений включительно; входят как часть в затраты на обеспечение качества;
текущая удовлетворенность заказчика ходом проекта (Customer Satisfaction) в баллах (обычно от 1 – самая низкая до 10 – самая высокая).
Для сравнения вот значения некоторых метрик, взятые из [8]:
Табл. 13. Эталонные данные по промышленности США
Метрика |
Среднее |
Лучшее в классе |
Производительность (число KAELOC на 1 человеко-месяц) |
3,23 |
7,14 |
Стоимость (стоимость разработки 1 KAELOC) |
$4 334 |
$1 962 |
Плотность дефектов (число дефектов на 1 KAELOC) |
15,6 |
8,1 |
Эффективность устранения дефектов (% от общего числа) |
95% |
99,50% |
Пост-релизные дефекты (число дефектов на 1 KAELOC) |
0,78 |
0,041 |
Источник: Capers Jones (2000) Software Assessments, Benchmarks, and Best Practice |
Для организации-разработчика программного обеспечения, как и для любого отдельно взятого профессионального разработчика, очень полезно знать свои значения этих и других процессных метрик с тем, чтобы видеть направления своего дальнейшего развития как профессионала в области разработки программных продуктов.