
- •Раздел 1. Основы разработки по 4
- •Раздел1. Основы разработки по
- •1.1. Основные понятия и определения
- •1.2. Понятие «программирование»
- •Программирование как дисциплина
- •Программирование как деятельность
- •1.3. Области разработки по
- •Контрольные вопросы
- •Раздел2. Методология разработки по
- •2.1. Основные понятия и определения
- •2.2. Классификация методологий
- •2.3. Происхождение методологий
- •Практическое происхождение
- •Алгоритмическое происхождение
- •Структурно-языковое происхождение
- •2.4. Методологии программирования
- •Методология императивного программирования
- •Методология объектно-ориентированного программирования
- •Методология функционального программирования
- •Методология логического программирования
- •Методология сентенциального программирования
- •Методология ограничительного программирования
- •Методология структурного императивного программирования
- •Методология императивного параллельного программирования
- •Методология логического параллельного программирования
- •Контрольные вопросы
- •Раздел3. Технология разработки по
- •3.1. Основные понятия и определения
- •3.2. Основные классификации
- •3.3. Модели жизненного цикла по
- •Непланируемая модель
- •Каскадная модель
- •Прототипируемая модель
- •Итеративная инкрементная модель
- •Эволюционная модель
- •Спиральная модель
- •Модифицированная спиральная модель
- •3.4. Классические технологические процессы Процесс 1. Исследование идеи
- •Процесс 2. Управление
- •Процесс 3. Анализ
- •Процесс 4. Проектирование
- •Процесс 5. Кодирование
- •Процесс 6. Тестирование
- •Процесс 7. Ввод в действие
- •Процесс 8. Сопровождение
- •Процесс 9. Снятие с эксплуатации
- •3.5. Методики анализа и проектирования
- •3.6. Стандартные технологические процессы
- •Стандарт iso/iec 12207
- •Основные процессы
- •Вспомогательные процессы
- •Организационные процессы
- •Адаптация стандарта
- •Стандарт iso/iec15288
- •Контрольные вопросы
- •Раздел4. Подходы разработки по
- •4.1. Каскадные технологические подходы
- •4.2. Каркасные технологические подходы
- •Унифицированный процесс (up)
- •Рациональный унифицированный процесс (rup)
- •Основы подхода
- •Жизненный цикл проекта
- •Каркас решений Microsoft(msf)
- •Основы подхода
- •Жизненный цикл проекта
- •Процесс iconix(iconix Process)
- •Основы подхода
- •Жизненный цикл проекта
- •4.3. Эволюционные технологические подходы
- •Подходы прототипирования
- •Итеративная инкрементная разработка (iid)
- •Быстрая разработка приложений (rad)
- •Основы подхода
- •Жизненный цикл проекта
- •4.4. Адаптивные технологические подходы
- •Особенности живых подходов
- •Адаптивная разработка по (asd)
- •Основы подхода
- •Жизненный цикл проекта
- •Экстремальное программирование (xp)
- •Основы подхода
- •Жизненный цикл проекта
- •4.5. Генетические технологические подходы
- •Синтезирующее программирование
- •Конкретизирующее программирование
- •Сборочное программирование
- •4.6. Формальные технологические подходы
- •Формальные генетические подходы
- •Подходы формальной разработки
- •Жизненный цикл проекта
- •Обзор используемых подходов
- •Инженерия стерильного цеха (CrSe)
- •Основы подхода
- •Жизненный цикл проекта
- •Методика подхода
- •Контрольные вопросы
- •Раздел5. Инженерия и инструментарий по
- •5.1. Инженерия по
- •5.2. Инструментарий по
- •Контрольные вопросы
- •Раздел6. Методические указания
- •6.1. Лабораторные работы
- •1. Введение вRational Rose
- •1.1. Цель работы
- •1.2. Общие сведения
- •1.3. Порядок выполнения
- •1.4. Содержание отчёта
- •1.5. Варианты заданий
- •1.6. Контрольные вопросы
- •2. Диаграмма прецедентов
- •2.1. Цель работы
- •2.2. Общие сведения
- •2.3. Порядок выполнения
- •2.4. Содержание отчёта
- •2.5. Варианты заданий
- •2.6. Контрольные вопросы
- •3. Диаграмма классов. Пакеты
- •3.1. Цель работы
- •3.2. Общие сведения
- •3.3. Порядок выполнения
- •3.4. Содержание отчёта
- •3.5. Варианты заданий
- •3.6. Контрольные вопросы
- •4. Диаграммы взаимодействия
- •4.1. Цель работы
- •4.2. Общие сведения
- •4.3. Порядок выполнения
- •4.4. Содержание отчёта
- •4.5. Варианты заданий
- •4.6. Контрольные вопросы
- •5. Диаграммы переходов состояний
- •5.1. Цель работы
- •5.2. Общие сведения
- •5.3. Порядок выполнения
- •5.4. Содержание отчёта
- •5.5. Варианты заданий
- •5.6. Контрольные вопросы
- •6. Диаграмма компонентов
- •6.1. Цель работы
- •6.2. Общие сведения
- •6.3. Порядок выполнения
- •6.4. Содержание отчёта
- •6.5. Варианты заданий
- •6.6. Контрольные вопросы
- •7. Диаграмма развёртывания
- •7.1. Цель работы
- •7.2. Общие сведения
- •7.3. Порядок выполнения
- •7.4. Содержание отчёта
- •7.5. Варианты заданий
- •7.6. Контрольные вопросы
- •8. Дальнейшая работа с моделью
- •8.1. Цель работы
- •8.2. Общие сведения
- •8.3. Порядок выполнения
- •8.4. Содержание отчёта
- •8.5. Варианты заданий
- •8.6. Контрольные вопросы
- •6.2. Курсовая работа
- •7. Общие сведения
- •Обзор языка uml
- •Принципы моделирования
- •Формальное описание
- •Представления модели
- •Диаграмма робастности
- •Процесс iconix
- •Обзор подхода
- •Особенности подхода
- •Ключевые принципы
- •Жизненный цикл проекта
- •8. Порядок выполнения
- •Определение задания
- •Этапы выполнения
- •Содержание отчёта
- •9. Типовые задания
- •Предметные области
- •Примеры автоматизации
- •Варианты заданий
- •6.3. Самостоятельная работа студентов
- •Тема 1. Основы разработки по Содержание темы
- •Самостоятельная работа
- •Контрольные вопросы
- •Тема 2. Методология разработки по Содержание темы
- •Самостоятельная работа
- •Контрольные вопросы
- •Тема 3. Технология разработки по Содержание темы
- •Самостоятельная работа
- •Контрольные вопросы
- •Тема 4. Подходы разработки по Содержание темы
- •Самостоятельная работа
- •Контрольные вопросы
- •Тема 5. Инженерия и инструментарий по Содержание темы
- •Самостоятельная работа
- •Контрольные вопросы
- •6.4. Примерные тестовые задания Тема 1. Основы разработки по
- •Тема 2. Методология разработки по
- •Тема 3. Технология разработки по
- •Тема 4. Подходы разработки по
- •Тема 5. Инженерия и инструментарий по
- •Литература Основная литература
- •Дополнительная литература
- •Документация
- •Интернет – источники
- •Литература по Rational RoseиUml
Раздел4. Подходы разработки по
В данном разделе рассматриваются основные часто используемые и/или наиболее известные технологические подходы разработки ПО.
Многие подходы используют для своего описания понятия «процесс», «процесс разработки ПО» или «процесс разработки системы», под которым понимается собственно подход к разработке, а не какой-либо конкретный процесс ЖЦ, описываемый этим подходом. Кроме того, в названиях подходов можно встретить и такие понятия, как «каркас», «метод», «методология», «доставка», «разработка» и «инженерия» и т.п. Это связано прежде всего со следующими факторами:
– ориентация подхода на конкретные проекты и предлагаемые решения;
– использование в подхода определённых процессов и стадий ЖЦ;
– рекламная политика соответствующей фирмы, продвигающей подход.
Поэтому название подхода требует приемлемого перевода на русский язык.
4.1. Каскадные технологические подходы
Каскадные подходыявляются строгими подходами, получившими также названиежёстких подходов. Эти подходы основаны на одноимённых моделях ЖЦ. Они требуют определённости, полноты и точности требований, предъявляемых к ПО, и чёткости оценки полученного в результате разработки продукта.
Данные подходы рекомендуются для промышленной разработки систем военного назначения, аэрокосмических систем или систем управления технологическими процессами в реальном времени, а также других критических систем.
Выделяют каскадные подходы следующих двух видов:
1. Простые каскадные подходы: классический и модифицированный.
2. Развитые каскадные подходы: каскадно-возвратный, каскадно-итерационный, каскадно-перекрывающийся и каскадно-декомпозиционный.
В моделях ЖЦ для каскадных подходов используются классический набор процессов и попроцессное формирование стадий.
Модели ЖЦ для простых каскадных подходов приведены в §3.3.
Классический каскадный подход(водопад) является теоретически наиболее привлекательным, но не рекомендуемым к применению подходом из-за жёстких ограничений, наложенных на выполнение процессов и отдельных действий. Снятие ограничений или учёт других особенностей разработки ПО приводит к более реалистичным каскадным подходам на основе соответствующих моделей.
Модифицированный каскадный подход(водоворот) заменяет одно из ограничений на более слабое. В нём допускается возврат только на непосредственно предыдущую стадию. Однако на практике ошибки одной стадий не всегда проявляются на стадии, непосредственно следующей за стадией, вызвавшей ошибку.
Модели ЖЦ для развитых каскадных подходов приведены при изложении соответствующих подходов.
Каскадно-возвратный подходпозволяет возвратиться на любую из предыдущих стадий ЖЦ. Это принцип отражает итерационный характер разработки ПО. Кроме этого он учитывает существенное запаздывание с достижением результата из-за влияния корректировки при возвратах.
Рис.4.1. Каскадно-возвратная модель
Каскадно-возвратная модельилимодель с промежуточным контролемявляется усовершенствованным вариантом модифицированной каскадной модели и представляет собой модель с обратными связями между стадиями. Принцип модели (рис.4.1) проявляется в обработке ошибок, выявленных промежуточным контролем. Он заключается в проведении проверок и корректировок проекта на каждой из стадий.
Если на какой-либо стадии в ходе такого контроля обнаружилась ошибка, допущенная на любой более ранней стадии, работы стадии, вызвавшей ошибку, необходимо провести повторно. При этом анализируются причины ошибки и корректируются, по необходимости, исходные данные стадии или перечень работ.
Каскадно-итерационный подход(водопад с итерациями) предусматривает последовательные итерации каждого процесса. Каждая итерация является завершённым этапом, и её итогом будет некоторый конкретный результат. Обычно он будет промежуточным, не реализующим всю ожидаемую функциональность.
Рис.4.2. Каскадно-итерационная модель
Каскадно-итерационная модельявляется другим вариантом модифицированной каскадной модели и представляет собой модель с обратными связями внутри стадий. Принцип модели (рис.4.2) заключается в повторении (итерировании) каждого процесса ЖЦ до тех пор, пока не будет достигнут требуемый результат процесса в целом.
Каскадно-перекрывающийся подход(водопад с перекрытием) предполагает закрепление каждого процесса за отдельной командой, которая будет выполнять этот процесс во всех проектах. Наличие специализированных команд и их раннее включение в работу над проектом позволяет до определённой степени сократить передаваемую документацию. Следующий процесс начинается до завершения текущего. Более того, несколько процессов могут выполняться параллельно.
Рис.4.3. Каскадно-перекрывающаяся модель
Рис.4.4. Каскадно-декомпозиционная модель
Каскадно-перекрывающаяся модельявляется вариантом модифицированной каскадной модели без учёта ограничения на перекрытие процессов и представляет собой модель с параллелизмом процессов. Принцип модели (рис.4.3) заключается в выполнении процесса не точно в заданных временных рамках, а с началом в предыдущей стадии и завершением в последующей стадии, перекрывая соседние процессы и сокращая время на разработку ПО. Возникающие в текущем процессе проблемы могут быть разрешены в предыдущем ещё незаконченном процессе, как это происходит и в модифицированной каскадной модели.
Каскадно-декомпозиционный подход(водопад с подпроцессами) предполагает возможность представления проекта в виде композиции множества подпроектов. Наличие необходимого числа команд для их выполнения позволяет значительно сократить время разработки и эффективно использовать имеющиеся ресурсы.
Каскадно-декомпозиционная модельявляется каскадной моделью с учётом декомпозиции системы на модули и представляет собой модель с параллелизмом подпроцессов. Принцип модели (рис.4.4) заключается в разделении проекта на подпроекты по числу выделенных компонентов и/или имеющихся команд.