- •Введение
- •Практическая работа №1. Тема: технология программирования. Основные понятия и подходы.
- •1.1. Назначение технологии программирования
- •1.2. История развития технологии программирования
- •1.2.1. Дореволюционный период
- •1.2.2. «Революция в программировании»
- •1.2.3. Послереволюционный период
- •1.3. Типы программных проектов
- •1.4. Составные части технологии программирования
- •1.5. Проект, продукт, процесс и персонал
- •Вопросы для рассмотрения.
- •Рекомендуемая литература по теме.
- •Практическая работа №2. Тема: приемы обеспечения технологичности программных продуктов.
- •2.1. Циклический характер разработки
- •2.2. Основные понятия технологии программирования
- •2.2.1. Процессы и модели
- •2.2.2. Фазы и витки
- •2.2.3. Вехи и артефакты
- •2.2.4. Заинтересованные лица и работники
- •2.3. Выявление и анализ требований
- •2.3.1. Требования к программному обеспечению
- •2.3.2. Схема разработки требований
- •2.3.3. Управление требованиями
- •2.4. Архитектурное и детальное проектирование
- •2.4.1. Архитектурное проектирование
- •2.4.2. Детальное проектирование
- •2.5. Реализация и кодирование
- •2.6. Тестирование и верификация
- •2.6.1. Процесс контроля качества
- •2.6.2. Методы «белого ящика» и «черного ящика»
- •2.6.3. Инспектирование и обзоры
- •2.6.4. Цели тестирования
- •2.6.5. Верификация, валидация и системное тестирование
- •2.7. Сопровождение и продолжающаяся разработка
- •Вопросы для рассмотрения.
- •Рекомендуемая литература по теме.
- •Практическая работа №3. Тема: определение требований к программному обеспечению и исходных данных для его проектирования. Модели процесса разработки.
- •3.1. Водопадные и конвейерные модели
- •3.2. Спиральные и инкрементные модели
- •3.4. Конструирование модели процесса
- •3.4.1. Выявление требований к процессу
- •3.4.2. Используемые фазы, вехи и артефакты
- •3.4.2.1. Фаза «Анализ»
- •3.4.2.2. Фаза «Проектирование»
- •3.4.2.3. Фаза «Реализация»
- •3.4.2.4. Фаза «Стабилизация»
- •3.4.2.5. Фаза «Внедрение»
- •3.4.3. Выбор архитектуры процесса.
- •3.4.3.1. Типы проектов
- •3.4.3.2. Модель процесса сверх легкого проекта
- •3.4.3.3. Модель процесса легкого проекта
- •3.4.3.4. Модель процесса тяжелого проекта
- •3.4.3.5. Модель процесса сверх тяжелого проекта
- •3.4.3.6. Занятость исполнителей
- •3.4.4. Порядок проведения типового проекта
- •3.4.4.1. Этап 1. Подготовка к проекту
- •3.4.4.2. Сбор и анализ предварительной информации
- •3.4.4.3. Формирование бригады проекта
- •3.4.4.4. Подготовка исходных документов
- •3.4.4.5. Этап 2. Работа над проектом
- •3.4.4.6. Процедура выполнения фазы проекта
- •3.4.4.7. Подготовка результирующих материалов вех
- •3.4.4.8. Этап 3. Завершение проекта
- •3.4.4.9. Архивирование результатов работы
- •3.4.4.10. Подведение итогов проекта
- •3.4.5. Документированные процедуры
- •3.4.5.3. Проверка качества материалов
- •3.4.6. Выводы
- •Вопросы для рассмотрения.
- •Рекомендуемая литература по теме
- •Практическая работа №4. Тема: анализ требований и определение спецификаций программного обеспечения при структурном подходе.
- •4.1. Спецификации программного обеспечения при структурном подходе
- •4.2. Определение понятий и видов требований
- •Виды требований
- •4.1.2. Анализ и сбор требований
- •4.1.3. Инженерия требований по
- •4.2. Трассирование требований
- •Вопросы для рассмотрения.
- •Рекомендуемая литература по теме
2.2.2. Фазы и витки
При описании процессов, связанных с разработкой программного обеспечения, основными структурными составляющими являются фазы и витки.
Фаза (phase) - часть процесса разработки. Обычно каждая фаза характеризуется вехой, достижение которой знаменует завершение фазы.
На фазу можно смотреть и как на состояние процесса, и как на действие (деятельность) в процессе. Рассмотрим, к примеру, фазу, которая обычно выделяется в процессе разработки: выявление и анализ требований. С одной стороны, это совокупность разнообразных действий: совещания с заказчиками, интервьюирование пользователей, анализ осуществимости и другие. С другой стороны, это состояние процесса, которое характеризуется тем, что требования еще не определены, и значит нецелесообразно или невозможно выполнять другие действия, например, архитектурное проектирование, кодирование, тестирование. «Требования определены» - это веха, достижение которой знаменует завершение фазы определения и анализа требований. Когда эта веха достигнута, процесс переходит в другую фазу, обычно в фазу архитектурного проектирования.
В разных источниках используются также термины стадия или этап. Мы предпочитаем термин «фаза» по следующей причине. Слова «стадия» и «этап» имеют оттенок линейной упорядоченности, подразумевается, что следующий этап меняет предыдущий, и они не совмещаются во времени. Иногда фазы действительно строго меняют друг друга, но чаще бывает так, что фазы частично перекрывают друг друга и выполняются параллельно - например, требования еще окончательно не утверждены и фаза извлечения требований еще не закончилась, но уже начаты работы по архитектурному проектированию. Наборы фаз, которые включают в модель процесса разработки, различны в разных технологиях программирования. Чаще всего встречаются следующие фазы.
Извлечение и анализ требований.
Архитектурное и детальное проектирование.
Реализация и кодирование.
Тестирование и верификация.
Сопровождение и продолжающаяся разработка.
Замечание. К сожалению, часто одна и та же фаза в разных моделях называется по-разному. Это связано с устойчивыми традициями и вряд ли может быть изменено. Следует иметь в виду это обстоятельство, и, встречая незнакомое название фазы, тщательно проверять, не является ли название просто новым именем для хорошо знакомой фазы.
В следующих разделах упомянутые фазы рассмотрены подробнее.
Поскольку процесс разработки программного обеспечения имеет циклический характер, многие фазы повторяются несколько раз. Необходимо как-то идентифицировать и различать разные вхождения одной фазы в жизненный цикл. С этой целью, используя метафору спирального развития процесса разработки, вводится термин виток (см. рис. 2).
Виток - последовательность неповторяющихся фаз в жизненном цикле программы.
10 .
Иногда программисты вместо аккуратного
термина «выпуск» используют слово
«релиз», полученное прямой транслитерацией
английского термина «release»,
который на самом деле в данном случае
как раз и означает «выпуск».
11 .
Например, термин «итерация» применяют
в одной из популярнейших моделей
процесса - Rational
Unified
Process
(RUP),
название которой обычно переводят как
Унифицированный процесс.