В.В. Кулямин - Технологии программирования. Компонентный подход (1133554), страница 13
Текст из файла (страница 13)
Разработка начинается с выделениявариантов использования и на каждом шаге контролируется степенью приближения к ихреализации.• Основным решением, принимаемым в ходе проекта, является архитектурарезультирующей программной системы. Архитектура устанавливает набор компонентов, изкоторых будет построено ПО, ответственность каждого из компонентов (т.е.
решаемые имподзадачи в рамках общих задач системы), четко определяет интерфейсы, через которыеони могут взаимодействовать, а также способы взаимодействия компонентов друг сдругом.Архитектура является одновременно основой для получения качественного ПО и базой дляпланирования работ и оценок проекта в терминах времени и ресурсов, необходимых длядостижения определенных результатов. Она оформляется в виде набора графическихмоделей на языке UML.• Основой процесса разработки являются планируемые и управляемые итерации, объемкоторых (реализуемая в рамках итерации функциональность и набор компонентов)определяется на основе архитектуры.РуководительпроектаСтарт проектаПодготовка средыпроекта и итерацийКонтроль иуправлениеИнженер попроцессуПланированиепроекта и итерацийРуководительпроектаАнализ задачпроектаАнализ потребностейзаинтересованных лицОпределениеконцепции системыРуководительпроектаОценка результатовитерацийСистемныйаналитикСистемныйаналитикСистемныйаналитикОпределениевозможных архитектурАрхитектор ПООпределение методовтестированияТестировщикиРисунок 7.
Пример хода работ на фазе начала проекта.RUP выделяет в жизненном цикле на 4 основные фазы, в рамках каждой из которых возможнопроведение нескольких итераций. Кроме того, разработка системы может пройти через несколькоциклов, включающих все 4 фазы.1. Фаза начала проекта (Inception)Основная цель этой фазы — достичь компромисса между всеми заинтересованнымилицами относительно задач проекта и выделяемых на него ресурсов.На этой стадии определяются основные цели проекта, руководитель и бюджет, основныесредства выполнения — технологии, инструменты, ключевые исполнители. Также,возможно, происходит апробация выбранных технологий, чтобы убедиться в возможностидостичь целей с их помощью, и составляются предварительные планы проекта.36На эту фазу может уходить около 10% времени и 5% трудоемкости одного цикла.Пример хода работ показан на Рис.
7.Инженер попроцессуПодготовка средыдля итерацийПрограммистыКонтроль иуправлениеУточнениезадач системыПоддержка средыОтработкаизмененийПланированиепроекта и итерацийАнализ возможныхархитектурСистемныйаналитикАрхитекторПОРуководительпроектаРазработкакомпонентовАнализ эффективноститестированияУточнениеархитектурыТестированиеи оценкаТестировщикиРуководительпроектаОценка результатовитерацийРисунок 8.
Пример хода работ на фазе проектирования.2. Фаза проектирования (Elaboration)Основная цель этой фазы — на базе основных, наиболее существенных требованийразработать стабильную базовую архитектуру продукта, которая позволяет решатьпоставленные перед системой задачи и в дальнейшем используется как основа разработкисистемы.На эту фазу может уходить около 30% времени и 20% трудоемкости одного цикла.Пример хода работ представлен на Рис.
8.Инженер попроцессуКонтроль иуправлениеПодготовка средыдля итерацийРазработкадокументацииПоддержка средыПланированиепроекта и итерацийОтработкаизмененийОценка результатовитерацийПрограммистыТестированиеи оценкаТестировщикиТехническийписательРуководительпроектаРуководительпроектаРазработкакомпонентовПодготовкаразвертыванияРуководительразвертыванияРисунок 9. Пример хода работ на фазе построения.3. Фаза построения (Construction)Основная цель этой фазы — детальное прояснение требований и разработка системы,удовлетворяющей им, на основе спроектированной ранее архитектуры.
В результатедолжна получиться система, реализующая все выделенные варианты использования.37На эту фазу уходит около 50% времени и 65% трудоемкости одного цикла.Пример хода работ на этой фазе представлен на Рис. 9.4. Фаза внедрения (Transition)Цель этой фазы — сделать систему полностью доступной конечным пользователям.
Наэтой стадии происходит развертывание системы в ее рабочей среде, бета-тестирование,подгонка мелких деталей под нужды пользователей.На эту фазу может уходить около 10% времени и 10% трудоемкости одного цикла.Пример хода работ представлен на Рис. 10.Инженер попроцессуПодготовка средыдля итерацийПрограммистыКонтроль иуправлениеПоддержка средыРазработкадокументацииРаз/доработкакомпонентовНетПланированиепроекта и итерацийОтработкаизмененийТехническийписательТестированиеи оценкаРуководительпроектаИнтеграцияРуководительразвертыванияРуководительпроектаОценка результатовитерацийДаДостаточноекачество?ТестировщикиТестированиеи оценкаДостаточноекачество?НетДаСледующаяитерацияПодготовкапродуктаКонец проектаРисунок 10.
Пример хода работ на фазе внедрения.Артефакты, вырабатываемые в ходе проекта, могут быть представлены в виде баз данных итаблиц с информацией различного типа, разных видов документов, исходного кода и объектныхмодулей, а также моделей, состоящих из отдельных элементов. Основные артефакты и потокиданных между ними согласно RUP изображены на Рис. 11.Наиболее важные с точки зрения RUP артефакты проекта — это модели, описывающиеразличные аспекты будущей системы.
Большинство моделей представляют собой наборыдиаграмм UML. Основные используемые виды моделей следующие.• Модель вариантов использования (Use-Case Model).Эта модель определяет требования к ПО — то, что система должна делать — в виде наборавариантов использования. Каждый вариант использования задает сценарий взаимодействиясистемы с действующими лицами (actors) или ролями, дающий в итоге значимый для нихрезультат. Действующими лицами могут быть не только люди, но и другие системы,взаимодействующие с рассматриваемой. Вариант использования определяет основной ходсобытий, развивающийся в нормальной ситуации, а также может включать несколькоальтернативных сценариев, которые начинают работать только при специфическихусловиях.38Запросызаинтересованных лицКонцепцияСписок рисковБизнес планСловарьПлан разработкиПОПланразвертыванияМодель вариантовиспользованияОписаниеархитектуры ПОДополнительныетребованияМодельпроектированияМодель анализаПлантестированияМодельреализацииПроцессразработкиРисунок 11.
Основные артефакты проекта по RUP и потоки данных между ними.Модель вариантов использования служит основой для проектирования и оценки готовностисистемы к внедрению.Примером варианта использования может служить сценарий действий клиента Интернетмагазина по отношению к сайту этого магазина, в результате которых клиент заказываеттовар, например, книги. Такой вариант использования можно назвать «Заказ товара». Еслинас интересует сайт магазина только как программная система, результатом можно считатьто, что запись о сделанном заказе занесена в базу данных, а оператору заказов отправленоэлектронное письмо, содержащее всю информацию, которая необходима для того, чтобыможно было сформировать заказ. В нее входит контактная информация покупателя,идентификатор заказа и, например, список заказанных книг с их ISBN, их количество длякаждого наименования и номера партий для удобства их поиска на складе.
При этомвыполнение остальной части варианта использования — это дело других составляющихсистемы под названием «Интернет-магазин». Эта работа может включать звонок илиписьмо клиенту и подтверждение, что именно он сделал заказ, вопрос об удобных для негоформе, времени и адресе доставки и форме оплаты, формирование заказа, передача его длядоставки курьеру, доставка и подтверждение получения заказа и оплаты.
В нашем примередействующими лицами являются клиент, делающий заказ, и оператор заказов.Альтернативные сценарии в рамках данного варианта могут выполняться, если, например,заказанного пользователем товара нет на складе или сам пользователь находится на плохомсчету в магазине из-за неоплаченных прежних заказов, или, наоборот, он являетсяпривилегированным клиентом или представителем крупной организации.39Заказ товараКлиентОператорзаказовРисунок 12. Пример варианта использования и действующих лиц.•Модель анализа (Analysis Model).Она включает основные классы, необходимые для реализации выделенных вариантовиспользования, а также возможные связи между классами. Выделяемые классыразбиваются на три разновидности — интерфейсные, управляющие и классы данных.
Этиклассы представляют собой набор сущностей, в терминах которых работа системы должнапредставляться пользователям. Они являются понятиями, с помощью которых достаточноудобно объяснять себе и другим происходящее внутри системы, не слишком вдаваясь вдетали.Интерфейсные классы (boundary classes) соответствуют устройствам или способамобмена данными между системой и ее окружением, в том числе пользователями. Классыданных (entity classes) соответствуют наборам данных, описывающих некоторыеоднотипные сущности внутри системы. Эти сущности являются абстракциямипредставлений пользователей о данных, с которыми работает система.