
- •Раздел 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
3.2. Основные классификации
Существует два основных набора технологических процессов. 1. Классический набор– совокупность основных процессов, сложившихся исторически в результате практического опыта разработки ПО. 2.Стандартный набор– совокупность процессов, определённых в стандартеISO/IEC12207:1995 «Information Technology – Software Life Cycle Processes» («Информационная технология – Процессы жизненного цикла ПО»).
Процессы классического набора фактически являются подмножеством стандартного, выступая там как процессы или действия процессов.
Классический набор включает 9 процессов: 1. Исследование;2. Управление;3. Анализ;4. Проектирование / Дизайн;5. Кодирование, Конструирование;6. Тестирование;7. Ввод в действие;8. Сопровождение;9. Снятие с эксплуатации.
Перечисленные процессы подробно рассматриваются в §3.4.
Стандартный набор включает существенно большее число процессов, объединённых в три тематические группы: основные, вспомогательные и организационные процессы. Перечисленные процессы подробно рассматриваются в §3.6.
Существует два основных вида формирования технологических стадий. 1. Попроцессное формирование стадий– выделение стадий, отражающих названия процессов (или отдельных действий процессов), большая часть времени которых проходит в данной стадии. 2.Пофазное формирование стадий– объединение стадий в фазы, отражающие крупные временные промежутки.
Попроцессное формирование стадий обычно используют для классических процессов (или их под- или надмножества).
В подходах с этой классификацией обычно выделяют 9 классических стадий: 1. Исследование идеи;2. Планирование;3. Анализ требований;4. Проектирование / Дизайн;5. Кодирование, Конструирование;6. Тестирование и отладка;7. Ввод в действие;8. Эксплуатация и сопровождение;9. Снятие с эксплуатации.
Пофазное формирование стадий обычно используют для стандартных процессов (или их под- или надмножества).
В большинстве подходов с этой классификацией выделяют 4 основные фазы:
1. Начало – Изучение ПрО и получение требований.
2. Середина – Анализ требований и проектирование.
3. Кульминация – Конструирование (кодирование и тестирование).
4. Переход – Внедрение (ввод в действие и опытная эксплуатация).
В ряде подходов выделяют 2 дополнительные фазы:
5. Работа – Эксплуатация и сопровождение.
6. Окончание – Снятие с эксплуатации.
Моменты завершения фаз являются вехами. Фазы обычно разбиваются на несколько итерации. Кроме того, при разработке сложных систем используется понятие цикл– период времени, включающий все фазы.
Классификация подходов тесно связана с характеристиками выполняемых проектов. По каждому признаку классификации проектов можно выделить множество проектов, для которых будут указаны только граничные значения.
По виду заказчикавыделяют: проект для конкретного заказчика и проект для широкого круга пользователей. Разница между этими проектами наиболее существенно проявляется в отличии процессов управления и исследования идеи.
По степени коммерциализациивыделяют: коммерческий проект с ориентацией на получение прибыли и некоммерческий проект – без получения прибыли.
По масштабу, определяющему количество исполнителей и протяжённость (время выполнения) проекта, выделяют 5 категории проектов (табл.3.1).
Табл.3.1. Категории проектов
Категория |
Число исполнителей |
Протяжённость проекта |
мелкий |
от 1 до 3 |
от 1 часа до 2 месяцев |
малый |
от 3 до 10 |
от 2 до 6 месяцев |
средний |
от 10 до 30 |
от 6 месяцев до 1 года |
крупный |
от 30 до 100 |
от 1 года до 2 лет |
гигантский |
от 100 до 300 и более |
от 2 до 6 лет и более |
В настоящее время выделяют два класса подходов: строгие и гибкие.
Строгие(тж. тяжёлые, жёсткие)подходыориентированы в основном на применение в средних, крупных и гигантских проектах с фиксированным объёмом работ. Поэтому одно из основных требований к таким проектам – предсказуемость.
Гибкие(тж. лёгкие, живые)подходыориентированы в основном на применение в мелких, малых или средних проектах в случае неясных или изменяющихся требований к системе. Поэтому одно из основных требований к таким проектам – непосредственное участие заказчика в проекте (наличие квалифицированного представителя заказчика в команде). Кроме того для большинства гибких подходов важным является ещё одно из основных требований – адаптируемость.
Внутри классов подходов принято условно выделять группы подходов с одной и той же моделью ЖЦ и рядом принципов, общих для этих подходов. К классу строгих подходов относят каскадные, каркасные, генетические и формальные подходы, к классу гибких – эволюционные и адаптивные подходы.