
- •Содержание
- •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.Указатель
Модель быстрой разработки приложения
Модель быстрой разработки приложений (Rapid Application Development – RAD) приведена на Рис. 8, где по трудоемкости и по времени разработки сравниваются два варианта жизненного цикла: обычный и для модели RAD, в которой существенную роль отведена пользовательскому сообществу.
Рис. 8. Модель быстрой разработки приложения
Как видим, в начале работы в этой модели значительно больше времени уделяется работе с пользователями и с заказчиком. Практически не тратится время на собственно разработку. Вместо разработки (кодирование и тестирование) поставлена фаза "построение системы", на которой, как правило, система собирается из уже готовых блоков COTS (Commercial Off The Shelf) с большой долей генерации рабочего кода из высокоуровневых описаний.
Таким образом, роль пользователей в модели RAP критична. Если в обычном ЖЦ большая часть работы – это программирование и тестирование, то в RAP благодаря кодогенерации и использованию COTS большая часть работы – планирование требований и разработка документации для пользователей, выполняемые при активном вовлечении будущих пользователей и заказчика.
Модель RAD нацелена на получение быстрого результата, хотя этот результат – работающее приложение – может оказаться громоздким как программный продукт, с завышенными требованиями по памяти и другим ресурсам. Зато приложение получается быстро и с учетом многих требований пользователей, которые сами принимают участие в их определении и оценивании.
V-образная модель
V-образная (V-shaped) модель (Рис. 9) так названа по форме латинской буквы V, поскольку расположение этапов ЖЦ напоминает эту букву. Сначала идет как бы «спуск», который начинается с разработки спецификаций и планирования проекта, после чего выполняется анализ требований и спецификаций, на котором предложенные требования анализируются и по-разному проверяются и изучаются. Если эти фазы пройдены успешно, то процесс переходит в фазу высокоуровневого проектирования системы на основе требований и спецификаций, которые к этому моменту уже проверены и утверждены, а затем на основе высокоуровневого проекта переходим к детальному или низкоуровневому проектированию, после чего к кодированию.
Рис. 9. V-образная модель
После фазы кодирования начинается «подъем». Фаза модульного тестирования проверяет корректность реализации закодированных модулей, их соответствие низкоуровневому проекту. Если здесь обнаруживаются ошибки в детальном проекте, то происходит возврат к фазе детального проектирования, где эти ошибки исправляются, после чего повторяется кодирование и модульное тестирование, пока все найденные отклонения от детального проекта или ошибки в нем не будут устранены. Таким образом, фазе модульного тестирования на «подъеме» соответствует фаза детального проектирования на «спуске».
Следующей фазой на «подъеме» является фаза сборки и интеграционного тестирования. Поскольку все модули, из которых собирается система, теперь уже оттестированы, то интеграционное тестирование на этой фазе проверяет корректность реализации интерфейсов между ними и соответствие сборки высокоуровневому проекту. Таким образом, парной фазой на «спуске» для сборки и тестирования является высокоуровневое проектирование. При обнаружении каких-либо несоответствий, процесс возвращается к фазе высокоуровневого проектирования, в высокоуровневый проект вносятся соответствующие исправления и процесс повторяется от этой фазы.
После успешного прохождения фазы сборки и тестирования «подъем» продолжается далее, на фазу системного тестирования. Поскольку до этого уже проверены функции модулей, их интерфейсы и соответствие реализации модулей и всей системы детальным и высокоуровневым проектам, то системное тестирование проверяет, насколько собранная система удовлетворяет исходным спецификациям. Параллельная для данной фазы деятельность на «спуске» – это анализ требований и спецификаций, как они были заданы заказчиком, а затем доработаны и согласованы с ним. Как и на предыдущих фазах «подъема», если обнаруживается расхождение со спецификациями, то определяются их причины и процесс возвращается на фазу анализа требований и спецификаций с внесением соответствующих изменений в спецификацию и повторением «спуска» и последующего «подъема».
Если, наконец, и фаза системного тестирования завершена успешно, то процесс переходит на заключительную фазу – запуск продукта в серийное производство и эксплуатацию данной системы, в результате чего с течением времени у заказчика могут возникнуть новые требования, подлежащие реализации в новом продукте или новой версии данного продукта. Тогда исходя из этих новых требований может быть начат новый программный проект.
Таким образом, V-образная модель подчеркивает важность тестирования продукта на соответствие документам, разработанным на всех предшествующих фазах, и является вариантом водопадной модели с усилением ее фазы верификации и валидации, но при этом напрямую не включает управление проектом и другие поддерживающие процессы.