
- •Содержание
- •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.Указатель
Сравнительное ранжирование
Метод сравнительного ранжирования применительно к рискам называется CRR – Comparative Risk Ranking, он может применяться и во многих других ситуациях, когда необходимо принять решение на основании разноречивых мнений нескольких экспертов. Эффективность метода увеличивается при увеличении числа участников.
Рассмотрим этот метод на примере задачи ранжирования 5-ти рисков: A, B, C, D и E. Пусть в принятии решения участвуют 4 эксперта. Составляется треугольная матрица 4×4 (Рис. 56), размер которой определяется количеством сравниваемых пар объектов, т.е., число объектов без 1. В клетке с индексом [i,j] проставляются два значения: вверху – количество мнений, что объект j по рангу выше объекта i, а внизу – количество противоположных мнений, т.е., что, наоборот, объект i по рангу выше объекта j. Сумма числа мнений в каждой клетке постоянна и равна числу экспертов. Затем для каждого объекта суммируем число мнений, что он превосходит другой объект, по столбцу и строке матрицы, относящейся к этому объекту. В данном примере получаем, что: A=9, B=7, C=9, D=6 и E=10; т.е., на первом месте оказывается риск E.
9 |
Риск A |
Риск A |
|
|
Сумма по столбцу
Сумма по строке |
|
7 |
Риск B |
A2 B2 |
Риск B |
|
||
8 |
Риск C |
A2 C2 |
B3 C1 |
Риск C |
|
|
6 |
Риск D |
A3 D1 |
B1 D3 |
C3 D1 |
Риск D |
|
10 |
Риск E |
A2 E2 |
B1 E3 |
C2 E2 |
D1 E3 |
Риск E |
Рис. 56. Сравнительное ранжирование 5-ти рисков 4-мя экспертами
Методология подвижного программирования
В развитии технологии программирования постоянно появляются новые подходы, некоторые из которых даже претендуют на звание «смена парадигмы» (paradigm shift). Начиная с 1960-х годов можно отметить следующие заметные изменения:
программирование в кодах (machine code);
программирование на языке ассемблера (assembler);
программирование на языках высокого уровня (high-level languages);
структурное программирование (structured programming);
логическое программирование (logic programming);
объектно-ориентированное программирование (object-oriented – OO);
экстремальное программирование (extreme programming – XP);
аспектно-ориентированное программирование (aspect-oriented – AO);
подвижное программирование (agile programming).
Очевидно, этот список будет продолжен с течением времени. Подвижное программирование, появившееся в начале 2000-х годов, к настоящему времени имеет несколько разновидностей, которые по-разному трактуют отдельные процессы в создании ПО, из которых наибольшую известность получили экстремальное программирование и «бойцовское» программирование (scrum от scrimmage – схватка за мяч в регби), которое и будет рассмотрено в дальнейшем. Сторонники подвижного программирования указывает на существенный «сдвиг ценностей» (value shift) при этом подходе, общий всем его разновидностям. При обычном традиционном подходе на первом месте стоят процессы и инструменты разработки, подробная документация по разрабатываемому продукту, процессу разработки и вспомогательным рабочим продуктам, переговоры о подряде (контракте) на создание продукта и следование утвержденному плану разработки.
Признавая безусловную ценность и важность всех перечисленных аспектов разработки, подвижное программирование, тем не менее выше них ставит людей и их взаимодействие в процессе разработки, работающую программу, совместную работу (соработничество) с заказчиком и, что особенно важно, отзывчивость на изменения в исходных требованиях и среде разработки.