- •Алгоритмические основы программной инженерии
- •1 Семестр вопросы и ответы
- •1 Вопрос. Кризисная история развития программного обеспечения: необходимость повторного использования кода, рост сложности по, модификация по.
- •Необходимость повторного использования кода
- •Функциональное программирование. Достоинства и недостатки
- •2 Вопрос. Этапы разработки программного обеспечения. Состав технического задания.
- •Модели процесса разработки программного обеспечения
- •Каскадная модель
- •Итеративная модель rup
- •Гибкий цикл agile
- •Итеративная модель xp
- •Спиральная модель
- •3 Вопрос. Проектирование и алгоритмизация программы. Свойства алгоритма.
- •4 Вопрос. Понятие и определение сложности алгоритма.
- •5 Вопрос. Кодирование, тестирование и отладка программы.
- •Концепция xp: программирование в паре.
- •Тестирование и отладка.
- •6 Вопрос. Доработка и сопровождение программного продукта.
- •7 Вопрос. Модели жизненного цикла по. Экстремальное программирование (xp).
- •Концепция xp
- •11. Взаимодействие с заказчиком.
- •Если требования проекта могут быть сформулированы достаточно исчерпывающим образом, то имеет смысл прибегать к более надежной стратегии разработки.
- •8 Вопрос. Унифицированная концепция (rup) разработки по: фазы, операции. Определение требований в uml-формате.
- •9 Вопрос. Унифицированная концепция (rup) разработки по: анализ и проектирование. Понятие класса, типы и примеры классов, uml-диаграммы.
- •Стратегия rup Rational Unified Process
- •1. Определение требований.
- •3. Реализация.
- •Ниже представлена самостоятельная работа — пример реализации диаграммы компонентов
- •4. Внедрение.
- •Ниже представлена самостоятельная работа — пример реализации диаграммы развертывания
- •10 Вопрос. Состав и функционал системного программного обеспечения.
- •Операционная система (ос)
- •Система управления файлами (суф)
- •Интерфейсная оболочка для взаимодействия пользователя с ос и операционными средами
- •Системы программирования
- •Трансляторы
- •Утилиты
- •11 Вопрос. Классификация языков программирования.
- •Не существует общепринятой систематичной таксономии языков программирования. Поколения языков
- •Функциональная классификация языков программирования
- •12 Вопрос. Определение ядра операционной системы.
- •13 Вопрос. Классификация операционных систем по функциональности.
- •Системы пакетной обработки
- •Системы разделения времени
- •Системы реального времени
- •14 Вопрос. Определение задачи. Преимущества и недостатки процессов и потоков.
- •15 Вопрос. Свойства задач.
- •16 Вопрос. Механизмы диспетчеризации (планирования) задач.
Итеративная модель rup
(Rational Unified Process — рациональный
унифицированный процесс)
Фазы RUP:
1. Inception (начальная фаза: определение требований).
2. Elaboration (фаза уточнения: анализ и проектирование).
3. Construction (фаза реализации: построение).
4. Transition (фаза внедрения).
Состав технического задания:
1. Введение.
1. Цель.
2. Краткая сводка возможностей.
3. Определения, акронимы и сокращения.
4. Ссылки.
5. Краткое содержание.
2. Обзор системы.
1. Обзор вариантов использований.
2. Предположения и зависимости.
3. Детальные требования.
1. Описание вариантов использования.
2. Дополнительные требования.
3. Другие функциональные требования.
4. Нефункциональные требования.
4. Вспомогательная информация.
Гибкий цикл agile
Позволяет без негативных последствий изменять направление деятельности, вносить дополнительные задания, требовать детальной проработки узких мест (возвращаться на предыдущие этапы).
Спринт — один короткий цикл, который является неким мелким проектом и занимает от одной до четырех недель.
1. Планирование.
Постановка целей спринта и выбор действий для их реализации, распределение имеющихся ресурсов.
2. Разработка.
Практическое решение задач для достижения целей спринта.
3. Тестирование.
Накопление итоговой информации в целях контроля выполнения задач спринта. Анализ ошибок и причин отклонений от плана. Поиск путей исправления оплошностей.
4. Демонстрация.
Представление заказчику готовой части ПО.
5. Внедрение.
По требованию возможно использование ПО в качестве самостоятельного продукта.
Когда используется?
-
Когда потребности пользователей постоянно меняются в динамическом бизнесе.
-
Изменения на Agile реализуются за меньшую цену из-за частых инкрементов.
-
В отличие от модели водопада, в гибкой модели для старта проекта достаточно лишь небольшого планирования.
Итеративная модель xp
(Extreme Programming — экстремальное программирование)
Ключевые концепции:
1. Постановка задачи только по определенным в настоящее время требованиям.
2. Проектирование максимально простой архитектуры продукта.
3. Максимально быстрое получение первой работающей версии программы.
4. Разработка на основе тестов.
5. Коррекция ТЗ и архитектуры программы.
6. Систематические сборки с тестированием и отладкой.
7. Частая подготовка промежуточных версий продукта.
8. Рефакторинг (регулярная переработка кода).
9. Программирование в паре.
10. Соблюдение единого стандарта кодирования.
11. Взаимодействие с заказчиком.
Состав технического задания.
1. Функциональное назначение программы с перечнем тех функций, которые должна выполнять программа.
2. Входные, выходные и промежуточные данные с указанием организации (формата) их ввода-вывода.
3. Требование к надежности программного продукта с указанием тех ошибок, которые должна отлавливать программа и перечнем информационных сообщений, которые должны выдаваться пользователю в качестве идентификации ошибки.
4. Требования к ресурсоёмкости.
5. Технико-экономическое обоснование с указанием стоимости разработки продукта.