
- •1. Введение. Понятие case-систем и case-технологий
- •2. Классификация case-средств
- •3. Интегрированные case-средства
- •4. Техническое задание на программный продукт
- •Структура
- •5. Жизненный цикл программного обеспечения
- •6. Этап анализа в жизненном цикле программного обеспечения
- •7. Обзор методологий анализа и проектирования
- •8. Методология sadt
- •Иерархия диаграмм
- •9. Методология idef0
- •10. Методология dfd
- •11. Методология idef3
- •12. Нотация aris eEpc
- •Методология
- •13. Нотация aris InformationFlow
- •14. Нотация aris Application System Type
- •15. Методология idef1x
- •2.1. Трансформационная модель
- •2.2. Модель субд
- •16. Объектно-ориентированная методология разработки программного обеспечения
- •17. Методология онтологического моделирования idef5
- •1. Диаграмма классификации
- •2. Композиционная схема
- •3. Схема взаимосвязей
- •4. Диаграмма состояния объекта
- •18. Современные технологии объектно-ориентированного анализа и проектирования информационных систем
- •19. Унифицированный язык моделирования
- •20. Методология Rational Unified Process
- •21. Методология Microsoft Solutions Framework
- •Структура процессов msf
- •Создание общей картины приложения
- •Планирование
- •Разработка
- •Стабилизация
- •Развертывание
- •Комментарии по поводу этапов работ
- •22. Гибкая методология разработки программного обеспечения
- •Роли в scrum-процессе
- •Митинг (Daily Scrum)
- •Демонстрация (Demo Meeting)
- •Ретроспектива (Retrospective Meeting)
22. Гибкая методология разработки программного обеспечения
Введение
Принципы и ценности agile, включенные в манифест agile
Жизненный цикл agile
Экстремальное программирование (Методология XP) : особенности, преимущества, недостатки.
Методология OpenUP
Методология FDD
Методология SCRUM
Гибкая методология разработки (англ. Agile software development) — это концептуальный каркас, в рамках которого выполняется разработка программного обеспечения. Существует несколько подобных методик.
Большинство гибких методологий нацелены на минимизацию рисков, путём сведения разработки к серии коротких циклов, называемых итерациями, которые обычно длятся две-три недели. Каждая итерация сама по себе выглядит как программный проект в миниатюре, и включает все задачи, необходимые для выдачи мини-прироста по функциональности: планирование, анализ требований, проектирование, кодирование, тестирование и документирование. Хотя отдельная итерация, как правило, недостаточна для выпуска новой версии продукта, подразумевается, что гибкий программный проект готов к выпуску в конце каждой итерации. По окончании каждой итерации, команда выполняет переоценку приоритетов разработки.
Agile-методы делают упор на непосредственное общение лицом к лицу. Большинство agile-команд расположены в одном офисе, иногда называемом bullpen. Как минимум, она включает и «заказчиков» (product owner - заказчик или его полномочный представитель, определяющий требования к продукту; эту роль может выполнять менеджер проекта, бизнес-аналитик или клиент). Офис может также включать тестировщиков, дизайнеров интерфейса, технических писателей и менеджеров.
Основной метрикой agile-методов является рабочий продукт. Отдавая предпочтение непосредственному общению, agile-методы уменьшают объем письменной документации, по сравнению с другими методами. Это привело к критике этих методов, как недисциплинированных.
OpenUP — это итеративно-инкрементальный метод разработки ПО. Позиционируется как легкий и гибкий вариант RUP.
В основу OpenUP положены следующие основные принципы:
Совместная работа с целью согласования интересов и достижения общего понимания;
Развитие с целью непрерывного обеспечения обратной связи и совершенствования проекта;
Концентрация на архитектурных вопросах на ранних стадиях для минимизации рисков и организации разработки;
Выравнивание конкурентных преимуществ для максимизации потребительской ценности для заинтересованных лиц.
OpenUP делит жизненный цикл проекта на четыре фазы: начальная фаза, фазы уточнения, конструирования и передачи. Жизненный цикл проекта обеспечивает предоставление заинтересованным лицам и членам коллектива точек ознакомления и принятия решений на протяжении всего проекта. Это позволяет эффективно контролировать ситуацию и вовремя принимать решения о приемлемости результатов. План проекта определяет жизненный цикл, а конечным результатом является окончательное приложение.
Feature Driven Development(FDD) - итерационная функционально-ориентированная разработка программного обеспечения(ПО). Это одна из методологий гибкой разработки. FDD представляет собой объединение нескольких наиболее распространенных методик в единое целое. Данные методики определяются с точки зрения клиент-значной функциональности (свойств). Основная цель - предоставление работающего программного обепечения,разделяя время разработки ПО на короткие итерации, каждая из которых служит для проработки определенной части функциональности системы.
FDD включает пять процессов, последние два из которых повторяются для каждой функции:
Элемент нумерованного списка
Разработка общей модели
Составление списка необходимых функций системы
Планирование работы над каждой функцией
Проектирование функции
Конструирование функции
XP. Основные приёмы XP
Двенадцать основных приёмов экстремального программирования (по первому изданию книги Extreme programming explained) могут быть объединены в четыре группы:
Короткий цикл обратной связи (Fine scale feedback)
Разработка через тестирование (Test driven development)
Игра в планирование (Planning game)
Заказчик всегда рядом (Whole team, Onsite customer)
Парное программирование (Pair programming)
Непрерывный, а не пакетный процесс
Непрерывная интеграция (Continuous Integration)
Рефакторинг (Design Improvement, Refactor)
Частые небольшие релизы (Small Releases)
Понимание, разделяемое всеми
Простота (Simple design)
Метафора системы (System metaphor)
Коллективное владение кодом (Collective code ownership) или выбранными шаблонами проектирования (Collective patterns ownership)
Стандарт кодирования (Coding standard or Coding conventions)
Социальная защищенность программиста (Programmer welfare):
40-часовая рабочая неделя (Sustainable pace, Forty hour week)
Scrum — методология управления разработкой информационных систем для гибкой разработки программного обеспечения. Scrum чётко делает акцент на качественном контроле процесса разработки