- •Основы программной инженерии
- •Вопрос 2.Классическая (водопадная) модель
- •Вопрос 3.Прототипирование
- •Вопрос 4.◦Инкрементные стратегии
- •Вопрос 5.Спиральная модель
- •Вопрос 6.Быстрая разработка приложений
- •Вопрос 7.Rational Unified Process (rup)
- •Вопрос 8.Экстремальное программирование
- •Вопрос 9.Scrum
- •Вопрос 10.Управление требованиями
- •Вопрос 11.Разработка требований
- •Вопрос 12 и 13.Документирование и организация требований
- •Вопрос 14.Управление изменениями
- •Вопрос 15.Политика управления изменениями
- •Вопрос 16
- •Вопрос 17.Роли
- •Вопрос 17.Роли в процессе разработки программных проектов
- •Вопрос 18.Программные проекты
- •Вопрос 19 и 20. Изменение проекта
- •Управление рисками в программных проектах
- •Вопрос 24.Идентификация риска
- •Вопрос 25.Планирование управления риском
- •Система управления дефектами
- •Вопрос 21.Дефект – обнаруженная в процессе разработки, тестирования или эксплуатации ошибка в разрабатываемом приложении
- •Вопрос 22.Жизненный цикл дефекта
- •Вопрос 23.Нотификация в системе управления дефектами
- •Контроль версий в программных проектах
- •Вопрос 27.Общий доступ к файлам
- •Вопрос 28.Системы контроля
- •Сборка и выпуск программных проектов
- •Вопрос 29.Сборка (building) программного проекта– набор правил и процедур, направленный на получение исполняемой программы
- •Вопрос 30.Окружение для сборки
- •Вопрос 31.Непрерывная интеграция
- •Вопрос 32.Качество программного обеспечения
- •Вопрос 33.
- •Вопрос 34.Метрики программного обеспечения
- •Вопрос 35.Аудит программного кода
- •Обеспечение качества программных систем
- •Вопрос 36.Методы, направленные на проектирование качественного по
- •Вопрос 37.Метод проверки моделей
- •Вопрос 38.Статистический анализ
Основы программной инженерии
Вопрос 1.Жизненный цикл ПО - период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации. Этот цикл — процесс построения и развития ПО.
Фазы жизненного цикла ПО
Анализ и планирование
Проектирование
Разработка
Тестирование
Эксплуатация/Сопровождение
Документирование
Критерии успешности проекта
Качество ◦Реализованы все возможности ◦Эти возможности реализованы с надлежащим качеством
Время ◦Проект реализован вовремя ◦Этапы проекта реализованы вовремя
Бюджет ◦Проект уложился в планируемый бюджет
Успешность программного проекта
Программная индустрия существенно отличается от других областей производства:
◦Очень высокая сложность системы
◦Менее предсказуем результат
◦Хуже поддается планированию
◦До сих пор в большей степени творчество, чем ремесло
Что влияет на успешность
Решаемая задача
Заказчик
Со
стороны разработчика ◦Команда разработки
◦Инфраструктура
◦Выбранная методология проектирования ПО
Методология проектирования
Методологии определяются:
◦Составом и последовательностью работ
◦Ролью участников проекта
◦Составом и шаблонами документов
◦Организацией и управлением требованиями
◦Порядком контроля и проверки качества
◦Способами взаимодействия участников
Характеристики
Стратегия конструирования по
Однократные
◦Определены все требования ◦Один цикл конструирования ◦Промежуточных версий нет
Инкрементные
◦Иногда - инкрементно-итеративные ◦Определены все требования
◦Множество циклов конструирования ◦Промежуточные версии могут распространяться
Эволюционные
◦Иногда - эволюционно-итеративные ◦Определены не все требования
◦Множество циклов конструирования ◦Промежуточные версии могут распространяются
Адаптивность процесса
Тяжеловесные (прогнозирующие)
◦Фиксированные требования ◦Большая команда ◦Разная квалификация разработчиков
Адаптивные (облегченные)
◦Постоянно меняющиеся требования ◦Маленькая команда
◦Высококвалифицированные разработчики
Этапы и связи между ними
Формулировка требований
Вопрос 2.Классическая (водопадная) модель
◦Общепринятая линейная модель ◦Классическая итерационная
◦Каскадная модель ◦Строгая каскадная модель
Прототипирование (макетирование)
Инкрементная модель
Быстрая разработка приложений (RAD)
Спиральная модель
Rational Unified Process (RUP)
Microsoft Solution Framework (MSF)
Экстремальное программирование (XP)
Scrum
30 Стратегия |
Адаптивность |
Полнота |
|
Классическая |
Однокр. |
Прогн. |
+ |
Прототипирование |
Эвол. |
Прогн. |
- |
Спиральная |
Эвол. |
Прогн. |
+ |
Инкрементная |
Инкр. |
Прогн. |
+ |
RAD |
Инкр. |
Прогн. |
+ |
RUP |
Инкр. / Эвол. |
Прогн. |
+ |
MSF |
Однокр. / Эвол. |
Прогн./Адапт |
+ |
XP |
Эвол. |
Адапт. |
+ |
SCRUM |
Эвол. |
Адапт. |
+ |
Классическая каскадная модель
Предложена в 1960-х годах, впервые описана 1970 г., В. Ройсом
Водопадный (однократный) подход
Относится к прогнозирующим методологиям
Предполагает полное наличие всех требований на момент старта проекта
Требования не могут меняться в процессе проектирования
Программный продукт появляется по окончании проектирования
Промежуточные версии не предусмотрены
Анализ и планирование
◦Сбор требований ◦Анализ требований ◦Планирование проекта
Проектирование
◦Разработка архитектуры ◦Разработка моделей данных ◦Разработка алгоритмов
Реализация
◦Кодирование ◦Отладка
Тестирование/верификация
Сопровождение
◦Внедрение ◦Эксплуатация ◦Внесение изменений
Имеется несколько модификаций
◦Общепринятая линейная модель ◦Классическая итерационная
Обратная связь после каждого этапа ◦Каскадная модель
Завершение каждого этапа проверкой ◦Строгая каскадная модель
Минимизация возвратов к пройденным этапам
Достоинства:
◦Имеется план и график по всем этапам конструирования
◦Ход конструирования – упорядочен
◦Имеется богатый опыт использования
Недостатки:
◦Не всегда соответствует реальным проектам (отсутствует гибкость)
◦Часто всех требований на начальном этапе нет
◦Результат доступен только в конце
