Слайд 1Лекция 9
Подходы разработки ПО
Слайд 2Каскадные подходы
Каскадные подходы являются строгими подходами, получившими также название
жёстких подходов. Эти подходы основаны на одноимённых моделях ЖЦ. Они
требуют определённости, полноты и точности требований, предъявляемых к ПО, и чёткости оценки полученного в результате разработки продукта.
Данные подходы рекомендуются для промышленной разработки систем военного назначения, аэрокосмических систем или систем управления технологическими процессами в реальном времени, а также других критических систем.
Слайд 3Выделяют каскадные подходы следующих двух видов:
1. Простые каскадные подходы: классический и
модифицированный.
2. Развитые каскадные подходы:
каскадно-возвратный,
каскадно-итерационный,
каскадно-перекрывающийся,
каскадно-декомпозиционный.
Слайд 4Каскадные подходы
Классический каскадный подход является теоретически наиболее привлекательным, но
не рекомендуемым к практическому применению подходом из-за жёстких ограничений, наложенных
на выполнение процессов и отдельных действий. Снятие ограничений или учёт других особенностей разработки ПО приводит к более реалистичным каскадным подходам на основе соответствующих моделей.
Модифицированный каскадный подход заменяет одно из ограничений на более слабое. В этом подходе допускается возврат только на непосредственно предыдущую стадию. Однако на практике ошибки одной стадий не всегда проявляются на стадии, непосредственно следующей за стадией, вызвавшей ошибку.
Каскадно-возвратный подход позволяет возвратиться на любую из предыдущих стадий ЖЦ. Это принцип отражает итерационный характер разработки ПО. Кроме этого подход учитывает существенное запаздывание с достижением результата проекта из-за влияния корректировки при возвратах.
Слайд 5Рис.9.1. Каскадно-возвратная модель
Слайд 6Каскадно-возвратная модель или модель с промежуточным контролем
Каскадно-возвратная модель или
модель с промежуточным контролем представляет собой модель с обратными связями
между стадиями. Принцип модели (рис.9.1) проявляется в обработке ошибок, выявленных промежуточным контролем. Он заключается в проведении проверок и корректировок проекта на каждой из стадий. Если на какой-либо стадии в ходе контроля обнаружилась ошибка, допущенная на более ранней стадии, работы стадии, вызвавшей ошибку, необходимо провести повторно. При этом анализируются причины ошибки и корректируются, по необходимости, исходные данные стадии или перечень работ.
Слайд 7Каскадно-итерационный подход
Каскадно-итерационный подход предусматривает последовательные итерации каждого процесса. Каждая
итерация является завершённым этапом, и её итогом будет некоторый конкретный
результат. Обычно данный результат будет промежуточным, не реализующим всю ожидаемую функциональность.
Каскадно-итерационная модель представляет собой модель с обратными связями внутри стадий. Принцип модели (рис.9.2) заключается в повторении (итерировании) каждого процесса ЖЦ до тех пор, пока не будет достигнут требуемый результат процесса в целом.
Слайд 8Рис.9.2. Каскадно-итерационная модель
Слайд 9Каскадно-перекрывающийся подход
Каскадно-перекрывающийся подход предполагает закрепление каждого процесса за отдельной командой,
которая будет выполнять этот процесс во всех проектах. Наличие специализированных
команд и их раннее включение в работу над проектом позволяет до определённой степени сократить передаваемую документацию. Следующий процесс начинается до завершения текущего. Более того, несколько процессов могут выполняться параллельно.
Каскадно-перекрывающаяся модель является вариантом модифицированной каскадной модели без учёта ограничения на перекрытие процессов и представляет собой модель с параллелизмом процессов. Принцип модели (рис.9.3) заключается в выполнении процесса не в заданных временных рамках, а с началом в предыдущей стадии и завершением в последующей стадии, перекрывая соседние процессы и сокращая время на разработку ПО. Кроме этого, возникающие в текущем процессе проблемы могут быть разрешены в предыдущем ещё незаконченном процессе, как это происходит и в модифицированной каскадной модели.
Слайд 10Рис.9.3. Каскадно-перекрывающаяся модель
Слайд 11Каскадно-декомпозиционный подход
Каскадно-декомпозиционный подход предполагает возможность представления проекта в виде
композиции множества подпроектов. Наличие необходимого числа команд для их выполнения
позволяет значительно сократить время разработки и эффективным образом использовать имеющиеся ресурсы.
Слайд 12Рис.9.4. Каскадно-декомпозиционная модель
Слайд 13Каскадно-декомпозиционная модель
Каскадно-декомпозиционная модель является каскадной моделью с учётом декомпозиции
системы на модули и представляет собой модель с параллелизмом подпроцессов.
Принцип модели (рис.9.4) заключается в разделении проекта на подпроекты по числу выделенных компонентов и/или имеющихся команд.
Слайд 14Каркасные подходы
Каркасные подходы являются развитием каскадных подходов на основе
применения развитых моделей ЖЦ и адаптации к современным условиям. В
настоящее время среди строгих подходов именно они применяются на практике.
Выделяют каркасные подходы следующих двух видов:
1. Унифицированные каркасные подходы: Унифицированный процесс (UP) и его модификации, Рациональный унифицированный процесс (RUP).
2. Специализированные каркасные подходы: Каркас решений Майкрософт (MSF), Процесс ICONIX (ICONIX Process), Модельно-основанная (системная) архитектура и программная инженерия (MBASE).
Слайд 15Каркасные подходы
Каркасные подходы предоставляют развитый и адаптируемый под конкретные
условия и потребности технологический каркас для применения в реальных проектах.
Он включает в себя набор дисциплин и моделей для процессов (или их групп) и представлений (форм) соответственно.
Модели ЖЦ для каркасных подходов приведены при изложении соответствующих подходов. Они являются развитием спиральной модели с учётом других моделей и практических особенностей разработки ПО. В этих моделях используются стандартный набор процессов и пофазное формирование стадий.
Слайд 16Унифицированный процесс
Унифицированный процесс (УП, UP – Unified Process) – классический унифицированный
каркасный подход, развиваемый самостоятельно, отдельно от унифицированного каркасного подхода, предлагаемого фирмой
IBM Rational.
Первая книга с описанием этого подхода,– «Унифицированный процесс разработки ПО» сотрудников Rational Software А. Якобсона, Г. Буча и Дж. Рамбо (1999 г.). В дальнейшем авторы книги предпочли для этого подхода название Rational Unified Process. Авторы последующих публикаций по этой тематике, не являющиеся сотрудниками этой фирмы, используют название Unified Process.
Слайд 17Унифицированный процесс
Данный подход представляет собой расширяемый каркас процессов, который
может быть настроен для применения конкретными организациями или при выполнении
определённых проектов. Он предназначен для описания обобщённого процесса разработки, включая те его элементы, которые являются общими по отношению к различным уточнениям и другим проектным особенностям.
УП обладает следующими особенностями: 1. Итеративность и инкрементность; 2. Управляемость прецедентами; 3. Ориентированность на архитектуру; 4. Сосредоточенность на рисках.
Слайд 18Унифицированный процесс
Итеративность и инкрементность означает использование указанных принципов на основе спиральной
модели. В ЖЦ выделяются фазы, состоящих из последовательности итераций, которые ограничены временными
рамками. Результатом итерации является инкремент – очередной прототип.
Управляемость прецедентами предполагает формализацию функциональных требований в виде сценариев, группируемых в прецеденты, которые определяют также содержание итераций. Каждая итерация доводит выбранный набор прецедентов или отдельных сценариев до реализации инкремента.
Слайд 19Унифицированный процесс
Ориентированность на архитектуру связана с представлением об архитектуре как о центре, вокруг
которого ведётся разработка. Для учёта всех аспектов ПО, осуществляется поддержка множества
моделей и представлений архитектуры.
Сосредоточенность на рисках проявляется в обращении внимания на раннее выявление рисков и постоянном обеспечении организации работы с учётом наиболее существенных рисков.
Слайд 20Модель ЖЦ для УП
Модель ЖЦ для УП отражает объём работ дисциплин во всех фазах
(рис.9.5).
В УП выделены 4 фазы: 1. Начало; 2. Уточнение; 3. Построение; 4. Внедрение.
Каждая из фаз включает
ряд итераций (с учётом фазы и проекта).
На протяжении этих фаз по проекту выполняются работы, сгруппированные в следующие дисциплины (рис.9.5): 1. Бизнес-моделирование; 2. Определение требований; 3. Анализ и проектирование; 4. Реализация; 5. Тестирование; 6. Развёртывание.
Слайд 21Рис.9.5. Модель ЖЦ для подхода UP
Слайд 22Рис.9.5. Модель ЖЦ для подхода UP
Конец каждой фазы является некоторой вехой. Всего
выделено 4 вехи:
1. Цели ЖЦ (LCO). Веха определяется достижением договорённости о жизнеспособности проекта и формированием
базового плана.
2. Архитектура ЖЦ (LCA). Веха определяется подтверждением выбора подхода на основе архитектуры в простейшей форме.
3. Начальный операционный вариант (IOC). Веха определяется доступностью решения, годного к употреблению.
4. Выпуск продукта (PR). Веха определяется завершением разработки и передачей продукта в эксплуатацию.
Слайд 23Унифицированный процесс
Как следует из названий, дисциплины УП являются подмножеством действий стандартного
процесса «Разработка», кроме того используется пофазное формирование стадий.
В отличие от процессов каскадного
подхода все дисциплины УП выполняются практически во всех фазах ЖЦ. Для дисциплин в зависимости от фазы применяется соответствующая целевая установка проекта и определяется соответствующий объём работ (рис.9.5).
УП имеет множество модификаций. Они различаются числом и видом дисциплин, фаз и артефактов, а также другими особенностями. Основой для большинства модификаций является не сам УП, а РУП.