Автор: Пользователь скрыл имя, 28 Сентября 2011 в 22:47, курсовая работа
Сегодня развитие программного обеспечения происходит в сторону увеличения и усложнения систем. Это связано отчасти с тем, что компьютеры с каждым годом становятся все мощнее, что побуждает пользователей ожидать от них все большего. Эта тенденция также связана с возрастающим использованием Интернета для обмена всеми видами информации — от простого текста до форматированного текста, изображений, диаграмм и мультимедиа. Наши аппетиты в отношении более продвинутого программного обеспечения растут по мере того, как мы начинаем понимать с выходом каждого следующего выпуска, как еще можно улучшить этот продукт. Мы желаем иметь программное обеспечение, еще лучше приспособленное для наших нужд, а это, в свою очередь, приводит к усложнению программ. Короче говоря, мы желаем большего.
1 Унифицированный процесс: управляемый вариантами использования, архитектурно- ориентированный, итеративный и инкрементный 2
1.1 Введение 2
1.2 Унифицированный процесс в двух словах 3
1.3 Унифицированный процесс управляется вариантами использования 5
1.4 Унифицированный процесс ориентирован на архитектуру 6
1.5 Унифицированный процесс является интеративным и инкрементным 9
1.6 Жизненный цикл Унифицированного процесса 12
1.6.1 Продукт 12
1.6.2 Разделение цикла на фазы 15
1.7 Интегрированный процесс 19
2 Процесс, направляемый вариантами использования 20
2.1 Введение в разработку управляемую вариантами использования 22
2.2 Необходимость вариантов использования 26
2.3 Определение вариантов использования 27
2.4 Анализ, проектирование и разработка при реализации варианта использования 27
2.4.1 Создание по вариантам использования аналитической модели 28
2.5 Тестирование вариантов использования 29
2.6 Резюме 32
3 Архитектурно-центрированный процесс 33
3.1 Введение в архитектуру 33
3.2 Необходимость архитектуры 35
3.3 Варианты использования и архитектура 36
3.4 Описание архитектуры 40
4 Интеративный и инкрементный процесс 42
4.1 Введение в итеративность и инкрементность 42
4.2 Необходимость использования итеративной и инкрементной разработки 42
4.3 Итеративный подход управляемый рисками 43
4.4 Обобщенная итерация 44
5 Заключение 46
6 Список использованной литературы 47
Таким образом, архитектор придает системе форму. Это означает, что форма, архитектура, должна быть спроектирована так, чтобы позволить системе развиваться не только в момент начальной разработки, но и в будущих поколениях. Чтобы найти такую форму, архитектор должен работать, полностью понимая ключевые функции, то есть ключевые варианты использования системы. Эти ключевые варианты использования составляют от 5 до 10% всех вариантов использования и крайне важны, поскольку содержат функции ядра системы. Проще говоря, архитектор совершает следующие шаги:
Разработка коммерческих программных продуктов — это серьезное предприятие, которое может продолжаться от нескольких месяцев до года и более. Практично было бы разделить работу на небольшие куски или мини-проекты. Каждый мини-проект является итерацией, результатом которой будет приращение. Итерации относятся к шагам рабочих процессов, а приращение — к выполнению проекта. Для максимальной эффективности итерации должны быть управляемыми, то есть они должны выбираться и выполняться по плану. Поэтому их можно считать мини-проектами.
Разработчики выбирают задачи, которые должны быть решены в ходе итерации, под воздействием двух факторов. Во-первых, в ходе итерации следует работать с группой вариантов использования, которая повышает применимость продукта в ходе дальнейшей разработки. Во-вторых, в ходе итерации следует заниматься наиболее серьезными рисками. Последовательные итерации используют артефакты разработки в том виде, в котором они остались при окончании предыдущей итерации. Это мини-проекты, поскольку для выбранных вариантов использования проводится последовательная разработка — анализ, проектирование, реализация и тестирование, и в результате варианты использования, которые разрабатывались в ходе итерации, представляются в виде исполняемого кода. Разумеется, приращение не обязательно аддитивно. Разработчики могут заменять предварительный дизайн более детальным или зрелым, особенно на ранних фазах жизненного цикла. В течение более поздних фаз приращение обычно аддитивно.
На каждой итерации разработчики определяют и описывают уместные варианты использования, создают проект, использующий выбранную архитектуру в качестве направляющей, реализуют проект в компоненты и проверяют соответствие компонентов вариантам использования. Если итерация достигла своей цели — а так обычно и бывает — процесс разработки переходит на следующую итерацию. Если итерация не выполнила своей задачи, разработчики должны пересмотреть свои решения и попробовать другой подход.
Для получения максимальной экономии команда, работающая над проектом, должна выбирать только те итерации, которые требуются для выполнения цели проекта. Для этого следует расположить итерации в логической последовательности. Успешный проект будет выполняться в соответствии с правильным курсом, изначально запланированным разработчиками, лишь с небольшими отклонениями. Разумеется, до определенного предела, так, незамеченные ранее проблемы приведут к добавлению итераций или изменению их последовательности, и процесс разработки потребует больших усилий и времени. Минимизация незамеченных проблем является одной из целей снижения рисков.
Управляемый итеративный процесс имеет множество преимуществ:
Эти
концепции — управляемая
Теперь, когда мы познакомились с основными ключевыми концепциями, настало время рассмотреть весь процесс, его жизненный цикл, артефакты, рабочие процессы, фазы и итерации.
Унифицированный процесс циклически повторяется. Эта последовательность повторений Унифицированного процесса, как показано на рис. 1.2, представляет собой жизненный цикл системы. Каждый цикл завершается поставкой выпуска продукта заказчикам.
Каждый цикл состоит из четырех фаз — анализа и планирования требований, проектирования, построения и внедрения. Каждая фаза как будет рассмотрено ниже, далее подразделяется на итерации (рис. 1.3).
Результатом каждого цикла является новый выпуск системы, а каждый выпуск -это продукт, готовый к поставке. Он включает в себя тело — исходный код, воплощенный в компоненты, которые могут быть откомпилированы и выполнены, плюс руководство и дополнительные компоненты поставки. Однако готовый продукт должен также быть приспособлен для нужд не только пользователей, а всех заинтересованных лиц, то есть всех людей, которые будут работать с продуктом. Программному продукту следовало бы представлять из себя нечто большее, чем исполняемый машинный код.
Окончательный продукт включает в себя требования, варианты использования, нефункциональные требования и варианты тестирования. Он включает архитектуру и визуальные модели — артефакты, смоделированные на Унифицированном языке моделирования. Фактически, он включает в себя все элементы, которые мы обсуждали в этой главе, поскольку они позволяют заинтересованным лицам — заказчикам, пользователям, аналитикам, проектировщикам, кодировщикам, тестерам и руководству—описывать, проектировать, реализовывать и использовать систему. Более того, именно эти средства позволяют заинтересованным лицам использовать систему и модифицировать ее от поколения к поколению.
Даже если исполняемые компоненты с точки зрения пользователей являются важнейшим артефактом, их одних недостаточно. Системное окружение меняется. Операционные системы, СУБД и сами компьютеры прогрессируют. По мере того, как цель понимается все лучше, изменяются и требования. Фактически, единственное, что постоянно в разработке программ, — это изменение требований. В конце концов разработчики вынуждены начинать новый цикл, а руководство вынуждено их финансировать. Для того чтобы эффективно выполнять новый цикл, разработчикам необходимо иметь полное представление о программном продукте (рис. 1.4):
Система также может включать в себя модель предметной области или бизнес-модель, описывающую контекст системы.
Все эти модели связаны. Вместе они полностью описывают систему. Элементы одной модели имеют трассировочные зависимости вперед и назад, организуемые с помощью связей с другими моделями. Например, вариант использования (в модели вариантов использования) может быть оттрассирован на соответствующую реализацию варианта использования (в модели проектирования) и вариант тестирования (в модели тестирования). Трассировка облегчает понимание и внесение изменений.
Каждый цикл осуществляется в течение некоторого времени. Это время, в свою очередь, делится на четыре фазы, показанные на рис. 1.5. В ходе смены последовательности моделей заинтересованные лица визуализируют происходящее на этих фазах. Внутри каждой фазы руководители или разработчики могут потерпеть неудачу в работе — но только на данной итерации и в связанном с ней приращении. Каждая фаза заканчивается веховой. Мы определяем каждую веху по наличию определенного набора артефактов, например, некая модель документа должна быть приведена в предписанное состояние.
Вехи служат многим целям. Наиболее важная из них дать руководителям возможность принять некоторые критические решения перед тем, как работа перейдет на следующую фазу. Вехи также дают руководству и самим разработчикам возможность отслеживать прогресс в работе при проходах этих четырех ключевых точек. Наконец, отслеживая время и усилия, затраченные на каждую фазу, мы создаем массив данных. Эти данные могут быть применены при оценке времени и персонала, нужных для выполнения других проектов, расчетах необходимости персонала в течение срока проектирования и контроля продвижения в проектировании.
На
рисунке 1.5 в левой колонке перечислены
рабочие процессы — определение
требований, анализ, проектирование, разработка
и тестирование. Кривые приближенно
изображают (их не следует воспринимать
слишком буквально) объемы рабочих
процессов, выполняемые в каждой
из фаз. Напомним, что каждая фаза обычно
дополнительно подразделяется на итерации
или мини-проекты. Типичная итерация
захватывает все пять рабочих
процессов, как это показано на рис.
1.5.
В ходе фазы анализа и планирования требований хорошая идея превращается в концепцию готового продукта, и создается бизнес-план разработки этого продукта. В частности, на этой фазе должны быть получены ответы на вопросы:
Упрощенная
модель вариантов использования, содержащая
наиболее критичные варианты использования,
дает ответ на первый вопрос. На этом
этапе создается пробный
В ходе фазы проектирования детально описываются большинство вариантов использования и разрабатывается архитектура системы. Между архитектурой системы и системой имеется прямая и неразрывная связь. Поясним это на простейшем примере: архитектура подобна скелету, обтянутому кожей, но с минимальным количеством мышц (программ) между ними. Для того чтобы это создание могло совершать хотя бы простейшие движения, ему понадобится немало дополнительных мышц. Система, в отличие от архитектуры, — это полноценное тело, со скелетом, кожей и мышцами.
Информация о работе Унифицированный процесс разработки программного обеспесчения