
- •Раздел 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.2. Каркасные технологические подходы
Каркасные подходыявляются развитием каскадных подходов на основе применения развитых моделей ЖЦ и адаптации к современным организационным и экономическим условиям. Поэтому в настоящее время среди строгих подходов именно они чаще применяются на практике.
Выделяют каркасные подходы следующих двух видов:
1. Унифицированные каркасные подходы: Унифицированный процесс (UP) и его модификации, Рациональный унифицированный процесс (RUP).
2. Специализированные каркасные подходы: Каркас решений Майкрософт (MSF), ПроцессICONIX(ICONIX Process), Модельно-основанная (системная) архитектура и программная инженерия (MBASE).
Каркасные подходы предоставляют развитый и адаптируемый под конкретные условия и потребности технологический каркас для применения в реальных проектах. Он включает в себя набор дисциплин и моделей для процессов (или их групп) и представлений (форм) соответственно.
Модели ЖЦ для каркасных подходов приведены при изложении соответствующих подходов. Они являются развитием спиральной модели с учётом других моделей и практических особенностей разработки ПО. В этих моделях используются стандартный набор процессов и пофазное формирование стадий.
Унифицированный процесс (up)
Унифицированный процесс(УП,UP – Unified Process) – классический унифицированный каркасный подход, развиваемый самостоятельно, отдельно от унифицированного каркасного подхода, предлагаемого фирмойIBM Rational.
Первая книга, в которой был описан этот подход,– «Унифицированный процесс разработки ПО» («The Unified Software Development Process») сотрудниковRationalSoftwareА. Якобсона, Г. Буча и Дж. Рамбо. Она была опубликована в 1999 г. В дальнейшем авторы книги предпочли для этого подхода названиеRational Unified Process. Авторы последующих публикаций по этой тематике, не являющиеся сотрудниками этой фирмы, используют названиеUnified Process. Это позволяет также исключить проблемы с нарушением авторских прав наRUPиRational Unified Process– торговые маркиIBM.
Данный подход представляет собой расширяемый каркас процессов, который может быть настроен для применения конкретными организациями или при выполнении определённых проектов. Он предназначен для описания обобщённого процесса разработки, включая те его элементы, которые являются общими по отношению к различным уточнениям и другим проектным особенностям.
УП обладает следующими особенностями: 1. Итеративность и инкрементность;2. Управляемость прецедентами;3. Ориентированность на архитектуру;4. Сосредоточенность на рисках.
Итеративность и инкрементность означает использование указанных принципов на основе спиральной модели. В ЖЦ выделяются фазы, состоящих из последовательности итераций, которые ограничены временными рамками. Результатом итерации является инкремент– очередной прототип.
Управляемость прецедентами предполагает формализацию функциональных требований в виде сценариев, группируемых в прецеденты, которые определяют также содержание итераций. Каждая итерация доводит выбранный набор прецедентов или отдельных сценариев до реализации инкремента.
Ориентированность на архитектуру связана с представлением об архитектуре как о центре, вокруг которого ведётся разработка. Для учёта всех аспектов ПО, осуществляется поддержка множества моделей и представлений архитектуры.
Сосредоточенность на рисках проявляется в обращении внимания на раннее выявление рисков и постоянном обеспечении организации работы с учётом наиболее существенных рисков.
Модель ЖЦ для УП отражает объём работ каждой дисциплины во всех фазах ЖЦ (рис.4.5).
Рис.4.5. Модель ЖЦ для подходаUP
В УП выделены 4 фазы: 1. Начало;2. Уточнение;3. Построение;4. Внедрение. Каждая из фаз включает ряд итераций (с учётом фазы и проекта). На протяжении этих фаз по проекту выполняются работы, сгруппированные в следующие дисциплины (рис.4.5):1. Бизнес-моделирование;2. Определение требований;3. Анализ и проектирование;4. Реализация;5. Тестирование;6. Развёртывание.
Конец каждой фазы является некоторой вехой. Всего выделено 4 вехи:
1. Цели ЖЦ (LCO). Веха определяется достижением договорённости о жизнеспособности проекта и формированием базового плана.
2. Архитектура ЖЦ (LCA). Веха определяется подтверждением выбора подхода на основе архитектуры в простейшей форме.
3. Начальный операционный вариант (IOC). Веха определяется доступностью решения, годного к употреблению.
4. Выпуск продукта (PR). Веха определяется завершением разработки и передачей продукта в эксплуатацию.
Как следует из названий, дисциплины УП являются подмножеством действий стандартного процесса «Разработка», кроме того используется пофазное формирование стадий. В отличие от процессов каскадного подхода все дисциплины УП выполняются практически во всех фазах ЖЦ. Для дисциплин в зависимости от фазы применяется соответствующая целевая установка проекта и определяется соответствующий объём работ (рис.4.5).
УП имеет множество модификаций. Они различаются числом и видом дисциплин, фаз и артефактов, а также другими особенностями.
Основными модификациями УП являются:
– Рациональный УП (РУП) – Rational UP (RUP)– детализация УП отIBM/Rational Software.
– Живой УП, или Активный УП – Agile UP (AUP) – гибкий вариант РУП от С.У. Амблера.
– Базисный УП – Basic UP (BUP)– гибкий вариант РУП отIBM.
– Корпоративный УП, или УП предприятия – Enterprise UP (EUP) – расширение РУП от С.У. Амблера.
– Сущностный УП – Essential UP (EssUP) – гибкий усовершенствованный вариант РУП от А. Якобсона.
– Открытый УП – Open UP (OpenUP) – частьEPFотEclipse Foundation.
– Открытый/базисный УП – Open UP/Basic (OpenUP/Basic) – гибкая вариацияOpenUPотIBM.
– Рациональный УП – Системная инженерия – Rational UP – System Engineering (RUP‑SE)– версия РУП отRational Softwareдля Системной инженерии.
– Унифицированный метод Оракл – Oracle Unified Method(OUM) – собственный вариант УП отOracle.
– УП для образования – Unified Process for Education(UPEDU) – вариант РУП, приспособленный для обучения.
Как видно из этого списка, основой для большинства модификаций является не сам УП, а РУП, который подробно рассматривается ниже.