Скачать 121.9 Kb.
|
Лекция 11. Технология создания программного обеспечения. Rational Unified Process (RUP)Основные определения: Технология создания ПО (ТС ПО) – это упорядоченная совокупность взаимосвязанных технологических процессов в рамках ЖЦ ПО. Технологический процесс – это совокупность взаимосвязанных технологических операций. Технологическая операция – это основная единица работы, выполняемая определенной ролью, которая:
Рабочий продукт – информационная или материальная сущность, которая создается, модифицируется или используется в некоторой технологической операции (модель, документ, код, тест и т.п.). Роль – определение поведения и обязанностей отдельного лица или группы лиц в среде организации-разработчика ПО, осуществляющих деятельность в рамках некоторого технологического процесса и ответственных за определенные рабочие продукты. Руководство – практическое руководство по выполнению одной или совокупности технологических операций. Руководства включают методические материалы, инструкции, нормативы, стандарты и критерии оценки качества рабочих продуктов. И нструментальное средство (CASE-средство) – программное средство, обеспечивающее автоматизированную поддержку деятельности, выполняемой в рамках технологических операций. Основным требованием, предъявляемым к современным ТС ПО, является их соответствие стандартам жизненного цикла (ЖЦ) ПО и оценкой технологической зрелости организаций-разработчиков (ISO 12207, ISO 9000, CMM и др.). Согласно этим нормативам, ТС ПО должна поддерживать полный набор процессов ЖЦ, к которым относятся:
Полнота поддержки процессов ЖЦ ПО должна поддерживаться комплексом инструментальных средств (CASE-средств). Также есть ряд других требований:
В качестве примера ТС ПО рассмотрим Rational Unified Process (RUP). R UP является развитием процесса разработки, принятого в компании Ericsson в 70-х–80-х годах XX века. Эта модель была создана Джекобсоном (Ivar Jacobson), впоследствии, в 1987, основавшим собственную компанию Objectory AB именно для развития технологического процесса разработки ПО как отдельного продукта, который можно было бы переносить в другие организации. После вливания Objectory в Rational в 1995 разработки Джекобсона были интегрированы с работами Ройса (Walker Royce), Крачтена (Philippe Kruchten) и Буча (Grady Booch), а также с развивавшимся параллельно универсальным языком моделирования (Unified Modeling Language, UML). RUP в значительной степени соответствует указанным выше требованиям. Ее основными принципами являются:
На рисунке показано общее представление RUP в двух измерениях («диаграмма с горбами»):
Динамический аспект Согласно технологии RUP, ЖЦ ПО разбивается на отдельные циклы, в каждом из которых создается новое поколение продукта. Каждый цикл, в свою очередь, разбивается на четыре последовательные стадии: начальная стадия (inception); стадия разработки (elaboration); стадия конструирования (construction); стадия ввода в действие (transition). Р ис. Общее представление RUP Каждая стадия завершается в четко определенной контрольной точке (milestone). В этот момент времени должны достигаться важные результаты и приниматься критически важные решения о дальнейшей разработке. Первыми двумя стадиями являются начальная стадия проекта и разработка. Во время начальной стадии вырабатывается бизнес-план проекта, определяется, сколько приблизительно он будет стоить и какой доход принесет. Определяются также границы проекта, и выполняется некоторый начальный анализ для оценки размеров проекта. Результатами начальной стадии являются:
На стадии разработки выявляются более детальные требования к системе, выполняется высокоуровневый анализ предметной области и проектирование для построения базовой архитектуры системы, создается план конструирования и устраняются наиболее рискованные элементы проекта. Результатами стадии разработки являются:
Стадия разработки занимает около пятой части общей продолжительности проекта. RUP представляет собой итерационный и пошаговый процесс разработки, в котором программное обеспечение разрабатывается и реализуется по частям. На стадии конструирования построение системы выполняется путем серии итераций. Каждая итерация является своего рода мини-проектом. На каждой итерации для конкретных вариантов использования выполняются анализ, проектирование, кодирование, тестирование и интеграция («мини-каскад»). Итерация завершается демонстрацией результатов пользователям и выполнением системных тестов для контроля корректности реализации вариантов использования. При итеративной разработке на каждой итерации выполняются все процессы, что позволяет оперативно справляться со всеми возникающими проблемами. Итерации на стадии конструирования являются одновременно инкрементными и повторяющимися. В конце каждой итерации должна выполняться полная интеграция. С другой стороны, интеграция может и должна выполняться еще чаще. Приложения следует интегрировать после выполнения каждой сколько-нибудь значительной части работы. Во время каждой интеграции должен выполняться полный набор тестов. Главная особенность итерационной разработки заключается в том, что она жестко ограничена временными рамками, и сдвигать сроки недопустимо. Смысл таких ограничений – поддерживать строгую дисциплину разработки и не допускать переноса сроков. Результатом стадии конструирования является продукт (бета-версия), готовый к передаче конечным пользователям. Как минимум, он содержит следующее:
Назначением стадии ввода в действие является доводка бета-версии и передача готового продукта в распоряжение пользователей. Данная стадия включает:
На стадии ввода в действие продукт не дополняется никакой новой функциональностью (кроме самого необходимого минимума). Во время нее только вылавливаются ошибки, шлифуется качество. Статический аспект Статический аспект RUP представлен четырьмя основными элементами:
Понятие «роль» (role) определяет поведение и ответственность личности или группы личностей, составляющих проектную команду. Одна личность может играть в проекте много различных ролей. Видом работы конкретного исполнителя понимается элементарная работа – технологическая опреация, выполняемая им. Дисциплина (discipline) соответствует понятию технологического процесса (или процесса ЖЦ) и представляет собой последовательность работ, приводящую к получению значимого результата. В рамках RUP определены шесть основных дисциплин:
и три вспомогательных:
Можно видеть, что процессов ЖЦ в RUP меньше, чем в стандарте ISO 12207. например, отсутствует сопровождение. По большей части, содержание основных дисциплин мы рассмотрели на предыдущих лекциях. Повторим кратко. Задачи построения бизнес-моделей – понять предметную область или бизнес-контекст, в которых должна будет работать система, и убедиться, что все заинтересованные лица понимают его одинаково, осознать имеющиеся проблемы, оценить их возможные решения и их последствия для бизнеса организации, в которой будет работать система. В рамках этой дисциплины создаются следующие рабочие продукты:
Полученные модели служат основой для моделей требований и анализа. Подробно дисциплина рассматривалась на лекции «Моделирование бизнес-процессов». Задачи определения требований – понять, что должна делать система, и убедиться во взаимопонимании по этому поводу между заинтересованными лицами, определить границы системы и основу для планирования проекта и оценок затрат ресурсов в нем. Требования принято фиксировать в виде модели вариантов использования и различных документов: описаний вариантов использования, концепции системы, глоссария системы, дополнительной спецификации, отражающей нефункциональные требования. Подробно дисциплина рассматривалась на лекции «Требования к программному обеспечению». Задачи анализа и проектирования – выработать архитектуру системы на основе требований, убедиться, что данная архитектура может быть основой работающей системы в контексте ее будущего использования. В результате должна появиться модель проектирования, включающая в себя диаграммы классов системы, диаграммы ее пакетов (подсистем), диаграммы взаимодействия между объектами в ходе реализации вариантов использования, диаграммы состояний для отдельных объектов и диаграммы деятельности, описывающие методы реализации операций некоторых классов, а также модель (диаграмму) развертывания и документ – описание архитектуры. Подробное рассмотрение дисциплины см. в лекциях 7, 8 и 9. Дисциплина реализации решает следующие задачи – определить структуру исходного кода системы, разработать код ее компонентов и протестировать их, интегрировать систему в работающее целое. Она включает в себя:
Реализацию архитектуры осуществляет архитектор. Заключается она в трассировке проектных классов, пакетов и подсистем в компоненты и установлении связей (зависимостей) между компонентами. План сборки описывает функциональность, которая должна быть реализована в билде (сборке) и те компоненты, которые входят в билд. Планы составляет системный интегратор. За реализацию кода отвечает инженер по компонентам. Покомпонентное тестирование – это раздельное тестирование компонент системы. Осуществляет его инженер по компонентам путем тестирования спецификации («черный ящик») и тестирования структуры («белый ящик»). Дисциплина тестирования решает следующие задачи – найти и описать дефекты системы (проявления недостатков ее качества), оценить ее качество в целом, оценить выполнены или нет гипотезы, лежащие в основе проектирования, оценить степень соответствия системы требованиям. Она включает в себя:
Тестовый вариант включает входные данные, условия выполнения отдельных шагов и корректные ответы системы для всякого шага, на котором ответ системы можно наблюдать. С вариантом тестирования связан один или более тестовых сценариев. Тестовый сценарий – способ выполнения одного или нескольких тестовых наборов в рамках тестового варианта. Выполняется вручную или автоматически. Тестовые варианты и сценарии разрабатываются инженерами по тестированию. Некоторые тестовые варианты предназначены для интеграционного тестирования, они проверяют целостность сборки, т. е. правильность взаимодействия компонент, вошедших в сборку. За тестирование целостности отвечает тестировщик целостности. Другие тестовые варианты используются при системном тестировании – проверке правильности работы системы в целом. За него отвечает системный тестировщик. Помимо этого применяются другие виды тестирования:
Дисциплина развертывания решает следующие задачи – установить систему в ее рабочем окружении и оценить ее работоспособность на том месте, где она должна будет работать. Управление конфигурациями и изменениями решает следующие задачи – определение элементов, подлежащих хранению в репозитории проекта и правил построения из них согласованных конфигураций, поддержание целостности текущего состояния системы, проверка согласованности вносимых изменений. Управление проектом решает следующие задачи – планирование, управление персоналом, обеспечение взаимодействия на благо проекта между всеми заинтересованными лицами, управление рисками, отслеживание текущего состояния проекта. Создание инфраструктуры решает следующие задачи – подстройка процесса под конкретный проект, выбор и замена технологических инструментов, используемых в проекте. RUP опирается на интегрированный комплекс инструментальных средств, обеспечивающий поддержку всех процессов жизненного цикла. Литература к лекции 11
|
Проектирование по в Case-средстве rational rose Все лабораторные работы посвящены выполнению учебного проекта создания системы регистрации для учебного заведения в пакете Rational... | Томский государственный университет ... | ||
Томский государственный университет ... | Методические рекомендации по установке и использованию стандартного... Успешное внедрение и эффективное использование сбппо в образовательной деятельности общеобразовательного учреждения зависит от создания... | ||
2 2 Ключевые вопросы сопровождения программного обеспечения 152 Программная инженерия и сущность инженерного подхода к созданию программного обеспечения 9 | Название История Обучающий курс «Технология быстрого восстановления программного обеспечения в оу» | ||
Лекция Компьютерные слайды как Лекция Компьютерные слайды как средство виртуальной наглядности. Технология создания дидактического компьютерного материала в программе... | Автоматизированное проектирование информационных систем с использованием... Цель и содержание работы: изучение основных этапов проведения проектирования в Rational Rose; изучение интерфейса Rational Rose... | ||
Уроки русского языка 5-9 кл Обучающий курс. Технология быстрого восстановления программного обеспечения в оу | Название учебного пособия Пнпо обучающий курс «Технология быстрого восстановления программного обеспечения» | ||
Рабочая программа учебной дисциплины технологии разработки программного обеспечения Охватывает данный подход? Какие модели используются в качестве функциональных спецификаций при структурном подходе? Какие характеристики... | Тесты по русскому языку. Егэ. Русский язык Обучающий курс. Технология быстрого восстановления программного обеспечения в оу | ||
Электронные образовательные ресурсы в маоу «Троицкая сош»: Диски сд Обучающий курс. Технология быстрого восстановления программного обеспечения в оу | Название Административное управление образовательным учреждением Приоритетный национальный проект Образование (технология быстрого восстановления программного обеспечения) | ||
Понятие программы, программного обеспечения. Классификация программного... Понятие программы, программного обеспечения. Классификация программного обеспечения | Удк 624. 139 Технология изготовления оболочки противопучинной термоусаживаемой Использование интерактивной доски Smart Board и программного обеспечения Notebook |