«Введение в Унифицированный процесс разработки ПО». Лекция № 6. Надо с чего-то начинать. С. Макдак Системный аналитик Найти актеров и варианты использования Планировать тестирование Структурировать модель ВИ Разработать тест Оценить результаты тестирования Инженер по тестированию Определение требований Спецификатор ВИ Тестирование Детализировать варианты использования Интегрировать систему Системный интегратор Реализация Разработать интерфейс пользователя Разработчик GUI Провести тестирование целостности Тестер целостности Проектирование Архитектор Раставить ВИ по приоритетам Анализировать архитектуру Проектировать архитектуру Провести системные тесты Реализовать архитектуру Системный тестор Анализ Аналитик ВИ Разработчик ПО Анализировать вариант использования Анализировать класс Анализировать пакет Проектировать вариант использования Проектировать класс Реализовать класс Проектировать подсистему Реализовать подсистему Реализовать тест Провести тестирование модулей Кит под номером три. Итеративный и инкрементный процесс: Про риски: Разработка ПО, как и любая другая инженерная деятельность, сопряжена с рисками. Риск – это воздействие, которое может привести к потерям или к любому другому ущербу. Риск – это фактор, сущность, элемент или курс, представляющий опасность для разработки, величина которого не определена. Риск – это нечто с определенной вероятностью подвергающее опасности успешность проекта. Примеры рисков в области разработки ПО. А в связи с этим … несколько другой взгляд на вопрос планирования итераций – управляемый рисками. Фаза Начало (Inception). Девиз фазы: Необходимо понять, а что мы собираемся разрабатывать? Мы тут! Начало Проектирование Реализация Тестирование Контрольная точка. Целей ЖЦ. В начале фазы Начало Начальные условия, в которые сопутствуют старту нового проекта, могут быть самыми разнообразными: По состоянию проекта: Хорошая идея и ничего более Новый выпуск существующего продукта. Фаза анализа и планирования может быть абсолютно разной: Простая фаза начала. Тяжелый случай. Вывод: Практически невозможно придумать некоторую единую методику, с помощью которой будут решаться задачи для любой стартовой фазы в любой ситуации. Фаза Начало (Inception). Девиз фазы: Необходимо понять, а что мы собираемся разрабатывать? Методику практически невозможно, а набор рекомендаций можно: Следуем идеологии: в рамках каждой фазы делаем только то, что соответствует целям этой фазы. Наши цели на стартовую фазу: Понять, а что мы, собственно говоря, собираемся разрабатывать? Расставить функции системы по приоритетам. Выявить хотя бы одно возможное решение. Оценить стоимость, сроки и риски связанные с проектом. Решить, какому процессу следовать и какие средства использовать. Все это чуточку подробнее – каждая цель в виде одного абзаца. Фаза Начало (Inception). Девиз фазы: Необходимо понять, а что мы собираемся разрабатывать? Цели чуточку подробнее: Понять, а что мы, собственно говоря, собираемся разрабатывать? Для этого нам нужно определить границы системы (то есть то, что в нее входит, а что нет), уточнить, кому нужна система (сформировать список заинтересованных сторон) и решить, а стоит ли ее в принципе разрабатывать исходя из экономических соображений. Расставить функции системы по приоритетам. Нам необходимо каким-то образом упорядочить множество вариантов использования системы. Определить некоторые варианты использования, которые являются наиболее существенными с точки зрения их привлекательности для пользователя. Существенными станут те, варианты использования, без реализации которых разрабатываемая система просто никому не нужна, в эту категорию попадут так же варианты использования реализация, которых может быть осложнена техническими рисками. Фаза Начало (Inception). Девиз фазы: Необходимо понять, а что мы собираемся разрабатывать? Цели чуточку подробнее (продолжение): Выявить хотя бы одно возможное решение. Нам стоит убедиться, что систему в принципе можно реализовать. Это значит, что нам необходимо определить хотя бы одну потенциальную архитектуру. Оценить стоимость, сроки и риски связанные с проектом. Пока мы все это сделаем достаточно грубо, только для того, чтобы определиться, а стоит ли продолжать работы над этим проектом. Решить, какому процессу следовать и какие средства использовать. Это тот самый момент истины, когда мы начинаем определять тот набор артефактов и те виды деятельности, которые нам в рамках этого проекта понадобятся. Ну и прикидываем, какие средства автоматизации мы будем использовать в нашем процессе. Фаза Начало (Inception). Девиз фазы: Необходимо понять, а что мы собираемся разрабатывать? Итерации в фазе Начало. Причины …: проект новый и достаточно большой, команде в этом случае очень сложно определить границы системы; система абсолютно новая, у нее нет аналогов, и весьма трудно точно определить, что она должна делать; есть множество заинтересованных сторон со сложными взаимоотношениями и сложными взаимными контрактными обязательствами; возникли трудности при определении экономического обоснования или трудности, связанные с определением оптимального баланса между границами проекта и инвестициями в него; существует большое число технологических рисков, которые нужно уменьшить при помощи исследовательских прототипов, или нужно создать прототип для «демонстрации концепции», чтобы получить карт-бланш от спонсоров. Фаза Начало (Inception). Девиз фазы: Необходимо понять, а что мы собираемся разрабатывать? Что делать с начала: Собрать все, что есть; Организовать это то, что есть в некотором удобно варимом виде; Найти тех, кто с этим что-то сможет делать; Попытаться написать артефакт Концепция и увидеть, а чего не хватает для оформления этого артефакта; Раздать задачи по заполнению брешей в Концепции.