Тема: Управление проектом разработки
информационной системы
1. Методология разработки сложных программных систем.. 1
2. Основные принципы организации работы над проектом
3. Методология Rational Unified Process (RUP)
4. Моделирование и проектирование
7. Управление проектами и портфелями
9. Управление конфигурациями и изменениями
10. Автоматизированное тестирование
11. Управление выполнением проекта и документированием
12. IBM Software Development Platform – новый подход к разработке программного обеспечения
13. Инструментальные средства IBM Rational
14. IBM Rational – состав пакетов и краткое описание продуктов
При создании сложного программного обеспечения (ПО) для корпоративных информационных систем (ИС) требуется четко и грамотно организовать весь процесс разработки/заказа ПО – от написания технического задания до внедрения на предприятии и дальнейшего развития этого ПО. Среди основных проблем, возникающих при разработке ПО без использования специальных технологий, можно выделить следующие:
- Разночтения в требованиях. Разработчики и пользователи разговаривают на "разных языках", что не позволяет точно перевести разрозненные неформальные требования в целостную формальную спецификацию системы. В результате трудно создать систему, отвечающую требованиям пользователей. Необходимы постоянные доработки и изменения.
- Отсутствие “чертежей”. Отсутствие проектных спецификаций ("чертежей") на систему приводит к отсутствию структуры и единой концепции системы. Развитие такой системы трудоемко и ведет к дальнейшему росту "хаотичности".
- Документирование постфактум. Трудоемкость документирования в ходе разработки выливается либо в неприемлемые сроки создания точной проектной документации в соответствии с требованиями стандартов, либо в неприемлемое качество документации, что влечет за собой проблематичность последующей модификации ПО ИС.
- Ошибки проектирования. Ошибки, возникающие на этапах анализа и проектирования, часто не удается обнаружить до самого начала внедрения, когда уже стоимость их исправления становится на порядок выше.
- Отсутствие общего контекста проекта. Подсистемы, создаваемые разными группами разработчиков, трудно интегрировать из-за отсутствия или недостаточной проработки общего контекста проекта.
- Обособленность проекта. Информационные системы не переносятся с одной платформы на другую, имеют сложное взаимодействие с внешними системами и являются тяжелыми для последующего развития. В результате разработка нового и изменение существующего программного обеспечения отнимают слишком много времени и средств.
Мировой опыт показывает, что для успешного создания подобного ПО необходимы апробированные современные методологии, опирающиеся на мощные и удобные инструментальные средства. Осуществление таких проектов в заданные сроки с высоким качеством невозможно без применения инженерных методов автоматизации программного производства, т.е. без современных CASE-технологий.
Ведущей методологией, в которой инструментально поддерживаются все этапы жизненного цикла разработки ПО, является методология Rational Unified Process (RUP). Она опирается на проверенные практикой методы анализа, проектирования и разработки ПО, методы управления проектами. RUP обеспечивает прозрачность и управляемость процесса и позволяет создавать ПО в соответствии с требованиями заказчика на момент сдачи ПО, а также в соответствии с возможностями инструментальных средств поддержки разработки.
Ведущие идеологи инструментальной инфраструктуры IBM Rational (Г. Буч, Дж. Рамбо, А. Джекобсон), проанализировав опыт различных проектов в области разработки ИС, выделяют следующие обязательные факторы для успешного ведения любого проекта:
- постоянное взаимодействие с потенциальными пользователями с целью выяснения реальных требований к системе;
- тщательно проработанная архитектура системы, открытая для возможных усовершенствований;
- наличие высококвалифицированных специалистов;
- грамотно подобранный инструментарий;
- определение верного направления работ;
- продуманный процесс разработки, обеспечивающий адаптацию к изменяющимся потребностям бизнеса и требованиям новых технологий;
- высокая степень управляемости проектом и получение достоверной информации по его состоянию в любой момент времени.
При наблюдаемом в настоящее время взрывном росте количества приложений, как для исполнителя, так и для заказчика, необходимо выполнение высококачественных программных проектов быстрее, чем когда бы то ни было.
Программные проекты должны завершаться в ограниченные сроки и при этом оставаться в рабочем состоянии с гарантией качества. Возникает ключевая проблема – необходимо достичь баланса между качеством исполнения и скоростью разработки. Решения IBM Rational помогут Вам преодолеть эту проблему, объединяя лучший опыт и методологии разработки, соответствующие требованиям качества SEI CMM/CMMI, с унифицированными инструментами и сервисом, ускоряющими промышленную разработку ПО.
Итеративная
разработка
Классический подход, широко применявшийся в прошлом и до сих пор часто встречающийся в настоящее время, – разработка программного обеспечения по методу "водопада" (рисунок 1).
Рисунок 1 – Метод "водопада"
При этом подходе разработка ПО движется линейно через стадии анализа требований, дизайна (проектирования), кодирования и тестирования отдельных модулей (компонентов), тестирование сборок и интегрированное тестирование всего конечного продукта. Основная проблема здесь заключается в том, что происходит нарастание риска преждевременного крушения проекта из-за накапливания различных ошибок, допущенных на ранних стадиях проекта. Если только к концу проекта, становится очевидно, что такие ошибки были допущены, то любой возврат к предыдущим стадиям с целью исправления ошибок становится крайне дорогостоящим.
Метод "водопада" не позволяет эффективно выявлять и нивелировать последствия подобных рисков. "Если вы сами активно не атакуете риски, то потом они будут активно атаковать вас” (Том Глиб, IBM Rational).
Эффективной альтернативой методу "водопада" служит итеративный подход (рисунок 2).
Рисунок 2 – Итеративный подход
Основой итеративного подхода является непрерывный анализ выполненных работ, последующее проектирование и физическое воплощение результатов проектирования. Итеративный подход акцентирует работу команды в более предсказуемом и повторяемом направлении.
Основные преимущества итеративного подхода:
- нивелирование воздействия серьезных рисков на ранних стадиях проекта, пока это еще можно сделать с минимальными затратами;
- возможность организовать плодотворную обратную связь с будущими конечными пользователями с целью создания системы, реально отвечающей их потребностям;
- акцент усилий на наиболее важные и критичные направления проекта;
- непрерывное итеративное тестирование конечного продукта, позволяющее оценить успешность всего проекта в целом;
- раннее обнаружение несоответствий между требованиями, моделями и программным кодом;
- более равномерная загрузка участников проекта;
- эффективное использование накопленного опыта;
- реальная оценка текущего состояния проекта и, как следствие, большая уверенность заказчиков и непосредственных участников в его успешном завершении.
Эффективное
управление требованиями
Неизбежной реальностью проектов создания современных ИС, является то, что список требований к системе динамически изменяется в ходе всего жизненного цикла. В любой момент следует ожидать пересмотра и корректировки требований. Более того, непрерывное выявление и уточнение реальных требований к системе – один из путей успешного ведения проекта. На старте проекта практически невозможно наиболее точным образом и в полном объеме определить необходимые требования, за исключением наиболее простых систем.
Рисунок 3 – Управление требованиями
Реализация каждого отдельного требования представляет собой добавление в систему некоторой способности, которой та должна соответствовать.
Процесс управления требованиями охватывает несколько видов деятельности:
- выявление;
- организацию;
- документирование.
Существуют проверенные решения, которые позволяют гарантировать более эффективное ведение проекта, основанное на грамотном управлении требованиями. Они опираются на следующие аспекты:
- организованный подход к управлению требованиями;
- взаимодействие участников проекта на базе выявленных и утвержденных требований;
- ранжирование требований по приоритету, фильтрация их по необходимым параметрам и выявление зависимости между ними для контроля изменений;
- объективная оценка реализованного функционала и полученной производительности;
- раннее предсказание различных несоответствий и расхождений;
- использование инструментальных средств для организации более эффективного процесса управления требованиями.
Компонентный
подход
Компонентный подход при создании ПО крайне важен, т.к. он обеспечивает повторное использование уже существующих компонентов и позволяет эффективно распределить работу между участниками проекта.
Рисунок 4 – Пример использования компонентного подхода
Применение компонентного подхода дает возможность повысить эффективность процесса разработки следующим образом:
- использование компонентов повышает гибкость архитектуры создаваемой системы;
- модульность компонентов позволяет четко определить границы тех изменений, которые требуется внести в систему при ее доработке;
- наличие множества коммерческих компонентов, которые разработаны и протестированы третьими фирмами, а также построены на основе промышленных спецификаций COM+, CORBA, Enterprise Java Beans (EJB) и др., облегчает реализацию и позволяет экономить проектные ресурсы;
- программные компоненты задают естественную основу для конфигурируемости продукта;
- средства визуального моделирования обеспечивают автоматизацию процесса разработки, опирающегося на компонентный подход.
Визуальное
проектирование системы
Модель – это абстрагирование, упрощение реальности, позволяющее описать систему в предопределенном разрезе. Модели формируются для выявления того, какая система в конечном итоге должна быть построена.
Рисунок 5 – Визуальное моделирование
Используя универсальный язык моделирования UML (Unified Modeling Language), участники проекта могут эффективно взаимодействовать друг с другом. Продуманное моделирование в различных его проявлениях предоставляет следующие возможности:
- однозначное описание функционального поведения системы с помощью прецедентов и сценариев;
- спецификация и анализ технических особенностей системы с помощью моделей;
- ранний акцент на построение гибкой и надежной архитектуры;
- сокрытие излишней детализации;
- выявление и исключение на ранних стадиях проекта ошибок проектирования.
Гарантия
качества продуктов
Чем раньше участники проекта начинают заботиться о качестве разрабатываемой системы, тем дешевле им это обходится. Непрерывный контроль качества реализуется с помощью тестирования. Данный процесс предполагает создание тестов для каждого ключевого сценария, реализуемого в системе. Качество системы проявляется, прежде всего, в количестве успешных и неуспешных сценариев, что как раз и выявляется в процессе тестирования. Тестирование и разработка новых тестовых сценариев проводятся на каждой итерации проекта. Наборы сценариев и программных скриптов дорабатываются итеративно вместе с создаваемым продуктом.
Непрерывный контроль качества приводит к следующим позитивным моментам:
- оценка состояния проекта приобретает большую объективность, т. к. оценивается реальное функционирование системы, а не качество проектной документации;
- оценка проекта позволяет раскрыть несоответствия в требованиях, моделях и реализации;
- тестирование акцентирует внимание на тех сторонах работы системы, которые имеют наибольшую важность и повышенный риск;
- дефекты выявляются на ранних стадиях, что снижает затраты на их устранение;
- автоматизированное тестирование обеспечивает высокий уровень функциональности системы, надежности и производительности.
Контроль
изменений
Для любого проекта характерна задача по организации работы между различными людьми и их группами. Отсутствие продуманного управления процессом разработки неизбежно приводит к возникновению хаотичности проекта и снижению его эффективности. Основой для объективного мониторинга проекта служит налаженный контроль изменений, который позволяет своевременно реагировать на возникающие проблемы. Контроль изменений приводит к следующему:
- деятельность по изменению требований становится предсказуемой и повторяемой;
- запросы на изменения формируют основу четкого и налаженного взаимодействия между участниками проекта;
- статистика по запросам на изменения создает отличную базу для оценки состояния проекта в любой момент времени;
- все изменения проекта находятся под контролем;
- с помощью контролируемых изменений строится система, адекватно отвечающая потребностям заказчиков.
Ведущей методологией, в которой инструментально поддерживаются все этапы жизненного цикла разработки ПО, является методология Rational Unified Process (RUP). Она опирается на проверенные практикой методы анализа, проектирования и разработки ПО, методы управления проектами. RUP обеспечивает прозрачность и управляемость процесса и позволяет создавать ПО в соответствии с требованиями заказчика на момент сдачи ПО, а также в соответствии с возможностями инструментальных средств поддержки разработки.
В основе методологии RUP, как и многих других программных методологий, объединяющих инженерные методы создания ПО, лежит "пошаговый подход". Он определяет этапы жизненного цикла, контрольные точки, правила работ для каждого этапа и, тем самым, упорядочивает проектирование и разработку ПО. Для каждого этапа жизненного цикла методология задает:
- состав и последовательность работ, а также правила их выполнения;
- распределение полномочий среди участников проекта (роли);
- состав и шаблоны формируемых промежуточных и итоговых документов;
- порядок контроля и проверки качества.
RUP как
методология
|
Методология RUP позволяет объединить проектную команду, предоставляя в ее распоряжение проверенные мировой практикой лучшие подходы к разработке ИС. К ним относятся такие процессы жизненного цикла создания ПО, как управление проектами, бизнес-моделирование, управление требованиями, анализ и проектирование, тестирование и контроль изменений. Внедрение RUP в организации способствует выработке качественных внутрикорпоративных стандартов и повышению общей культуры разработки.
Рисунок 6 – Rational
Unified Process
Основа RUP – итеративный процесс разработки. В условиях активно развивающегося мирового бизнеса практически невозможно создавать современные сложные программные системы последовательно, т. е. сначала выявлять все проблемы, затем принимать проектные решения, потом формировать программное обеспечение и, наконец, проверять полученное изделие. Итеративный подход позволяет улучшать понимание проблем на основе последовательных усовершенствований и конкретизировать их в эффективных решениях. Этот подход обеспечивает большую гибкость при изменяющихся требованиях и тактических коррективах в бизнес-целях, что позволяет более эффективно и заблаговременно идентифицировать и снижать проектные риски.
Rational Unified Process – управляемый процесс. Итеративный подход предполагает управление требованиями и изменениями, чтобы между всеми участниками проекта обеспечивать единое понимание ожидаемых функциональных возможностей, требуемый уровень качества, наилучшее управление затратами и графиками выполнения работ.
Rational Unified Process – процесс создания и физического воплощения визуальных моделей. RUP фокусирует внимание не на создании большого количества бумажных документов, а на развитии и применении визуальных моделей – семантически богатых представлений разрабатываемой ИС. RUP сосредотачивает внимание на разработке и дальнейшем развитии надежной и гибкой архитектуры, которая облегчает параллельную разработку, минимизирует необходимость изменений, увеличивает возможность многократного использования и надежность эксплуатации системы. Подобная архитектура применяется для планирования использования программных компонентов и управления их развитием.
Rational Unified Process – процесс управления действиями с помощью прецедентов, определяющих функционал системы. Понятия прецедентов и сценариев работы способствуют эффективному управлению технологическим маршрутом от бизнес-моделирования и требований вплоть до испытаний. Они обеспечивают связанные и доступные для анализа направления разработки и развертывания системы.
Rational Unified Process поддерживает объектно-ориентированную технологию. Моделирование по методологии RUP является объектно-ориентированным и базируется на понятиях объектов, классов и зависимостей между ними. Эти модели, подобно многим другим техническим искусственным объектам (артефактам), в качестве единого стандарта для организации взаимодействия участников проекта используют Unified Modelling Language™ (UML) – универсальный язык моделирования.
Rational Unified Process поддерживает компонентно-ориентированный подход. Компоненты – это нетривиальные модули или подсистемы, которые выполняют конкретную функцию и могут быть использованы многократно. Как правило, компоненты соответствуют одной из промышленных спецификаций, таких как CORBA, COM/DCOM, ActiveX, Enterprise Java Beans и др.
Rational Unified Process – адаптируемый и конфигурируемый процесс. Опыт единичного проекта, даже успешно завершенного, вряд ли подойдет для создания ПО во всех случаях и условиях. Но способность RUP к адаптации подойдет как маленьким группам разработчиков, так и большим организациям. RUP содержит рекомендации по конфигурированию процесса для удовлетворения потребностей практически любых компаний и их подразделений.
Rational Unified Process поддерживает объективно осуществляемое управление качеством. Оценка качества всех работ, выполняемых любыми участниками проекта, использует объективные метрики и критерии. Методология RUP создавалась с прицелом на поддержку управления качеством в рамках требований SEI CMM/CMMI.
Структура
жизненного цикла проекта
Структуру жизненного цикла проекта, выполняемого по технологии RUP удобно рассматривать на координатной плоскости. При этом по горизонтальной оси отложено время, а по вертикальной – основные деятельности, которые обычно выполняются в ходе любого проекта, претендующего на статус успешного.
Рисунок 7 – Процессы и фазы жизненного цикла проекта
Время отражает динамический аспект жизненного цикла проекта, выраженный в терминах циклов, фаз, итераций и контрольных точек, которые разделяют две отдельные фазы. Вертикальная ось отражает статический аспект проекта. Он описывается в терминах процессов, артефактов (единица информации, создаваемая или модифицируемая в ходе любого процесса) и ролей (ответственность за адекватное выполнение той или иной деятельности в процессе). RUP организует выполнение проекта по фазам, каждая из которых состоит из одной или нескольких итераций. При итеративном подходе объем работ по каждому процессу варьируется в течение всего жизненного цикла. Контрольные точки в конце фаз позволяют оценить, насколько успешной была предыдущая фаза и насколько успешен весь проект в целом. RUP определяет следующие основные процессы:
- моделирование бизнес-процессов;
- управление требованиями;
- анализ и проектирование;
- реализация;
- тестирование;
- развертывание;
- конфигурационное управление и управление изменениями;
- управление проектом;
- управление средой.
Моделирование бизнес-процессов применяется с тем, чтобы разобраться в структуре исследуемой предметной области, обеспечить единство понимания основных автоматизируемых процессов среди всех участников проекта и определить высокоуровневые требования, которые должны быть реализованы в ходе проекта.
Управление требованиями позволяет прийти к соглашению с заказчиками и конечными пользователями, определить, что должна уметь делать создаваемая система, предоставить более четкие инструкции участникам проекта о возможностях системы, создать базу для успешного планирования работ в проекте и оценки его статуса в любой момент жизненного цикла.
Анализ и проектирование служат для последовательного преобразования выявленных требований к системе в спецификации особого вида, которые описывают, как следует конкретно реализовать конечный продукт. Следует при этом делать различия между анализом и проектированием. Основное из них состоит в том, что спецификации анализа не зависят от конкретной платформы и технологии, для которой осуществляется создание ИС. А спецификации проектирования являются точным представлением проектируемой системы, часто позволяя автоматизировать процесс генерации на их основе программного кода.
Реализация необходима для выявления порядка организации программного кода в терминах отдельных подсистем, преобразования исходного кода в выполняемые компоненты, тестирования созданных компонентов и интеграции отдельных компонентов в подсистемы и системы.
Тестирование позволяет определять и контролировать качество создаваемых продуктов, следить за тем, насколько качественно осуществлена интеграция компонентов и подсистем, все ли требования к системе реализованы и все ли выявленные ошибки устранены до того, как система будет развернута на оборудовании конечного пользователя.
Развертывание является процессом, в ходе которого осуществляется доставка разрабатываемого продукта к конечному пользователю. В ходе данного процесса производится новый выпуск системы, распространение ПО, его установка на стороне конечного пользователя, обучение последнего навыкам эффективной работы с поставленным ПО, предоставление услуг по технической поддержке, бета-тестирование и т. п.
Конфигурационное управление и управление изменениями позволяет организовать эффективную работу с артефактами проекта, контролировать и управлять доступом к ним, вести историю изменений, обеспечить эффективное взаимодействие участников проекта, как в простых командах, так и в распределенных, находящихся на большом удалении друг от друга.
Управление проектом включает в себя непосредственное формирование условий для эффективного хода всего проекта, определение руководств и руководящих принципов для планирования, формирования команды и мониторинга проекта, выявление и управление рисками, организацию работы участников проекта, формирование бюджета, планирование фаз и итераций.
Управление средой позволяет осуществить поддержку всех участников проекта. В эту поддержку входят выбор инструментария и его приобретение, настройка и установка, конфигурирование процесса, доработка и адаптация методологии, используемой для ведения проекта, обучение.
Важнейшие
акценты RUP
Главная цель любой организации, занимающейся созданием информационных систем – работать эффективнее, а значит, быстрее создавать более качественные продукты и получать бизнес-преимущества от успешного ведения проектов. Внедрение передовой методологии, подобной RUP, позволяет гарантировать выработку и дальнейшее развитие в организации необходимых для этого навыков.
Однако внедрение методологии – не столь уж простой процесс, как это может показаться на первый взгляд. Очень важно, стремясь к более эффективному ведению проектов, не разрушить то, что уже достигнуто. Особенность методологии RUP в том, что она может быть настроена и адаптирована в соответствии с особенностями и требованиями организации-разработчика, при этом варианты внедрения RUP могут варьироваться в зависимости от конкретных условий.
Для упрощения перехода к методологии RUP допускается постепенное его внедрение. Но при этом RUP акцентирует внимание на нескольких важнейших элементах, без которых сложно гарантировать успех в проекте.
- Общее видение проекта. Сюда относятся первоначальный анализ будущего проекта, организация единого словаря для общения и ведение спецификации требований. Это важно потому, что участники проекта должны четко понимать цели проекта.
- Бизнес-перспективы проекта. Важны потому, что в основном проект выполняется для реализации каких-либо бизнес-целей. И если такие цели существуют, то имеет смысл начинать процесс разработки. Это не относится напрямую к научным и исследовательским проектам, т. к. их финансирование имеет иные корни.
- План работ. Позволяет определить ресурсы проекта, привязать их к задачам и рассчитать бюджет проекта. Таким образом, имеется возможность заранее спрогнозировать, насколько выгодно вести конкретный проект и какие могут быть при этом затраты.
- Анализ рисков. Важен потому, что обычно намного легче и дешевле выявить и устранить возможные проблемы заранее, чем делать это уже на поздних стадиях проекта.
- Гибкая и надежная архитектура системы. Гарантирует, что проект не потерпит крушение задолго до его завершения, что разработчики смогут развивать данную систему при изменении условий и правил ведения бизнеса на стороне заказчика.
- Управление запросами на изменения. Позволяет организовать эффективную работу и взаимодействие участников проекта. Возрастает контроль за качеством выполнения задания любого уровня, отслеживанием устранения ошибок и обработки предложений по дальнейшему развитию ИС.
- Тестирование. Дает возможность гарантировать высокое качество продукта, а, следовательно, не даст заказчику повод усомниться в возможностях организации-разработчика.
- Акцент на самом продукте. Крайне важен, потому что продукт – конечная цель любого проекта. Надо помнить в любой момент, что важны не модели или многочисленные документы проекта сами по себе, а именно конечный продукт. Все остальное создается только с тем, чтобы как можно скорее создать качественный продукт.
- Документы для поддержки пользователя. Необходимы, т. к. без них многие сильные стороны созданного продукта могут остаться неизвестными и недоступными.
- Измерение проекта. В любой момент времени необходимо, чтобы вовремя реагировать на возможные отклонения проекта от бюджета и на перерасход ресурсов.
Моделирование представляет собой один из ключевых процессов создания программного обеспечения, направленный на решение следующих задач:
- снижение сложности понимания предметной области;
- понимание структуры и динамики предметной области, в которой должна быть развернута система (целевой организации);
- понимание текущих проблем целевой организации и определение потенциальных возможностей усовершенствования;
- обеспечение общего понимания целевой предметной области заказчиками, конечными пользователями и разработчиками;
- выявление системных требований, необходимых для автоматизации предметной области.
Область моделирования охватывает следующие дисциплины:
- бизнес-моделирование предметной области, которая рассматривается как потенциальная для внедрения процессов автоматизации;
- функциональное моделирование системы, которая позволяет автоматизировать некоторую часть исследуемой предметной области;
- анализ и проектирование системы, которые позволяют сформировать детальное представление системы на уровне конкретных средств реализации.
Многие компании добились большей эффективности в процессе создания сложных программных систем благодаря средствам моделирования начального уровня, которые на протяжении ряда лет предлагались в составе продуктов IBM Rational и хорошо знакомы сообществу разработчиков. Имея невысокую стоимость в расчете на одного пользователя, они позволили бизнес-аналитикам эффективно описывать процессы и данные. Однако, по мере изменения и усложнения бизнес-требований, появилась потребность в использовании более развитых и совершенных средств моделирования и проектирования, которые отражали бы бизнес-ориентированный подход к процессу создания программных систем.
Для выполнения этих требований, IBM существенно расширило возможности традиционных средств моделирования, таких как IBM Rational Rose и IBM Rational XDE Modeler, новыми инструментами в составе пакета IBM Rational Software Architect (RSA). Одним из преимуществ новых средств моделирования является возможность автоматизированного преобразования моделей, позволяющая быстро переходить от высокоуровнего моделирования к разработке и тестированию приложений. Это позволяет более эффективно использовать шаблоны проектирования (patterns), стандарты и лучшие проектные решения для создания высококачественного кода и повышения общей эффективности проектов разработки программных систем. Базовые возможности новой линейки средств графического моделирования, дизайна и проектирования реализованы в продукте IBM Rational Software Modeler. IBM Rational Software Architect включает всю функциональность IBM Rational Software Modeler, дополняя ее возможностями автоматизированного преобразования моделей и поддержкой C++ в дополнение к Java.
Кроме того, новые средства моделирования в линейке IBM исключают риски использования нестандартной технологии моделирования, жестко привязанной к технологии конкретного поставщика. Решения IBM Rational Software Architect построены на базе Eclipse – платформы с открытым исходным кодом, написанной на Java, что дает возможность быстро наращивать объем функциональных возможностей предлагаемых решений в соответствии с конкретными требованиями проекта. Eclipse поддерживает использование модулей расширения независимых разработчиков (plug-in), что также способствует созданию оптимальной среды моделирования приложений как в среде Windows, так и в среде Linux.
Специализированные средства моделирования позволяют автоматизировать повторяющиеся действия, тем самым повышая не только продуктивность, но и зрелость процесса разработки программного обеспечения в целом. Во многом этому способствует использование стандартизованного языка моделирования Unified Modeling Language (UML). Однако, как показывает опыт, текущей версии UML были присущи определенные ограничения, в частности, в сфере моделирования структуры и поведения сложных систем. Новые средства моделирования IBM поддерживают UML версии 2 (UML 2), в которой предлагаются структурированные классы, усовершенствованные блок-схемы, диаграммы действий и диаграммы конечных автоматов, что позволяет гораздо более точно отображать архитектуру будущих программных систем.
Кроме того, средства моделирования в составе IBM Rational Software Architect поддерживают Model Driven Architecture (MDA) – новую инициативу Object Management Group (OMG) в области описания управления процессами, благодаря которой становится возможным определять несколько уровней моделей, связанных с заданными пользователем преобразованиями между моделями, для более четкого разделения аспектов жизненного цикла. Новые средства проектирования IBM поддерживают как последнюю версию этого языка – UML 2.0, так и более ранние реализации.
Для поддержки инструментальных средств и платформ, не вошедших в пакет IBM Rational Software Architect, используются средства моделирования из пакета IBM Rational Suite. При совместном использовании пакетов IBM Rational Professional Bundle и IBM Rational Suite возможен импорт моделей из IBM Rational Rose в RSA для реализации моделей на платформе J2EE.
Возможности инструментального средства IBM Rational XDE Modeler включены в инструментальные средства нового пакета RSA. Однако, если в организации уже наработано большое количество скриптов для IBM Rational XDE Modeler, то, из-за возможной трудоемкости переноса имеющихся скриптов на новые инструментальные средства, может оказаться целесообразным продолжение использования IBM Rational XDE Modeler наряду с новой линейкой инструментальных средств RSA.
Кроме того, линейка средств моделирования IBM включает также IBM WebSphere® Business Integration Modeler (WBI Modeler) – средство моделирования бизнес-процессов, которое входит в пакет для бизнес-интеграции IBM WebSphere. WBI Modeler наряду с новыми средствами IBM Rational является частью интегрированной платформы разработки на основе Eclipse. По этой причине мы посчитали целесообразным также включить его описание в данный раздел.
Основные цели разработки ПО:
- определение структуры кода на основе реализуемых подсистем, организованных по уровням;
- реализация классов и объектов в виде модулей (исходных, двоичных, исполняемых файлов и др.);
- тестирование разработанных модулей;
- интеграция результатов работы отдельных программистов (или групп) в рабочую систему.
Для ведения непосредственной разработки IBM Rational предлагает целый набор специализированных инструментальных средств:
-
IBM
Rational Application Developer
-
IBM
Rational Web Developer
-
IBM
Rational XDE Developer
Тестирование программного обеспечения занимает от 30 до 50 процентов от всей стоимости разработки. Однако многие полагают, что приложение не может быть хорошо протестировано до момента внедрения. Это заблуждение основано на двух фактах. Во-первых, тестирование ПО является чрезвычайно сложным процессом. Выполнение любой программы может иметь неисчислимое количество различных путей. Во-вторых, тестирование часто проводится без четкой методологии и без требуемой автоматизации с помощью соответствующих инструментальных средств. Сложность создаваемого ПО делает невозможным проведение 100%-го тестирования, но хорошо продуманная методология и использование современных инструментальных средств, могут значительно улучшить производительность и эффективность тестирования ПО.
Основные цели тестирования:
- проверить взаимодействие между объектами;
- проверить корректную интеграцию всех модулей системы;
- проверить, что все требования были корректно реализованы;
- идентифицировать дефекты и убедиться, что они максимально выявлены еще до развертывания системы.
Хорошо выполненные тесты, запуск которых осуществляется еще на ранней стадии жизненного цикла, могут значительно снизить стоимость завершения проекта и поддержки ПО. Это может также значительно снизить риски или штрафы, связанные с поставкой ПО плохого качества, исключить низкую производительность работы приложений конечных пользователей, неудобство ввода данных, наличие вычислительных ошибок и ошибочное функциональное поведение системы. Для систем "с особыми требованиями к безопасности", когда отказ в работе может причинить вред людям или принести значительные убытки компании – таких, как системы управления воздушными полетами, управления ракетами или медицинскими поставками, финансовые приложения – высокие требования к качеству ПО являются необходимыми для успеха разрабатываемой системы. Для обычной информационной административной системы такие требования не являются настолько критичными, но эффект от всего лишь одного дефекта может быть, тем не менее, достаточно дорогостоящим.
В соответствии с RUP принята следующая базовая классификация видов тестирования:
1. Функциональное тестирование
- непосредственно функциональное тестирование (Function testing);
- тестирование целостности данных (Data integrity testing);
- тестирование на разных платформах (Configuration testing);
- тестирование отказоустойчивости (Failover & recovery testing);
- тестирование доступа (Security testing);
- инсталляционное тестирование (Installation testing);
- тестирование пользовательского интерфейса (User interface testing).
2. Нагрузочное тестирование
- непосредственно нагрузочное тестирование (Load testing);
- профилирование производительности (Performance profiling);
- тестирование цикла работы (Business cycle testing);
- тестирование при большой пользовательской нагрузке (Stress testing);
- тестирование на больших объемах данных (Volume testing).
Для автоматизации процессов тестирования IBM Rational предлагает следующие инструментальные средства.
Средства тестирования в линейке продуктов Atlantic, входящие в пакет IBM Rational Professional Bundle:
- IBM Rational Performance Tester – средство нагрузочного тестирования.
- IBM Rational Functional Tester – средство функционального тестирования, включает также IBM Rational Manual Tester – средство для организации и проведения ручного тестирования.
Эти средства предназначены для функционального и нагрузочного тестирования программного обеспечения, создаваемого на платформе J2EE. Они интегрированы с инструментом IBM Rational TestManager, входящего в пакет IBM Rational Team Unifying Platform и служащего средством планирования и мониторинга процесса тестирования как для инструментов тестирования новой линейки продуктов Atlantic, так и многоплатформенных средств тестирования линейки продуктов IBM Rational Suite.
Средства тестирования, в составе IBM Rational Suite:
- IBM Rational Robot – cредство разработки, записи и выполнения скриптов автоматизированного функционального и регрессионного тестирования приложений, предоставляющее полную поддержку тестирования всех средств управления Visual Studio.NET.
- IBM Rational XDE Tester – расширенные средства автоматизированного функционального и регрессионного тестирования Java- и Web-приложений из сред разработки Eclipse IDE, IBM WSAD и Rational XDE.
- IBM Rational Purify – средство выявления ошибок, связанных с обращением к динамической памяти (версии для Windows и UNIX)
- IBM Rational Quantify – средство выявления узких мест в коде, оказывающих влияние на производительность разрабатываемой информационной системы.
- IBM Rational PureCoverage – средство определения полноты тестирования кода.
- IBM Rational TestFactory – средство для полуавтоматического формирования набора тестовых скриптов, предназначенных для проведения функционального тестирования и обеспечивающих его полноту для конкретной информационной системы; способен выполнить анализ графического интерфейса разрабатываемой ИС и сгенерировать для нее комплексный набор тестов, позволяющий провести максимально полное функциональное тестирование.
Средства управления тестированием в составе Team Unifying Platform:
- IBM Rational TestManager – средство планирования и мониторинга процесса тестирования, входит в объединяющую платформу Team Unifying Platform, а также в пакет IBM Rational Suite.
Основным инструментом для планирования процесса тестирования, описания его сценариев и управления всем ходом данного процесса является IBM Test Manager, который входит в состав пакета Team Unifying Platform и подробно описан в соответствующем разделе. На основе требований на тестирование, которые аккумулируются с помощью IBM Rational RequisitePro, специальный механизм интеграции RequisitePro и TestManager позволяет сформировать план тестирования. Элементами плана служат сценарии, каждый из которых позволяет протестировать какой-либо аспект работы создаваемой ИС. Сформированный план тестирования дополняется тестовыми скриптами, которые формируются с помощью IBM Rational Robot и позволяют автоматизировать процесс тестирования.
При проведении распределенного тестирования, в частности, когда требуется одновременно проверить систему на разных программно-аппаратных платформах, используются специальные агенты (Test Agents). Таким образом, можно одновременно протестировать систему в операционных системах Windows, Linux, HP-UX, Solaris и AIX.
Для проведения расширенного функционального и регрессионного тестирования Java- и Web-приложений рекомендуется использовать новый продукт – IBM Rational XDE Tester. Для автоматизации процесса создания необходимых отчетов – плана тестирования, отчетов по результатам тестирования и т. п. – могут быть использованы Seagate Crystal Report и IBM Rational SoDA.
Для анализа работы систем, построенных с помощью языков C/C++, Microsoft Visual Basic, Java, C# .NET, VB. NET и Java .NET, можно использовать средства IBM Rational Purify, Quantify и PureCoverage. Основное назначение Purify при тестировании native-приложений (приложения, работа которых не управляется с помощью дополнительного окружения, например, так называемых сборщиков мусора) – выявить всевозможные утечки памяти и любые иные ошибки работы с ней. Для приложений класса managed applications (такие, как Java- и .NET-приложения) Purify позволяет провести эффективное профилирование памяти с целью оптимизации ее использования. С помощью Quantify становится проще определить узкие места производительности системы и провести ее настройку вплоть до отдельных строк программного кода. PureCoverage окажется незаменимым, если требуется оценить полноту тестирования системы.
IBM Rational TestFactory – еще одно специализированное средство автоматизированного тестирования, предназначенное для анализа графического интерфейса пользователя (GUI) разрабатываемой информационной системы и генерации полного набора тестов, позволяющего провести максимально полное функциональное тестирование.
Управление проектом по разработке программного обеспечения – это своего рода искусство балансирования между конкурирующими целями, рисками, различными ограничениями и обстоятельствами. Основной задачей данного процесса является обеспечение успешной поставки продукта, удовлетворяющего потребностям заказчиков – основных плательщиков по счетам, и потребителей – конечных пользователей.
Основные цели управления проектами:
- организация процесса управления проектом, планирование проекта на протяжении всего жизненного цикла и отдельной итерации;
- соблюдение основных принципов планирования, управления персоналом, выполнения работ и мониторинга проекта с помощью соответствующих метрик;
- эффективное управление рисками.
Компании и организации обычно ведут много проектов, которыми необходимо управлять – как традиционных IT-проектов, например, по разработке ПО или внедрению автоматизированной системы, так и проектов в других областях. Управление портфелем проектов – это подход, который позволяет держать под контролем широкий диапазон проектов и ресурсов, обеспечивая необходимый уровень их управляемости. Помимо управления единым финансовым портфелем, управление проектами включает множество различных процессов – управление ресурсами, затратами, рисками, качеством, а также другие связанные с этим процессы, и все они должны выполняться совместно.
В составе новой линейки средств IBM Rational предлагается надежный инструмент для управления проектами и портфелями, который играет ключевую роль в обеспечении процесса разработки программного обеспечения, управляемого бизнес целями компании – IBM Rational Portfolio Manager. Этот инструмент предоставляет командам разработчиков возможности по управлению проектами, значительно превышающие возможности программы MS Project, в то же время позволяя интегрироваться с ней.
Успешный опыт разработки показывает, что эффективное управление требованиями является ключевым фактором всего процесса разработки ПО. Требования определяют то, что должна делать система. Поэтому в течение всего жизненного цикла проекта нужно организовать эффективную работу с ними. Первым шагом в этом направлении служит организация хранения всех выявленных требований.
Основные цели процесса управления требованиями:
- понять структуру и динамику предметной области, в которой должна быть развернута создаваемая информационная система;
- понять текущие проблемы предметной области и определить потенциальные возможности ее усовершенствования;
- обеспечить общее понимание предметной области заказчиками, конечными пользователями и разработчиками;
- выявить системные требования, необходимые для поддержки автоматизации предметной области;
- установить и поддержать соглашение с клиентами и другими заинтересованными лицами на том, что система должна делать;
- обеспечить разработчиков системы лучшим пониманием требований к ее созданию;
- определить функциональные границы создаваемой информационной системы;
- обеспечить базис для планирования технического содержания фаз разработки;
- обеспечить базис для оценки стоимости и времени на разработку информационной системы;
- определить графические интерфейсы пользователей с учетом их потребностей и целей.
Основным инструментом для организации работы с требованиями в проекте является IBM Rational RequisitePro. Он позволяет команде работать с требованиями, отслеживать возможные изменения в них и организовывать обсуждения.
Перефразируя модель зрелости процессов Института программной инженерии (SEI CMM), можно сказать, что конфигурационное управление и управление изменениями обеспечивает контроль за изменениями и обеспечивает взаимосвязь артефактов проекта. Методы, процессы и инструментальные средства, используемые для обеспечения конфигурационного управления и управления изменениями в организации, могут рассматриваться как единая система конфигурационного управления.
Рисунок 8 – Единая с система конфигурационного управления
Конфигурационное управление и управление изменениями включают:
- идентификацию объектов конфигурационного управления;
- ограничение возможности изменения этих объектов;
- аудит изменений, произведенных с объектами конфигурационного управления;
- определение конфигураций объектов конфигурационного управления и управление этими конфигурациями.
Система конфигурационного управления является необходимой и неотъемлемой частью всего процесса разработки и содержит ключевую информацию о процессах разработки продуктов, их развитии, развертывании и внедрении. Она сохраняет для повторного использования артефакты, получаемые в ходе выполнения проекта.
Инструментом, позволяющим организовать эффективное управление версиями и конфигурациями является IBM Rational ClearCase, а управления изменениями – IBM Rational ClearQuest.
Специализированный инструмент для организации тестирования в составе Team Unifying Platform – IBM Rational TestManager – значительно повышает эффективность процесса тестирования, предоставляя в распоряжение команды общие средства планирования, проектирования, исполнения и анализа результатов тестов. Объединение операций тестирования в единый процесс дает возможность проектной команде наладить эффективный процесс контроля качества создаваемого продукта.
Рисунок 9 – Работа c Rational TestManager
В IBM Rational TestManager ведется план тестирования. Источником для конкретных сценариев тестирования могут служить элементы визуальных моделей и требования. С помощью IBM Rational TestManager организуется единое рабочее пространство, объединяющее элементы плана тестирования, сценарии и тестовые скрипты, отчеты по результатам тестирования и другие необходимые данные.
IBM Rational TestManager связывает наборы тестов с конкретной итерацией процесса разработки и конфигурацией разрабатываемой информационной системы.
Интеграция TestManager с IBM Rational Robot позволяет эффективно автоматизировать процесс тестирования благодаря объединению возможностей планирования и управления распределенным тестированием с мощными возможностями записи и воспроизведения автоматизированных тестов для ИС, построенных практически по любой технологии.
Интеграция TestManger с Eclipse IDE предоставляет богатые возможности для автоматизации процесса тестирования с продуктами, являющимися производными по отношению к Eclipse (XDE Tester, средства тестирования в составе инструментов Atlantic и т.д.).
Интеграция TestManager с IBM Rational Rose позволяет использовать функциональные элементы визуальной модели в качестве источника сценариев тестирования.
Интеграция TestManager с IBM Rational RequisitePro позволяет использовать требования репозитория требований для определения других сценариев тестирования.
Интеграция TestManager с IBM Rational ClearQuest дает возможность прямо заносить описания ошибок в репозиторий запросов на изменения проекта.
Интеграция TestManager с IBM Rational SoDA позволяет наладить процесс автоматической генерации документов по репозиторию тестирования.
IBM
Rational ProjectConsole
IBM Rational ProjectConsole автоматизирует процесс создания и мониторинга отчетов о состоянии проекта благодаря созданию динамического Web-сайта, который отображает панель основных показателей проекта. Это экономит время, необходимое для создания и поддержания Web-сайта команды проекта, а также позволяет избежать сбора подобных данных вручную.
Для руководителей проектов IBM Rational ProjectConsole предоставляет объективную картину достигнутых результатов на протяжении всего жизненного цикла проекта. IBM Rational ProjectConsole собирает фактические данные о состоянии разработки из платформы IBM Rational Suite и продуктов других поставщиков, представляя эти результаты в графическом виде, что позволяет легко и быстро оценить ход и качество проекта.
Возможности IBM Rational ProjectConsole:
- Обеспечивает доступ всех членов команды к полной информации по проекту через единый Web-сайт.
- Собирает и автоматически публикует информацию, полученную из IBM® Rational Suite® и инструментов других поставщиков, по запросу или согласно расписанию.
- Объективно измеряет качество и ход выполнения проекта.
- Анализирует данные и графически представляет результаты измерений.
- Предлагает индикаторы и средства для анализа трендов.
- Обеспечивает контроль доступа к отчетам и инструментальным панелям с помощью встроенных средств защиты.
IBM Rational ProjectConsole помогает ответить на следующие вопросы:
- Где следует сконцентрировать имеющиеся ограниченные ресурсы, чтобы обеспечить выполнение плана проекта
- Какие тенденции могут негативно повлиять на затраты и график работ
- Насколько стабильной является используемая архитектура.
- Сколько строк программного кода требует внесения изменений/добавления и как это соотносится с графиком выпуска релиза
Интеграция с существующими приложениями IBM Rational позволяет получать и просматривать информацию из IBM Rational Rose®, IBM Rational RequisitePro®, IBM Rational ClearQuest®, IBM Rational ClearCase®, IBM Rational XDE® Developer и IBM Rational TestManager®.
Точная и доступная информация позволяет снизить риски проекта и принимать своевременные решения с целью их недопущения. В результате IBM Rational ProjectConsole повышает предсказуемость проектов и позволяет соблюдать показатели, заложенные в графике и бюджете проекта.
Упрощение
доступа к информации по проекту
IBM Rational ProjectConsole предоставляет в распоряжение команды единую точку доступа к точной информации по проекту. Вам больше не придется тратить время на ожидание отчетов о состоянии, отправку многочисленных запросов об обновлении, «копание» в различных приложениях, базах данных, каталогах и документах с целью получения требуемой информации. Вы больше не будете принимать решения на базе устаревшей информации. Благодаря ProjectConsole вы экономите время, уменьшаете число ошибок, связанных с ручным вводом информации, и получаете более полный контроль за проектами по разработке ПО.
Настраиваемые
шаблоны
IBM Rational ProjectConsole предлагает полный набор типовых шаблонов для создания отчетов, а также возможность создавать собственные шаблоны, что позволяет представлять информацию, нужную членам команды, в удобном формате. Каждый отчет автоматически извлекает информацию из платформы разработки IBM Rational Suite и инструментов других компаний согласно заданному расписанию или по запросу. После этого данные публикуются на Web-сайте, которые сразу доступны всем членам команды. Упрощенный доступ к информации по проекту позволяет уменьшить время на поиск информации и уделять больше внимания самому проекту.
Измерение
степени завершенности и качества проекта
Продукт IBM Rational ProjectConsole позволяет автоматически получать количественную оценку текущего состояния проекта и анализировать тенденции. Измеряемые показатели автоматически формируются средствами IBM Rational Suite и инструментами других поставщиков с последующим их сохранением в хранилище данных.
Результаты измерений, полученные из IBM Rational RequisitePro, IBM Rational ClearQuest и IBM Rational ClearCase, могут быть графически отображены в IBM Rational ProjectConsole.
IBM Rational ProjectConsole позволяет с помощью гиперссылок связать все объекты и отображать результаты анализа в виде диаграмм, индикаторов и таблиц, публикуя их на автоматически создаваемом и обновляемом Web-сайте.
Объективное
состояние проекта
Графическая панель позволяет всем членам команды быстро определять реальное состояние и качество проекта. IBM Rational ProjectConsole позволяет анализировать подробную информацию по отдельным операциям, такие как моделирование, создание программного кода, тестирование. Кроме того, можно визуально сравнить плановые показатели с фактическими, проследить тенденции в хронологических данных и просмотреть междисциплинарные измерения, получив полное представление о состоянии проекта в целом. Все это позволяет команде разработчиков ПО:
- принимать своевременные корректирующие меры;
- анализировать причины задержек;
- иметь реалистичные ожидания в отношении проекта;
- лучше прогнозировать этапные события проекта;
- обеспечивать объективное и точное измерение состояния и качества проекта.
IBM
Rational ProjectConsole входит в состав платформы IBM
Rational Suite Team Unifying Platform.
IBM
Rational SoDA
Формирование проектной документации обычно требует много времени и усилий. Нередко составление документов и отчетов в течение жизненного цикла проектов осуществляется случайным образом, а то и вовсе игнорируется из-за нехватки времени и ресурсов, которые требуются на их разработку и сопровождение.
Специализированное средство IBM Rational SoDA помогает успешно решить эти проблемы, позволяя автоматизировать создание и сопровождение необходимой проектной документации. SoDA значительно облегчает процесс документирования в проекте. Инструмент позволяет более согласованно и оперативно генерировать необходимые документы и отчеты, автоматически извлекая исходную информацию из репозитариев и артефактов проекта, созданных в других инструментальных средствах. Таким образом, SoDA – мощный инструмент для организации обмена жизненно важной информацией проекта между его непосредственными и внешними участниками (заказчиками, конечными пользователями и т. д.).
Рисунок 10 – Работа в Rational SoDA
Использовать IBM Rational SoDA крайне просто. Сначала создаются шаблоны документов, а затем на их основе генерируются сами документы. При этом участники проекта акцентируют внимание только на создании продукта и сопутствующих артефактов. Можно быть абсолютно уверенным, что сгенерированный документ будет всегда включать актуальную информацию, полученную из проектных репозитариев и артефактов. IBM Rational SoDA изначально включает несколько десятков шаблонов.
Основу IBM Rational SoDA составляет Microsoft Word. Любой внешний вид документа, который можно создать в Word, может быть представлен в виде шаблона SoDA Таким образом, IBM Rational SoDA поддерживает возможность стандартизации типов документов в рамках отдельного проекта или всей организации в целом. Эта стандартизация может обеспечить соответствие документов таким стандартам, как ISO, SEI CMM/CMMI и IEEE, повышая качество проектной документации и облегчая взаимодействие занятых в проекте сотрудников.
Шаблоны SoDA содержат информацию о форматировании документа, его структуре и стилях. В них фиксируется расположение источников информации, из которых извлекаются необходимые данные. По желанию пользователя IBM Rational SoDA может автоматически генерировать документы и отчеты в формате HTML. Это значительно упрощает публикацию документов в Интернет. Данный функционал особенно полезен для распределенных проектных команд.
IBM Rational SoDA генерирует документы, извлекая информацию из следующих проектных репозитариев:
- репозитарий требований Rational RequisitePro;
- репозитарий тестирования Rational TestManager;
- базы данных запросов на изменения Rational ClearQuest;
- версионные объектные базы (VOB) Rational ClearCase;
- общий проектный репозитарий Rational Administrator.
Кроме того, IBM Rational SoDA может извлекать данные из следующих отдельных артефактов проекта:
-
модели
Rational Rose и
Rational Rose RealTime;
-
планы
Microsoft Project;
- документы Microsoft Word.
Документация программного обеспечения для крупных проектов может составлять сотни и тысячи страниц. При этом документы должны быть постоянно актуальными, чтобы отражать текущее состояние дел в проекте. IBM Rational SoDA позволяет обновлять лишь отдельные части документов, что значительно упрощает ведение процесса документирования.
IBM Software Development Platform (IBM SDP) – платформа IBM для разработки программного обеспечения – представляет собой реализацию новой концепции роли ИТ, согласно которой разработка информационных систем является важной частью бизнеса любой организации, которая стремится быстро реагировать на меняющиеся требования рынка. В основе IBM SDP лежат продукты, услуги и лучшие методы организации работ IBM Rational.
IBM SDP представляет собой платформу для разработки и развертывания программного обеспечения в рамках бизнес-приложений, встроенных систем и программных продуктов. Это модульное и функционально законченное решение позволяет командам разработчиков использовать подход к разработке, учитывающий интересы бизнеса и основанный на открытых стандартах, включая оболочку Eclipse. Результатом этого подхода является исключительная эффективность бизнеса.
Разработка программного обеспечения становится сегодня одним из ключевых бизнес-процессов как для организаций, использующих программное обеспечение для решения повседневных задач, так и для компаний, для которых разработка программного обеспечения является существенной составляющей производства, дистрибуции и продажи их продукции.
Программное
обеспечение как бизнес-процесс
|
Последнее десятилетие было отмечено ростом понимания значимости информационных технологий (ИТ) в развитии современной экономики вообще и каждого конкретного предприятия в частности.
Сегодня ни у кого не вызывает сомнений, что инвестиции в ИТ должны быть направлены на совершенствование бизнес-процессов компании с целью выделения ее конкурентных преимуществ, оптимизации затрат и поддержки изменений в бизнесе. Отсюда следует, что программное обеспечение играет все более важную роль в достижении организациями целей своего бизнеса.
Рисунок 11 – Новая концепция процесса разработки ПО
Разработка программного обеспечения становится частью бизнеса компании и одним из ключевых бизнес процессов, тесно интегрированным с другими процессами и инфраструктурой предприятия. Согласно этой концепции, связь бизнес-целей, операционной деятельности и задач автоматизации в компании представляет собой замкнутый цикл: цели бизнеса определяют новые потребности в автоматизации, которые затем закрываются в процессе создания или развития программных решений. Результат внедрения новых информационных систем, который может быть проанализирован и измерен, создает новые возможности для развития бизнеса, что, в свою очередь, создает новые потребности в автоматизации и т.д. Таким образом, успешные организации больше не ограничиваются просто автоматизацией бизнес-процессов, они также отслеживают процесс их выполнения и обеспечивают обратную связь в реальном времени, позволяющую совершенствовать бизнес-процессы в соответствии с изменяющимися потребностями клиентов.
Рисунок 12 – Роль ИТ в компании, действующей в соответствии с моделями бизнес-процессов
Несмотря на то, что ключевые элементы автоматизации многих бизнес-процессов сегодня можно купить в «готовом» виде, существует множество других задач, которые имеют уникальный характер для каждого бизнеса. Тиражируемые решения, такие как системы управление ресурсами предприятия (ERP), системы управления цепочкой поставок (SCM), системы управления взаимоотношениями с клиентами (CRM) и многие другие, предлагают стандартные варианты реализации соответствующих функций и обеспечивают минимальные риски в процессе их внедрения, эксплуатации и модернизации. Но чтобы выделить компанию в ряду конкурентов, внедрения этих продуктов недостаточно, нужны адаптированные решения, которые учитывают специфику данной компании и отражают ее уникальные ключевые практики. Автоматизацию подобных процессов невозможно осуществить, просто купив готовые пакеты приложений. Вот некоторые примеры таких процессов для конкретных отраслей:
- Страхование – заключение договоров, ранжирование клиентов и обработка заявлений от клиентов
- Финансы – трейдерские и брокерские услуги, управление инвестиционными портфелями и урегулирование спорных вопросов
- Туризм и транспорт – фрахтование, обслуживание инфраструктуры и эксплуатация оборудования
С другой стороны, если ранее каждый бизнес-процесс рассматривался как последовательность автономных, независимых друг от друга действий, которые поддерживались различными системами ИТ, то с течением времени процесс бизнес-интеграции дошел до такой стадии, на которой все действия рассматриваются как компоненты единого, горизонтально интегрированного бизнес-процесса, поддерживаемого единым программным обеспечением.
Рисунок 13 – Разработка программного обеспечения – стратегический бизнес-процесс
В связи с этим, все больше компаний начинают понимать ценность интегрированной платформы разработки приложений для повышения эффективности взаимосвязанных процессов при создании программных продуктов. А сам процесс разработки программного обеспечения становится важной составляющей бизнес-процессов компании, направленной на решение трех основных задач:
- Увязывание потребностей бизнеса с решениями в сфере ИТ
- Организация совместной работы специалистов
- Обеспечение прозрачности решений, контроля затрат и управления рисками
В этот процесс оказываются
вовлечены сотрудники компании на всех уровнях, каждый из которых получает
ощутимые преимущества от использования интегрированной платформы разработки ПО:
- Руководители высшего звена и бизнес-менеджеры получают возможность направить ИТ на реализацию целей своего бизнеса и отслеживать отдачу от инвестиций, как в рамках всего портфеля ИТ, так и в разрезе отдельных проектов
- Руководители отдела разработки ПО и руководители проектов получают новые возможности для контроля за состоянием проекта и обеспечения качества конечного продукта
- Члены команды разработки получают еще больше возможностей для эффективной, согласованной совместной работы, которая исключает непродуктивные операции, дублирование усилий или несогласованные действия
- Сотрудники службы внедрения и эксплуатации получают эффективные средства настройки, развертывания и сопровождения программных систем
Рисунок 14 – Организация коллективной работы с IBM SDP
IBM Rational Suite в свое время стала первым интегрированным решением для разработки программного обеспечения. Теперь идеи коллективной работы получили дальнейшее развитие на уровне всей компании, а IBM Software Development Platform стала первой интегрированной платформой, которая позволяет увязать задачи разработки ИТ с целями бизнеса.
Портфель
решений, основанный на ролях
IBM Software Development Platform предоставляет полный набор средств, ориентированных на реализацию идеи о том, что для более четкого управления затратами и повышения предсказуемости бизнеса, инвестиции в ИТ должны быть увязаны с целями организации.
Предлагавшиеся ранее линейки средств поддержки жизненного цикла разработки были нацелены исключительно на то, чтобы команда могла успешно завершить проект по разработке программного обеспечения. Новые интегрированные средства поддержки разработки IBM существенно расширяют эти возможности и дополняют их поддержкой бизнес-ориентированного подхода к разработке программного обеспечения. При этом в платформе IBM Software Development Platform реализован ролевой подход к решению задач и обеспечивается максимум возможностей для их интеграции на протяжении всего цикла разработки программного обеспечения.
Рисунок 15 – Интегрированная платформа IBM SDP, основанная на ролях
Например, в сфере проектирования и разработки предлагается решение широкого круга задач, с которыми специалисты ежедневно сталкиваются на практике. Разработчикам требуются высокопродуктивные инструменты для создания кода, а бизнес-аналитикам нужны средства описания задачи на языке, знакомом представителям бизнеса.
|
Техническая основа IBM Software Development Platform
Основу IBM Software Development Platform IBM представляет комплексный набор сервисов, базирующихся на открытых стандартах. Это позволяет обеспечить целостность и единообразие средств разработки, предлагаемых IBM, и гарантировать открытость системы для партнеров и заказчиков, которым предоставляется возможность доступа к имеющимся средствам разработки и расширения их функциональных возможностей за счет добавления собственных сервисов.
Техническая инфраструктура платформы IBM Software Development Platform состоит из пяти ключевых элементов:
- Открытая интегрированная платформа разработки Eclipse
- Среда моделирования Eclipse Modeling Framework
- Открытая платформа для Model-Driven Development (MDD)
-
Unified
Modeling Language (UML), UML2
-
Инструментарий тестирования Hyades Testing Framework
- Модель программирования WebSphere
Открытая
интегрированная платформа разработки Eclipse
Eclipse представляет собой открытую, высоко интегрированную инструментальную платформу разработки, в состав которой входит общая платформа, обеспечивающая интеграцию инструментов, и среда разработки Java, основанная на этой платформе. Следует отметить, что многие другие open source проекты расширяют платформу Eclipse и используют созданные на ее базе инструменты, обеспечивающие поддержку специальных подходов и технологий разработки.
Рисунок 16 – Модульная архитектура Eclipse
Основу Eclipse составляет инструментальная платформа, которая предлагает набор базовых функций для использования архитектуры подключаемых модулей (plug-in architecture), расширяющих и адаптирующих платформу Eclipse. Более того, архитектура Eclipse сама по себе состоит из основы и набора инструментальных средств, которые также состоят из отдельных подключаемых модулей.
Рисунок 17 – Архитектура Eclipse
Проект Eclipse изначально был ориентирован на разработчиков Java, которым были необходимы легко настраиваемые средства разработки следующего поколения. На сегодняшний день Eclipse завоевала большую популярность в сообществе Java разработчиков и достигнуты значительные успехи в области создания коммерческих продуктов на базе Eclipse, включая семейство продуктов IBM WebSphere Studio. Многие крупные компании, работающие с программным обеспечением – как поставщики, так и потребители, поддерживают Eclipse, являются членами Eclipse Foundation и вносят свой вклад в разработку программного обеспечения или используя Eclipse в качестве основного компонента их технической инфраструктуры. Около 200 поставщиков уже имеют или планируют к выпуску продукты, реализованные на основе Eclipse. Все это позволяет технологии Eclipse быстро развиваться, достигая нового уровня зрелости и ширины охвата.
В последнее время особое внимание уделялось развитию инфраструктуры Eclipse. С добавлением новых инструментальных средств после приобретения IBM CrossWorlds®, Holosofx® и Rational, IBM Software Group смогла расширить возможности предлагаемых средств разработки, которые теперь охватывают более широкий спектр ролей, проектов и предметных областей. Многие из приобретенных программных пакетов уже поддерживали определенный уровень взаимодействия с базовыми компонентами инструментальных средств IBM, например, при помощи общих форматов файлов или процедур импорта/экспорта, использующих стандартные механизмы обмена.
Тем не менее, важное значение имело именно объединение всех этих средств разработки на основе единой, технологической платформы, отвечающей таким потребностям заказчиков, как уровень интеграции, гибкость и расширяемость. Именно в таком, объединяющем качестве выступает технология Eclipse для IBM Software Development Platform. Технология Eclipse во многом ускорила создание многофункциональной, интегрированной платформы для разработки программного обеспечения благодаря возможностям организации взаимодействия между различными группами специалистов, работающих над IBM Software Development Platform.
Рисунок 18 – Ключевая роль Eclipse в IBM
Software Development Platform
Как показано на рисунке, платформа Eclipse выполняет три основных функции в IBM Software Development Platform. Во-первых, Eclipse предоставляет платформу и набор сервисов для графического интерфейса пользователя, являющиеся общими для всей платформы IBM Software Development Platform. Eclipse, таким образом, обеспечивает богатый пользовательский интерфейс для клиентов и высокий уровень целостности при выполнении различных действий в рамках IBM Software Development Platform. Во-вторых, Eclipse обеспечивает улучшенный механизм использования одних и тех же информационных массивов при выполнении различных действий в системе благодаря применению группы общих моделей, выраженных в технологии EMF. В-третьих, Eclipse реализует мощные функции инфраструктуры для коллективной работы в рамках IBM Software Development Platform.
Эти функции интегрированы в инфраструктуру Eclipse в виде подключаемых модулей и, соответственно, в таком же виде доступны другим подключаемым модулям IBM Software Development Platform.
Среда
моделирования Eclipse Modeling Framework
Для того чтобы интеграция средств разработки имела смысл, необходимо наличие общих соглашений о множестве базовых артефактов и процессов, совместно используемых средствами разработки. Подробная семантика общего доступа задается с использованием Eclipse Modeling Framework (EMF) – среды моделирования для платформы Eclipse.
Eclipse Modeling Framework – это инструментарий и средства генерации кода, которые обычно используются при описании структур данных, которыми манипулирует приложение. На основе UML модели, XML схемы или интерфейса Java EMF генерирует соответствующие классы реализации. Одна из основных задач, решаемых EMF, состоит в соотнесении сущностей моделирования непосредственно с их реализацией. Это дает Eclipse преимущества моделирования в совокупности с низким уровнем затрат при переходе к кодированию.
Eclipse Modeling Framework призвана обеспечить унифицированное представление "структур данных", описанных в приложении, независимо от того, были ли эти структуры определены при помощи языка UML, в XML-схеме, либо в виде интерфейсов Java. Например, при создании приложения, которое будет манипулировать структурой сообщений XML, можно определить схему XML. Затем при помощи EMF можно сгенерировать диаграмму классов UML для этой схемы. Кроме этого, можно сгенерировать набор Java классов реализации для обработки XML. Аналогичным образом, если вы начинаете с кода Java, описывающего ключевые интерфейсы в дизайне приложения, при помощи EMF можно сгенерировать соответствующую модель UML и структуру сообщений XML.
Модели, описываемые в Eclipse Modeling Framework, представлены в виде внутренней модели, именуемой Ecore. EMF представляет собой реализацию Meta Object Facility (MOF), выполненную IBM. MOF представляет собой стандарт описания хранилищ метаданных, разработанный Object Management Group (OMG). MOF определяет подмножество операторов UML для описания понятий моделирования классов внутри хранилища объектов. Соответственно, MOF походит на Ecore возможностью описания структурных и поведенческих характеристик классов, наследования, пакетов и способов отображения (reflection). Отличие между MOF и Ecore состоит в том, что MOF обладает дополнительными комплексными функциями управления жизненным циклом, структурами данных, связями между пакетами и сложными ассоциативными типами.
Открытая
платформа Model-Driven Development (MDD), построенная на основе Eclipse
Теперь, познакомившись с описанием основных компонентов Eclipse, становится понятно, какую важную роль играет Eclipse в составе IBM Software Development Platform. Платформа Eclipse предоставляет открытую, расширяемую инструментальную среду, обладающую такими характеристиками, как богатый пользовательский интерфейс, архитектура на основе подключаемых модулей, облегчающая расширение системы, и мощная среда моделирования, обеспечивающая глубокий уровень семантической интеграции.
Таким образом, опираясь на платформу Eclipse, процесс интеграции можно описать при помощи следующих этапов:
- С помощью EMF разрабатываются метамодели, учитывающие специфику технологии или инструментальных средств. Если возможно, они базируются на стандартных метамоделях, применяемых в отрасли (например, UML), при необходимости стандартные метамодели расширяются и модифицируются.
- Большинство компонентов инфраструктуры, обеспечивающей интеграцию средств разработки, генерируются на основе моделей EMF. По мере эволюции инструментальных средств и механизма их интеграции компоненты инфраструктуры можно сгенерировать заново на основе упомянутых моделей, если возникнет такая необходимость.
- Производится уточнение и обеспечивается совместный доступ к общей семантике метаданных, описанной при помощи таких языков, как UML, XSD, XMI, Annotated Java и др.
- Все взаимодействия между инструментальными средствами осуществляются с использованием общего программного интерфейса (Java).
- Для обмена метаданными между инструментальными средствами внутри системы, а также для внешнего взаимодействия с инструментальными средствами, разработанными партнерами, применяется общий подход (XML).
- На основе моделей генерируются простые функции реализации (операции CRUD, базовые функции редактирования и т.д.).
- Для осуществления внутренних преобразований применяются метамодели для J2EE, Web-сервисов и MDD.
- Полученная в итоге техническая инфраструктура IBM Software Development Platform, как показано на рисунке, состоит из трех основных компонентов:
- В основе инфраструктуры лежит группа open source технологий, реализованных в рамках проекта Eclipse. Сюда относятся ядро Eclipse, различные подключаемые модули и группа метамоделей, описанных в EMF.
- Дополнительные возможности, предлагаемые IBM, реализованы на базе упомянутых выше open source технологий. Эти возможности используются во многих продуктах IBM и предоставляют техническим специалистам IBM целый спектр повторно используемых сервисов.
- В основе всех названных возможностей лежит платформа коллективной работы. Она включает в себя базовые технологии IBM для организации совместного доступа к данным, управления артефактами и сбора информации.
Рисунок 19 – Компоненты технической инфраструктуры
Две технологических разработки особенно ярко иллюстрируют мощные возможности и открытость IBM Software Development Platform, базирующейся на данной технологической инфраструктуре: это метамодель UML2 и инструментарий тестирования Hyades.
Unified Modeling Language (UML),
UML2
Унифицированный язык моделирования (UML – Unified Modeling Language) стал промышленным стандартом для разработки и проектирования программного обеспечения. Благодаря UML разработчики получают мощный базис для успешного взаимодействия друг с другом и своими заказчиками, а также документирования разрабатываемого программного обеспечения.
Согласно отчетам IDC и Gartner, средства IBM Rational занимают лидирующие позиции в области средств бизнес-моделирования, анализа, и проектирования с использованием языка Unified Modeling Language. Именно в этих областях технологии моделирования систем любой сложности с использованием UML наиболее востребованы. Unified Modeling Language поддерживается широким набором популярных средств IBM Rational, включая:
-
IBM
Rational Rose (UML 1.3)
-
IBM
Rational Rose RealTime (UML 1.3)
-
IBM
Rational XDE Modeler (UML 1.4)
-
IBM
Rational XDE Developer (UML 1.4)
-
IBM
Rational XDE DeveloperPlus (UML 1.4)
-
IBM
Rational Software Modeler (UML 2.0)
-
IBM
Rational Application Developer (UML 2.0)
-
IBM
Rational Software Architect (UML 2.0)
Метамодель UML2 представляет собой реализацию основных элементов спецификации UML 2.0 в EMF. Эта метамодель является основной реализацией UML 2.0, лежащей в основе всех инструментальных средств, объединенных платформой IBM Software Development Platform, и, следовательно, представляет базовые семантические элементы, составляющие основу IBM Software Development Platform. Эта метамодель широко используется различными инструментальными средствами IBM; если необходимо, ее можно модернизировать для каждого из инструментальных средств, воспользовавшись стандартными механизмами расширения UML.
Метамодель UML2 разработана участниками open source проекта в рамках сообщества Eclipse. Задачами данного проекта являются создание удобных в использовании реализаций:
- метамодели, поддерживающей разработку средств моделирования;
- общей схемы обмена метаданными – XML Metadata Interchange (XMI) для упрощения обмена семантическими моделями;
- а также описания вариантов тестирования в качестве механизма проверки спецификации, и специфицирование правила проверки, как средства описания технических условий и обеспечения соответствия им.
Инструментарий
тестирования Hyades Testing Framework
Инструментарий тестирования Hyades – Hyades Testing Framework – обеспечивает централизованный механизм управления ресурсами и жизненным циклом тестирования для всех средств разработки, объединенных платформой IBM Software Development Platform. Эта среда обеспечивает синхронизацию всех этапов тестирования на протяжении жизненного цикла, стимулируя упреждающее тестирование (test-first) в процессе разработки и улучшая возможности трассировки от тестовых артефактов к другим артефактам в рамках жизненного цикла. Hyades поддерживает весь спектр методологий тестирования за счет использования инфраструктуры с открытым исходным кодом, посредством которой средства тестирования и трассировки взаимодействуют друг с другом.
Hyades Testing Framework является open source проектом в рамках сообщества Eclipse. Цель проекта Hyades заключается в интеграции средств тестирования и трассировки в рамках среды Eclipse для обеспечения совместимости со средствами разработки на протяжении жизненного цикла программного обеспечения. Такая интеграция позволяет снизить затраты и облегчить процесс внедрения эффективных автоматизированных процессов контроля качества программного обеспечения. Hyades позволяет улучшить средства функционального и нагрузочного тестирования, используемые разработчиками, за счет повышения уровня совместимости и снижения затрат на приобретение инструментальных средств и последующих затрат на сопровождение.
Для описания всех артефактов, используемых в процессе тестирования (например, тестов и трассировок) Hyades использует язык UML. Для обеспечения совместимости инструментальных средств и применяемых понятий артефакты тестирования имеют форму, определенную в тестовом профиле OMG. Кроме того, артефакты совместимы со стандартом MOF, поэтому данные о них можно сохранять и извлекать при помощи EMF.
Модель
программирования WebSphere
Одним из ключевых аспектов IBM Software Development Platform является использование модели программирования, реализованной в рамках платформы WebSphere, в ряде приложений IBM промежуточного слоя (DB2, Tivoli и Lotus) и, в частности, в рамках IBM Software Development Platform.
Ключевые элементы модели программирования, общие для IBM Software Development Platform и платформы IBM промежуточного слоя, включают в себя:
- Service Data Objects (SDO), в настоящий момент находятся в стадии стандартизации в рамках Java Community Process. Объекты SDO предоставляют упрощенную модель программного доступа к данным для различных ресурсов (как данных, так и корпоративных информационных систем – EIS), и служат дополнением к базовым стандартам для Web-сервисов, таким, как XML, Web Services Definition Language (WSDL) и Simple Object Access Protoсol (SOAP).
- BPEL4WS, представляющий собой стандарт согласования сервисов (service orchestration) и написания скриптов для компонентов, поддерживающий интеграцию процессов workflow и бизнес-процессов.
- JSF, представляющий собой инструментарий Java, позволяющий ускорить процесс создания Web-приложений разработчиками, не являющимися большими специалистами в J2EE.
- Адаптация и настройка приложений с использованием внешних политик и правил. В настоящее время разрабатывается целая серия стандартов, регламентирующих описание и применение политик, в том числе такие стандарты, как Web Services Policy и OMG Business Semantics of Business Rules (BSBR).
Таким образом, IBM Software Development Platform – это самое полное и мощное в индустрии решение для создания программных систем и управления жизненным циклом приложений. Она обеспечивает поддержку автоматизации практически для всех аспектов разработки программного обеспечения.
Продукты, услуги и лучшие методы организации работ Rational лежат в основе IBM Software Development Platform. Это модульное и функционально законченное решение позволяет командам разработчиков использовать подход к разработке, учитывающий интересы бизнеса и основанный на открытых стандартах, включая оболочку Eclipse. Результатом этого подхода является исключительная эффективность бизнеса.
Решения IBM Rational ориентированы на решение следующих основных задач:
- Поддержка основных процессов создания программного обеспечения – моделирования, разработки и тестирования (IBM Professional Bundle, IBM Rational Suite)
- Организация совместной работы проектной команды (IBM Team Unified Process)
- Управление проектами и портфелями (IBM Portfolio Mangager)
Продукты IBM Rational помогают организовать эффективную командную работу и привести в соответствие с требованиями современных стандартов все процессы, связанные с разработкой, внедрением и сопровождением программного обеспечения: управление проектами, бизнес-моделирование, анализ и проектирование, управление требованиями и изменениями, тестирование и конфигурационное управление. Применение методов управления ИТ-проектами с использованием методологии и инструментария IBM Rational обеспечивает сокращение совокупных затрат на разработку и сопровождение ПО, повышает показатель эффективности внедрения информационных технологий. Девяносто восемь компаний из списка Fortune 100 используют инструментальные средства Rational для ускоренного создания более качественного программного обеспечения.
Продукты, услуги и лучшие методы организации работ Rational лежат в основе IBM Software Development Platform – платформы для разработки и развертывания программного обеспечения в рамках бизнес-приложений, встроенных систем и программных продуктов. Это модульное и функционально законченное решение позволяет командам разработчиков использовать подход к разработке, учитывающий интересы бизнеса и основанный на открытых стандартах, включая оболочку Eclipse Результатом этого подхода является исключительная эффективность бизнеса.
Инструментальные программные средства платформы IBM Rational интегрированы на основе среды Eclipse, что позволяет легко переходить от моделирования высокоуровневых представлений бизнес процессов к проектированию модулей разрабатываемой программной системы с последующей их реализацией и тестированием.
Обзор
инструментальных средств IBM Rational
Одной из ключевых особенностей новой линейки продуктов IBM Rational является более тесная интеграция предлагаемых средств поддержки жизненного цикла разработки.
Наиболее полно интеграция инструментальных средств основных процессов создания приложений на платформе J2EE – моделирования, разработки и тестирования – реализована в пакете IBM Rational Professional Bundle, который объединяет новые продукты линейки IBM Rational, получившей название Atlantiс. Отличительной чертой пакета IBM Rational Professional Bundle является тесная интеграция средств проектирования, разработки и тестирования в рамках единой среды разработки на базе платформы Eclipse. Это позволяет быстро переходить от проектирования к разработке и легко визуализировать код в графическом представлении на языке моделирования UML. Новые инструменты интегрированы со средствами организации совместной работы IBM Rational Team Unifying Platform на основе среды Eclipse. IBM Rational Professional Bundle включает полный комплект инструментальных средств, необходимых для проектирвоания, разработки и тестирования приложений, ориентированных на J2EE/порталы/службы, на платформах Windows и Linux, а также для тестирования .NET-приложений:
-
IBM Rational Software Architect – инструменты
проектирования и разработки приложений на основе моделей на языке UML, которые
позволяют выполнять детальное проектирование информационной системы и
обеспечивать создание качественной архитектуры. Включает такие средства как IBM Rational Software Modeler, IBM Rational Application Developer и IBM Rational Web Developer;
-
Инструменты тестирования в
составе новой линейки продуктов
Atlantic – это средство нагрузочного тестирования
IBM Rational Performance Tester и средство функционального тестирования
IBM Rational Functional Tester (включает средство ручного тестирования IBM Rational Manual Tester).
Интегрированное решение по проектированию и разработке приложений – IBM Rational Software Architect (RSA), которое входит в IBM Rational Professional Bundle, содержит средства моделирования IBM Rational Software Modeler (RSM) и разработки приложений IBM Rational Application Developer (RAD), дополненное инструментом разработки сайтов IBM Rational Web Developer (RWD). Эти продукты позволяют создавать средства преобразования моделей, обеспечивающие автоматизированный переход от высокоуровневых моделей к низкоуровневым моделям реализации, вплоть до графического представления кода на UML. Средства поддержки процесса тестирования в составе пакета IBM Rational Professional Bundle – это IBM Rational Performance Tester – средство нагрузочного тестирования и IBM Rational Functional Tester – средство функционального тестирования, в состав которого входит также и средство ручного тестирования – IBM Rational Manual Tester.
Для организации совместной работы по моделированию и тестированию программных систем для различных платформ разработки, не поддерживаемых IBM Rational Professional Bundle, успешно используется пакет IBM Rational Suite, объединяющий такие хорошо знакомые разработчикам средства, как IBM Rational Rose, IBM Rational XDE DeveloperPlus, IBM Rational Robot. IBM Rational PurifyPlus for Windows, а также средства организации коллективной работы проектной команды IBM Team Unifying Platform.
Пакет IBM Rational Team Unifying Platform обеспечивает совместную работу проектной команды по управлению требованиями, изменениями, тестированием, конфигурациями, документированию и отслеживанию состояния проекта в соответствии с методологией процесса разработки программного обеспечения. IBM Rational Team Unifying Platform является объединяющей платформой, которая рекомендуется как основа для организации взаимодействия в рамках коллективов разработчиков при использовании инструментальных средств обоих пакетов – IBM Rational Professional Bundle и IBM Rational Suite. В состав пакета входят следующие инструментальные средства: IBM Rational RequisitePro, IBM Rational ProjectConsole, IBM Rational ClearQuest, IBM Rational ClearCase LT, IBM Rational TestManager, IBM Rational SoDA, IBM Rational Unified Process. Кроме того, для управления проектами используется пакет IBM Rational Portfolio Manager, обеспечивающий управление портфелем проектов разработки программного обеспечения.
Технологии
Rational в портфеле IBM
После приобретения IBM весной 2003 года компании Rational Software, технологии Rational стали неотъемлемой частью портфеля программного обеспечения IBM. «Rational является неотъемлемым элементом нашей недавно объявленной инициативы в области электронного бизнеса по требованию, – говорит Стив Миллз (Steve Mills), вице-президент IBM и руководитель подразделения IBM Software. – Законченная, открытая программная платформа Rational позволит повысить скорость, качество и прогнозируемость проектов в области программного обеспечения. Продукты Rational станут великолепным дополнением к имеющимся у нас четырем семействам ПО – WebSphere, DB2, Lotus и Tivoli». Программные инструменты компании используют более 600 тысяч разработчиков программного обеспечения.
Компания Rational Software была основана Полом Леви (Paul Levy) и Майком Девлином (Mike Devlin) в 1981 г. Их вдохновили перспективы позитивного влияния программного обеспечения на мировую экономику. С тех пор постоянно растет роль корпоративного ПО как двигателя мировой экономики и ключевого элемента в конкурентной борьбе компаний, сервисов и продуктов. Компания Rational Software была основана с конкретной миссией, которая остается неизменной до сих пор – обеспечение успеха клиентов, разрабатывающих и развивающих программное обеспечение. Цель Rational Software – помочь клиентам в создании информационных систем. Подход компании Rational Software помогает решать проблемы разработки, развития, тестирования и управления разработкой, позволяя создавать корпоративное ПО более быстро, качественно, надежно и с наименьшим риском.
Свой первый продукт компания Rational Software поставила на рынок в конце 1984 г. С тех пор она выросла в мощную, высокотехнологичную компанию. К моменту слияния Rational Software была крупнейшим специализированным поставщиком средств разработки ПО. По итогам ее последнего финансового года (31.03.2002) объем доходов компании составил 689 млн. долл. На момент вхождения Rational в IBM в компании работало около 3400 сотрудников, действовали 80 офисов по всему миру, ее продуктами пользовались более 600 тысяч разработчиков. С этих пор продукты корпорации распространяются под торговой маркой IBM Rational, а бывший руководитель и один из основателей Rational Software Майк Девлин встал во главе нового подразделения IBM.
IBM Rational Suite в свое время стала первым интегрированным решением для разработки программного обеспечения. Теперь идеи коллективной работы получили дальнейшее развитие на уровне всей компании, а IBM Software Development Platform стала первой интегрированной платформой, которая позволяет увязать задачи разработки ИТ с целями бизнеса. Продукты, услуги и лучшие методы организации работ IBM Rational лежат в основе IBM Software Development Platform.
IBM Team Unifying Platform. Эффективная
организация совместной работы над проектом
Инструментарий IBM Rational Team Unifying Platform предназначен для организации совместной работы в составе многофункциональных коллективов с целью повышения производительности как команды в целом, так и отдельных специалистов. Использование средств коллективной разработки IBM Rational помогает синхронизировать работу разнопрофильных специалистов, вовремя предупреждая всех участников проекта об изменениях.
Довольно часто члены команды проекта взаимодействуют недостаточно эффективно, что замедляет обмен информацией и служит причиной потери многих часов рабочего времени. Благодаря полному набору средств для ведения коллективной разработки, тесно интегрированных друг с другом, все члены проектной команды получают общее видение проекта. Специалисты более не изолированы и не ограничены рамками выполняемой функции. Инструментарий IBM Rational предупреждает специалистов по тестированию о том, что им необходимо изменить сценарий тестирования, разработчиков – об изменении приоритетов требований, а руководителя проекта – о превышении установленного предела серьезных ошибок. Такой обмен информацией крайне важен для повышения продуктивности в работе над проектом.
Набор средств IBM Rational под названием Team Unifying Platform (Объединяющая платформа) включает в себя следующие средства совместного управления проектами и создания коллективной инфраструктуры:
- IBM Rational Unifying Process – методология создания информационных систем, обеспечивает всеобщее понимание и следование итеративному подходу;
- IBM Rational RequisitePro – средство управление требованиями, которое позволяет коллективу справляться с постоянно меняющимися требованиями;
- IBM Rational ClearQuest – средство управления запросами на изменения, предоставляет возможности для отслеживания дефектов и изменений, которое позволяет каждому понимать текущий статус качества ПО;
- IBM Rational ClearCase – средство конфигурационного управления, надежный инструмент для управления версиями, который служит в качестве общего репозитария для всех объектов разработки ИС;
- IBM Rational TestManager – средство организации процессов тестирования, которое объединяет в себе планирование тестов, их выполнение и анализ, включая частные и унаследованные тестовые объекты;
- IBM Rational Project Console – средство мониторинга ключевых показателей проекта, которое упрощает контроль за статусом проекта и генерирование объективных метрик проекта с целью улучшения его предсказуемости.
- IBM Rational SoDA – средство документирования, автоматизирует создание и сопровождение всеобъемлющей проектной документации и отчетов;
В основе работы инструментария лежит подход Unifying Change Management (UCM), который позволяет организовать индивидуальные рабочие пространства для каждого участника проекта на базе единого проектного репозитария. В зависимости от специфики деятельности конкретного участника проекта он использует необходимые инструментальные средства. Интеграция указанных средств позволяет объединить деятельность всей команды в единый и четкий процесс построения эффективной ИС.
Организация
процесса разработки. IBM Rational Unified Process
В каждом проекте разработчики стремятся к общей цели – в утвержденные сроки создавать качественное и надежное ПО, отвечающее текущим требованиям и масштабируемое для будущих задач. Достичь этой цели практически невозможно без хорошо организованного процесса разработки. IBM Rational Unified Process (RUP) предоставляет группам разработчикам возможность общего, интерактивного и интегрированного управления процессом.
Рисунок 20 – RUP – база знаний
Rational Unified Process – обширный справочник в виде портала, который организует работу проектной команды. RUP содержит инструкции, шаблоны и примеры для большинства критических задач, которые могут возникнуть в ходе проекта.
Rational Unified Process – практическое руководство, помогающее разработчикам выполнять их повседневные задачи. Реализованный с использованием HTML и Java для простого и независимого от платформы доступа с локального компьютера и через корпоративную сеть, продукт RUP имеет мощные графические средства навигации, позволяющие быстро находить необходимую информацию по разработке ПО, а также шаблоны для документов, создаваемых в ходе проекта.
Rational Unified Process позволяет интегрировать функции инструментальных средств IBM Rational:
- руководства по инструментальным средствам описывают, как эффективно использовать эти средства для реализации конкретных задач в различных фазах разработки;
- расширенная помощь облегчает поиск инструкций для реализации текущей задачи.
Rational Unified Process может быть адаптирован как для малых, так и для больших проектов и использоваться при разработке приложений всех типов, включая электронную коммерцию (e-business) и Web-приложения, приложения реального времени и встроенное ПО.
Рисунок 21 – Пример адаптированного Web-сайта RUP
Существует два разных подхода к внедрению Rational Unified Process: целиком или по шагам. Наиболее эффективно внедрять весь процесс целиком, когда начинается новый проект, участники проекта хорошо владеют методологией RUP или некоторый проект ведется настолько хаотично, что любая его реорганизация заведомо принесет пользу. Предпочесть внедрение RUP по шагам стоит, если речь идет о внесении изменений в уже существующий проект, в котором есть налаженные механизмы командного взаимодействия или участники проекта плохо знакомы с положениями RUP.
В каждом конкретном случае целесообразно подобрать свои эффективные пути внедрения новых методов работы. В этом могут помочь специализированные консалтинговые компании, имеющие обширный опыт внедрения средств и методологии RUP – это поможет избежать лишних затрат на определение собственного пути.
Для адаптации методологии Rational Unified Process в организации IBM Rational предлагает средства, поддерживающие задачи моделирования и описания процессов разработки. Эти средства представляют собой набор инструментов для настройки и публикации Web-сайтов на основе RUP, которые позволяют вносить изменения в RUP и описывать собственные стандарты ведения проектов:
- IBM RUP Builder – средство автоматической генерации Web-сайта, модифицированного RUP, которое входит в стандартную поставку IBM Rational Suite Enterprise. При разработке сайта можно использовать готовые модули расширения (plug-in), которые могут встраиваться в текущее описание процесса, добавляя в него некоторую специфику. Готовые модули расширения можно загрузить с сайта IBM Rational
- IBM Rational XDE Modeler – визуальное средство создания взаимосвязи процессов на основе метамодели RUP, повышающее уровень абстракции и облегчающее понимание и изменение процессов (возможно также использование IBM Rational XDE Developer for Java или IBM Rational XDE DeveloperPlus for Java).
- IBM Rational Process Engineering – средство формирования контента сайта, может быть бесплатно получен с сайта IBM Rational.
Адаптация Rational Unified Process проводится инженерами-технологами организации или внешними консультантами и включает этапы определения, описания и представления процессов. В качестве основы для определения процесса используется модель RUP, затем выполняется изменение и расширение базовой модели. Визуализация связей между элементами процесса показывает, например, какие артефакты задействованы в процессе и какие роли отвечают за их создание. Библиотека элементов процесса содержит текстовую информацию о каждом элементе в модели процесса. Библиотека содержит также все текстовые страницы RUP, а также необходимые шаблоны для создания новых страниц описания. На последнем этапе – этапе представления процесса, генерируется описание процессов, включающее текст и графику в виде Web-сайта и соединяющее модели процессов и библиотеку описаний в единое целое.
Внедрение RUP может быть проведено
- во всей организации с распространением на все проекты;
- в отдельном проекте;
- в отдельных подразделениях, участвующих в одном или нескольких проектах организации;
- в подразделениях, задействованных в какой-либо части крупных проектов, ведущихся в других компаниях (аутсорсинг).
Начинать проект по адаптации Rational Unified Process рекомендуется с внедрения части RUP в одном или нескольких подразделениях, а в дальнейшем распространить успешный опыт на организацию в целом. Таким образом, можно организовать на основе RUP эффективные процессы визуального моделирования и управления требованиями, создания прототипов графического интерфейса, планирования работ и определения необходимых ресурсов, автоматизированного тестирования, управления изменениями (дефектами, запросами на улучшение, задачами и т. д.), управления версиями и конфигурацией.
Управление проектами
|
Моделирование,
разработка и тестирование
|
Моделирование
и разработка
|
Моделирование
|
Разработка приложений
|
Разработка Web-сайтов
|
Тестирование
|
Организация
совместной работы
|