
- •Раздел 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
Основы подхода
Подход СцИП рассматривает процесс разработки ПО не как ремесло, а как инженерную деятельность, используя вместо традиционных методов разработки строгие точные методы.
Разработка в рамках подхода выражается в виде трёх принципов:
1. Инкрементная разработка под статистическим контролем качества.
2. Разработка ПО на основе математических принципов.
3. Тестирование ПО на основе статистических принципов.
Инкрементная разработка под статистическим контролем качества означает разработку ПО с использованием инкрементной стратегии, но на основе статистического контроля качества (SQC – statistical quality control). Инкремент представляет собой полное повторение процесса ЖЦ. Измерения производительности сравниваются с предустановленными стандартами для определения контролируемости процесса. Если стандарты качества не удовлетворяются, тестирование инкремента прекращается и происходит возврат на стадию проектирования.
Разработка ПО на основе математических принципов использует представление ПС как выражения математической функции. Для специфицирования и проектирования используется специальная методика, а для подтверждения того, что дизайн представляет собой корректную реализацию спецификации, применяется функциональная верификация.
Поэтому формальная спецификация должна представляться требуемой математической функцией. Верификация заключается в командном обзоре ПС, основанном на вопросах корректности. Следовательно, до тестирования не происходит никакого исполнения кода программы.
Тестирование ПС на основе статистических принципов связано с рассмотрением тестирования как статистического эксперимента. Формируется представительная выборка всех возможных использований ПС. Производительность ПС на полученной выборке служит основой для заключения об общей эксплуатационной производительности. По протоколам тестирования, удовлетворяющим принципам прикладной статистики, может быть сформулировано математически обоснованное утверждение об ожидаемой эксплуатационной производительности ПС в терминах полноты тестирования и надёжности этой системы.
Таким образом, СцИП позволяет получить ПО, корректное математически спецификационным проектированием и заверенное статистически обоснованным тестированием. Уменьшение времени разработки в СцИП связано с инкрементной стратегией и исключением доработки.
При использовании этого подхода выявление и предотвращение дефектов во время проектирования позволяет уменьшить стоимость всего цикла разработки по сравнению с традиционными подходами и существенно ограничить область отказов ПО во время эксплуатации.
Жизненный цикл проекта
Основой модели ЖЦ для подхода служит модель трансформации, ориентированная на использование формальных методов (рис.4.18).
Особенностью модели ЖЦ для СцИП (рис.4.19) является использование специальной методики вместо процесса трансформации. Это существенно снижает затраты на разработку ПС по сравнению с подходами формальной разработки, но обеспечивает высокий уровень приемлемого качества ПС. Поэтому СцИП оказывается сопоставимым по стоимости с другими современными подходами, превосходя их в качестве ПС.
В СцИП можно (условно) выделить следующие фазы: 1. Формализация;2. Проектирование;3. Верификация;4. Сертификация.
При этом для сложных систем используется постепенное наращивание функциональности ПС на основе цикла инкремента путём реализации выделяемых заказчиком подмножеств требований на следующий инкремент разработки.
Рис.4.19. Схема модели ЖЦ для СцИП
На фазе 1выполняются три процесса. Планирование – построение плана разработки инкремента ПС, в том числе выделение подмножества реализуемых в инкременте требований. Специфицирование – преобразование неформальной спецификации требований в формальную спецификацию ПС. Профилирование – разработка операционного профиля ПС на основе полученной формальной спецификации ПС.
На фазе 2выполняются два процесса. Структурирование – проектирование ПС как структурированное преобразование формальной спецификации в программный код системы. В данном подходе дизайн ПС (в частности, архитектура системы) является промежуточным результатом структурирования. Генерация тестов – разработка статистических тестов на основе операционного профиля системы. Для сложных систем используетсяпошаговое улучшение– постепенное определение структуры ПС на основе специальных правил, аналогичных правилам структурного программирования.
На фазе 3Верификация» выполняется один процесс. Инспектирование – формальная проверка соответствия кода ПС формальной спецификации (без запуска программы). На этой фазе возможно продолжение Генерации тестов.
На фазе 4«Сертификация» выполняются два процесса. Интеграция – сборка кода компонентов ПС в единый код ПС. Тестирование – статистическое тестирование кода ПС. При обнаружении проблем при Инспектировании и Тестировании выполняется возврат к Структурированию.