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