Эффективная разработка программного обеспечения с использованием технологий и инструментов компании RATIONAL

Александр Новичков

Оглавление

Предисловие

"Нельзя объять необъятное!" -
стиль жизни мудрейших…

Данная статья направлена на популяризацию программных решений для построения эффективного предприятия по выпуску качественного программного обеспечения. Компания Rational Software несколько лет является лидером в области создания инструментальных средств и методологий в области создания программного обеспечения.

В статье даны оценки текущему положению дел в софтверном мире, рекомендации по использованию технологий Rational с целью получения качественных приложений без выхода за рамки бюджета проекта и повышения надежности создаваемого ПО. Рассматриваются общие функциональные возможности продуктов компании и их технические характеристики. Описываются роли участников проекта. Даются практические рекомендации по корректировке существующих способов построения программного обеспечения.

Введение

Предисловие (см. выше) так расписано не случайно, поскольку процесс создания программного обеспечения весьма и весьма сложный. Особенно в современных условиях - условиях скоростного кодирования. Разрастающиеся не по дням, а по часам операционные системы, меняющиеся требования пользователей к системам - все это доставляет определенные неудобства разработчикам ПО, ведь им приходится, в буквальном смысле слова "держать нос по ветру", анализируя все веяния, переводя их в машинный код. В результате код программы разрастается, штат разработчиков тоже, а время на выпуск каждого нового релиза сокращается. Тем самым складывается очень интересная ситуация, когда программное обеспечение не поспевает не только за требованиями пользователей, но и за выходом очередных "железных" новинок. А если же продукт успел выйти вовремя и в срок, то, как правило, содержит много ошибок, поскольку не все компании держат огромный штат квалифицированных тестировщиков! А если ко всему вышеперечисленному еще добавить возрастающую интернационализацию, когда команды разработчиков разбросаны по всей планете! А ведь совсем недавно казалось, что возьми человечество Объектно-ориентированный подход при программировании, и проблема в момент решится! Сколько книг было издано, сколько статей напечатано…. "А воз и ныне там". Что же получилось? Каждый уважающий себя программист, бросив все дела, перешел на С++ в надежде на скоростную разработку… не помогло. Уже целыми командами начали применять ООП, и все равно медленно - выпуск ПО не поспевает за "железками"! А все потому, что ООП не позволило снять барьеры во взаимопонимании между участниками проекта. ООП также не позволило менять код в соответствии с быстроменяющимися потребностями и неконтролируемости изменений в проекте…

Неужели все так плохо?? И "да", и "нет". Давайте обратимся к статистике. По проведенному исследованию компанией Standish Group CHAOS только 26% проектов заканчиваются успешно (читай: "вовремя"). Над этими цифрами есть смысл подумать: только четверть всего задуманного воплощается в материальную субстанцию.

Многие компании смирились с подобным положением, находя собственные пути решения путем увеличения штата сотрудников, но, как правило, результат при этом возрастает не пропорционально! И все же, ведь 26% проектов заканчиваются и довольно успешно, о чем свидетельствует количество ПО на рынке. А что если попытаться проанализировать деятельность наиболее успешных компаний, узнав при этом их секрет успеха, а потом создать общую рекомендацию для страждущих???

Как ни странно, но есть такая компания и такая технология!

Компания Rational постоянно занимается исследованиями в области Информационных Технологий (ИТ) с целью выработки оптимального пути в создании программного обеспечения. Основной девиз компании: "Строй быстрее, надежней, качественней…".

Давайте попробуем посмотреть на те решения, которые предлагает компания Rational для устранения существующих проблем.

А начнем описание с основного продукта компании - RUP

Rational Unified Process

suite1.gifRUP - методологическая основа для всего, что выпускает Rational. То есть данный продукт является энциклопедией (методологическим руководством) того, как нужно строить эффективное информационное производство. Также RUP регламентирует этапы разработки ПО, документы, сопровождающие каждый этап, и продукты самой Rational для каждого этапа. В RUP заложены все самые современные идеи. Продукт постоянно обновляется, включая в себя все новые и новые возможности. К достоинством данной методологии стоит отнести чрезвычайную гибкость, то есть RUP не диктует, что необходимо сделать, а только рекомендует использовать то или иное средство.

Выше уже упоминался ряд проблем на пути выпуска ПО. Вот что предлагает RUP для решения подобных проблем:

  1. Выпускать программное обеспечение, пользуясь принципом промышленного подхода. То есть так, как поступают любые заводы и фабрики: определяя стадии, потоки, уточняя обязанности каждого участника проекта. Именно промышленный подход позволит достаточно оперативно выпускать новые версии ПО, которые при этом будут надежными и качественными.
  2. Расширять кругозор специалистов для снятия барьеров. Ведь в подавляющем большинстве случаев специалисты из разных отделов просто говорят на разных языках. Соответственно, снятие языкового барьера должно вести к ускорению работы над программным обеспечением.
  3. Использовать итеративную разработку вместо каскадной, существующей в настоящее время. Принцип итерации заключается в повторяемости определенной последовательности процессов с целью доведения элемента до безошибочного состояния.
  4. Обязательное управление требованиями. Всем известно, что по ходу разработки в систему вносятся изменения (самой группой разработчиков или заказчиком - неважно). Rational предлагает мощную систему контроля управления требованиями: их обнаружение и документирование, поддержку соглашений между разработчиками и заказчиками.
  5. Полный контроль всего происходящего в проекте посредством создания специальных архивов.
  6. Унифицированный документооборот, приведенный в соответствие со всеми известными стандартами. Это значит, что каждый этап в разработке (начало, работа и завершение) сопровождаются унифицированными документами, которыми должен пользоваться каждый участник проекта.
  7. Использование визуального моделирования.
  8. Применение не только механизмов Объектно-ориентированного программирования, но и ОО-мышления и подхода.

Это лишь немногое из того, что детально описано в RUP и рекомендовано для структурирования производства ПО. На рис. 1 показана переведенная схема RUP по стадиям работы над проектом. Высота потока показывает на его интенсивность. Внимательно присмотритесь к данной диаграмме: по мнению многих аналитиков (в том числе и российских), диаграмма "жизненная" - реально отражающая потоки работ и их интенсивность. Для каждого потока работ в RUP есть продукт, выполняющий соответствующую функцию.

Сам RUP поставляется в виде не обычного программного продукта, а в виде "on-line" документации, оформленной в виде web-страницы, что позволяет размещать его на внутренней сети предприятия с целью приобщения всех сотрудников к гигантскому кладезю полезной информации.

Продукт ориентирован на всех участников проекта.

 

Rational Rose

suite2.gifПродукт №1 в программном списке Rational. Следуя рекомендации и практическому опыту, данный продукт позиционируется для использования проектировщиками, аналитиками, разработчиками. ROSE является уникальным CASE средством, чьи графические возможности, основанные на UML (Universal Modeling Language - универсальном языке моделирования), способны решить любые задачи, связанные с любым проектированием и моделированием: от общей модели процессов (абстрактной) предприятия до конкретной (физической) модели класса в создаваемом ПО. Работа в Rational Rose заключается в проектировании определенного вида диаграмм, задавая при этом все свойства, отношения и взаимодействие друг с другом.

suite4.gifПри разработке любой информационной системы в первую очередь возникает проблема взаимопонимания подрядчика и заказчика уже на стадии договоренности о структуре системы. Имея такой инструмент, как Rose, проектировщик (аналитик) всегда может показать заказчику не абстрактное словесное описание процесса, а его конкретную модель (на экране ПК или в печатном виде - неважно!). Значит, Rose позволит быстрее утрясти с заказчиком все детали планируемой системы. Как говорилось выше, RUP описывает все артефакты (документы), возникающие как по ходу проекта, так и в Rose. Результатом моделирования является файл с моделью, которую проектировщик передает следующему звену сотрудников - кодировщикам, которые дополняют полученную логическую модель системы моделями конкретных классов на конкретном языке программирования.

Необычайно богатый набор средств Rose предоставляет разработчикам:

  1. Проектирование систем - кодогенерация. Позволяет нарисованную модель преобразовать в описание на конкретном языке программирования. Поддерживается: С++, Ada, Java, Basic, Xml, Oracle. Также к Rose сторонними компаниями разрабатываются специальные мосты к не входящим в стандартную поставку языкам, например, к Delphi.
  2. Возможности обратного проектирования - реинжениринга, когда готовую информационную систему (например, на С++) или базу данных (на Oracle) "закачивают" в Rose с целью получения наглядной визуальной (структурной) модели.
  3. Round-trip engineering - сочетает возможности первых двух подходов, когда создается система, а по прохождении некоторого времени эволюционного периода (доработок) подвергается вновь реинженирингу и вновь кодогенерации.

В данное время Rational Rose поставляется в следующих редакциях:

Rose DataModeler - позволяет проектировать любые системы и базы данных без возможности кодогенерации.
Продукт направлен на аналитиков, проектировщиков

Rose RealTime - узкоспециализированная версия, способная проводить 100% кодогенерацию и реинжениринг только на С и С++. Имеет неполный набор диаграмм.

Продукт направлен только на разработчиков

Rose Enterprise - наиболее полная версия, включает в себя все вышеописанные возможности.

Продукт направлен на проектировщиков, аналитиков, разработчиков широкого профиля.

Итак, первый этап полностью пройден.

Следующим шагом на пути построения грамотной системы будет построение документооборота компании в соответствии со всеми возможными стандартами, чтобы документы целиком и полностью отражали реальное состояние дел.

Инструментом автоматизации документооборота занимается следующий продукт…

SoDA

suite5.gifРезультатом любой деятельности, а уж тем более компьютерно-разработческой, является документ или отчет заранее установленного образца. Еще лучше, когда "внутренние стандарты" как-то соотносятся с общепринятыми мировыми. Последнее особенно важно интернациональным командам, работающим совместно с зарубежными партнерами. На решение всех проблем с документооборотом направлен инструмент Rational SoDA. Его основная обязанность - подготовить отчет по заранее установленному шаблону. Данные для отчета берутся из любой программы Rational. Например, необходимо получить готовый документ по имеющейся модели в Rational Rose. SoDA позволит сгенерировать подобный отчет в считанные минуты, не упустив при этом ни одной детали. Само собой разумеется, что всю работу по написанию может взять на себя человек, скажем, технический писатель, но ему будет очень трудно "вынимать" из моделей спецификации и комментарии, перенося в текстовый редактор - это неправильный подход, ведь все это SoDA сделает сама в автоматическом режиме, представив результат в виде обычного документа в формате MS Word.

По сути дела, SoDA является макросом для MS Word. Система вызовов и меню интегрирована в Word и позволяет генерировать шаблоны на базе имеющихся файлов. SoDA допускает к использованию как стандартных шаблонов, так и созданных пользователем при помощи специального Wizard, также встроенного в систему меню Word.

Набор отчетов, поддерживаемых SoDA, таков: Rational Rose, Rose RealTime, Requisite PRO, ClearCase, TeamTest.

Продукт обязателен для использования в составе любого проекта. Также особенную направленность продукт имеет на разработчиков и постановщиков задач.

Описанные выше три программных продукта полностью покрывают потребности аналитиков, проектировщиков и разработчиков. Правда, вырванные из контекста процесса разработки, они не обеспечивают полноценной поддержки так называемого жизненного цикла разработки ПО. Для этих целей в методологии компании специально предусмотрен термин Unified Process - объединяющий процесс. Расшифруем сказанное: одна из главных проблем в разработке ПО - высокая специализация отделов, и, как следствие, узконаправленность специалистов, и, как последствие, - недостаточное понимание друг друга специалистами из разных отделов. Так вот данный "объединяющий процесс" - это набор программ, рекомендованных для участников проекта на всех его стадиях, дабы снять языковой барьер. Вот список программ, позиционированных как Unified: RUP, SoDA, Requisite PRO, ClearQuest.

О первых двух мы поговорили, перейдем к оставшимся двум!

Информационную систему любых размеров невозможно строить в отрыве от консультаций с заказчиком. Естественно, подобные консультации ведут к постоянному уточнению функций системы (выяснение требований). Подобное перекраивание строящейся системы редко ведет к ее улучшению, поскольку стороны изначально не договаривались о том, что система меняется (уточняется) в процессе разработки. Стало быть, все изменения носят шоковый характер, нанося немалый ущерб - как моральный, так и материальный. С точки зрения компании Rational, если на первом этапе выяснения функций планируемой системы у заказчика использовался инструмент Rational Rose, то 90% функций будет оговорено на самом начале пути разработки. И все же… требования будут вноситься, так пусть это будет обыденный безболезненный процесс!

Управлением требованиями занимается продукт Requisite PRO.

Requisite PRO

suite6.gifRequisitePro - это удобный инструмент для ввода и управления требованиями, который может использоваться всеми участниками команды. Продукт позволяет в наглядной форме получать, выводить, структурировать наборы вводимых требований.

Для каждого требования поддерживается набор атрибутов, позволяющий эффективно управлять проектом на основе задания иерархий требований, установки их приоритетов, сортировки, назначения требований конкретным исполнителям. Для требований предусмотрен, предопределен набор атрибутов, который может быть расширен пользователем по своему усмотрению, что позволяет характеризовать требования в соответствии с представлениями пользователя.

Развитые возможности прослеживания требований позволяют визуально определять схожие требования в рамках одного или нескольких проектов. Это дает возможность применения готовых апробированных решений в новом проекте. Возможность задания связей между требованиями позволяет легко проследить, какие требования следует подвергнуть анализу (и, возможно, пересмотру) при модификации некоторого конкретного требования или атрибута. Тем самым упрощается процесс внесения изменений.

Для каждого требования хранится его история, позволяющая отследить, какие изменения были внесены в требование, кем, когда и почему.

Выгоды эффективного управления требованиями с помощью RequisitePRO увеличиваются экспоненциально при использовании его всей командой разработчиков. RequisitePRO упрощает общение между разработчиками путем предоставления общего доступа ко всем требованиям проекта, либо к их части.

Все документы и данные, относящиеся к требованиям, централизованно организуются при помощи RequisitePRO. Требования заказчика, дизайн подсистем, сценарии, функциональные и нефункциональные спецификации и планы тестирования распределяются и связываются таким образом, чтобы максимально облегчить управление проектом.

Продукт также направлен на всех участников проекта.

Следующее решение от Rational (простите за каламбур) - это средство управления запросами на изменение - ClearQuest. Поскольку проект постоянно меняется, руководителям, менеджерам жизненно необходимо знать статистику того, что менялось, кем и в какое время. В большинстве же случаев необходимо видеть не просто объемную информацию о том или ином событии, а хочется иметь на какой-либо базе данных, скажем, на Oracle, полный объем необходимой информации.

ClearQuest помогает в решении данной задачи:

ClearQuest

suite7.gifClearQuest является мощным средством управления запросами на изменение (change request management - CRM), специально разработанным с учетом динамической и сложной структуры процесса разработки ПО. ClearQuest отслеживает и управляет любым типом действий, приводящих к изменениям в течение всего жизненного цикла продукта, помогая, тем самым, организациям более предсказуемым (правильным) образом создавать качественное ПО.

Основные задачи, решаемые посредством ClearQuest:

  • Управлять изменениями, возникающими в ходе процесса разработки ПО.
  • Оптимизировать путь прохождения запросов на изменения, а также связанные с ним формы и процедуры.
  • Через World Wide Web поддерживать связь внутри команд, разделенных территориально.
  • Внедрить надежный и проверенный процесс CRM, либо изменить уже существующий процесс для удовлетворения специфическим требованиям.
  • С помощью богатых возможностей графического представления информации и отчетов визуально анализировать полученный прогресс проекта.
  • Интегрироваться со средствами конфигурационного управления, такими как Rational’s ClearCase, позволяя создавать связи между запросами на изменение и развитие кода.

В качестве положительных черт данного продукта можно отметить его адаптивность (то есть продукт можно на месте доработать с учетом конкретной функциональности), масштабируемость, простоту в администрировании и использовании.

В работе с программой каждый участник проекта может заходить в базу и определять собственные запросы.

Запросы на изменения проходят цикл из нескольких состояний (states), начиная с подачи и заканчивая их разрешением. Например, только что поданный запрос находится в состоянии "Подан" (Submitted). После передачи запроса сотруднику он переходит в состояние "Назначен" (Assigned). Начало работы над запросом переводит его в "Открытое" состояние (Open), и вся команда может видеть, что кто-то обрабатывает запрос. Наконец, когда запрос проверен и закрыт, он проходит соответственно стадии "Проверка" (Verify) и "Закрыт" (Resolved).

Таким образом, любой участник проекта, от подчиненного до руководителя, может пользоваться базой в собственных целях.

Продукт направлен на всех участников команды.

Итак, мы рассмотрели пять программных продуктов, четыре из которых необходимы на протяжении всего цикла разработки ПО (RUP, ClearQuest, RequisitePRO, SoDA) и один, необходимый на самых ответственных этапах проектирования и кодогенерации (Rose, Rose RealTime). Естественно, что вышеперечисленные продукты основные, но не единственные, и уж совсем понятно, что только ими в процессе разработки ПО не обойтись!

После установления всех требований, заданий, документов настает время приступить к написанию программного продукта. За дело берутся разработчики. Для облегчения жизни разработчика и улучшения производимого им кода, компания Rational также предусмотрела определенный набор программных решений. К сожалению, в арсенале компании пока нет среды разработки (компилятора), но продукты компании, направленные на помощь разработчику, очень тесно интегрируются со многими популярными инструментальными средствами ведущих компаний, таких как: Microsoft, Oracle, IBM и др. Стало быть, если ваша компания использует инструментальные средства вышеупомянутых компаний и желает повысить качество программного обеспечения, то технологии Rational бесспорно в этом помогут. А учитывая то, что пока компания Rational Software - единственный поставщик интегрированных средств для всех этапов разработки ПО, то выбор становится крайне очевидным.

Вернемся к разработчикам. Прежде всего, чтобы получить качественный код, разработчик должен лишить код ошибок и настроить его на максимальную производительность. После чего передать тестировщикам для вылавливания логических (высокоуровневых) ошибок.

Следующие 4 программы помогут разработчику существенно повысить качество кода, снизив при этом время, необходимое на детальную проработку кода.

Quantify

suite8.gifРазработчик постоянно сталкивается с проблемой необходимости увеличения производительности собственного приложения в сжатые сроки и с максимально возможной эффективностью. Проблема вечная по определению и нетривиальная по сути, поскольку, из-за отсутствия необходимого инструментария, придется вручную замерять скоростные характеристики разрабатываемых приложений, дописывая для этого килобайты отладочных функций и циклов вызова. А если недосуг набивать горы новых тест-функций, придется обзавестись таймером и замерять фрагменты кода с точностью до секунды. Естественно, что подобную работу нельзя назвать продуктивной.

Rational Quantify позволяет решить описанные выше проблемы за один проход. Это простое, но в то же время мощное и гибкое средство учета производительности приложений - незаменимый инструмент для сбора и анализа информации о производительности созданного программного продукта.

Quantify генерирует в табличной форме список всех вызываемых в процессе работы приложения функций, указывая временные характеристики каждой из них.

Quantify предоставляет полную статистическую выкладку по всем вызовам (внешним и внутренним), невзирая на размеры тестируемого приложения и время его тестирования. Сбор данных осуществляется посредством технологии OCI (Object Code Insertion). Суть способа состоит в подсчете всех машинных циклов путем вставки счетчиков в код для каждого функционального блока тестируемой программы (все циклы приложения просчитываются реально, а не при помощи произвольных выборок, как в большинстве пакетов тестирования). Уникальность данного подхода заключается в том, что, во-первых, тестируется не только сам исходный код, но и все используемые компоненты, (например: библиотеки DLL, системные вызовы), а во-вторых, для подобного анализа совсем необязательно иметь исходные тексты тестируемого приложения (правда, в этом случае нет возможности отслеживать внутренние вызовы).

Статистическая информация по вызовам может быть перенесена в Microsoft Excel, где можно построить как графики, так и сводные таблицы для разных запусков программы.

Еще хочется поставить акцент на то, что тестируемое приложение можно перекомпилировать и запустить повторно, при этом Quantify способен запомнить все предыдущие вызовы и дать сравнительную оценку.

Продукт ориентирован на разработчиков.

Purify

suite9.gifДанный продукт направлен на разрешение всех проблем, связанных с утечками памяти и Run-time ошибками. Не секрет, что многие программные продукты ведут себя "не слишком скромно", замыкая на себя во время работы все системные ресурсы без большой на то необходимости. А это и есть путь, который приведет готовую систему к краху в самый ответственный момент. Возникновение подобного рода ошибок достаточно трудно отследить стандартными средствами, имеющимися в арсенале разработчика. И дело тут не только в том, что разработчик может где-то недосмотреть, где-то пересмотреть, а в том, что в подавляющем большинстве случаев проектные сроки вынуждают смотреть "сквозь пальцы" на "мелкие" неточности.

Стандартного рецепта для решения подобных проблем не было до недавнего времени (просто не было продукта, который бы взял на себя поиск подобных ошибок, освободив разработчика для более абстрактных, концептуальных материй).

Как видится, имея в своем распоряжении надежный инструмент, который бы сам в процессе работы над проектом указывал на все черные дыры в использовании памяти, разработчики начали бы его повсеместное внедрение, повысив надежность создаваемого ПО.

В общих чертах работа Purify сводится к выводу детальнейшей статистики об использовании памяти приложением. Программа собирает данные о любых потерях в памяти. К ним можно отнести и банальное невозвращение блока, и не использование указателей, и остановку исполнения программы с выводом состояния среды при возникновении ошибки run-time.

Purify предоставляет возможность разработчику не только видеть состояние исполнения (предупреждения, ошибки), но и переходить к соответствующему исходному тексту (естественно, такая возможность существует только для внутренних вызовов, поскольку исходные тексты динамических библиотек пока программистам недоступны).

Очень мощный продукт, обладает достаточно простым интерфейсом и осваивается специалистом за 2-3 дня.

Продукт ориентирован на разработчиков.

PureCoverage

Перейдем к рассмотрению Rational Pure Coverage. Он позволит разработчикам довести собственные программы до состояния абсолютной эффективности, освободив от ошибок и странностей.

Основное и единственное назначение продукта - выявление участков кода, пропущенного при тестировании приложения. Вполне очевидно, что при тестировании (даже при самом дотошном) программы специалисту не удается оттестировать абсолютно все ее функции. А невозможно это как правило по двум причинам: во-первых, разработчик не может сделать все абсолютно правильно с учетом всех возможных нюансов, во-вторых, даже учитывая все возможные реакции приложения на внешние "раздражители" невозможно на 100% быть уверенным в том, что все оттестировано. Согласитесь - достаточно обидно будет получить системную ошибку после просьбы заказчика ткнуть мышью в красивую кнопку на экране.

После такого провала уже никому не доказать, сколько бессонных ночей проведено в детальном всестороннем тестировании программы, и что как раз именно не прошедшая тестирование функция привела к фатальному сбою... Но если Вы, как разработчик, воспользуетесь средством Rational PureCoverage, то сможете раз и навсегда забыть о мучительном поиске невыполненного кода в собственной программе.

Pure Coverage собирает статистику о тех участках программы, которые во время тестирования не были выполнены (пройдены). Дополнительно программа считает так называемые хиты - активно исполнявшиеся строки.

Стало быть, разработчик может оценить не просто, сколько раз вызывалась та или иная функция, а сколько раз исполнилась каждая строка, составляющая ее. Имея подобную статистику, очень просто выявить не исполнившиеся строки и проанализировать причину, по которой они не получили управления.

Подобные строки Pure Coverage подсвечивает красным цветом, четко указывая на наличие черных дыр в программе в виде неоттестированного кода, и тем самым давая разработчику хорошую пищу для размышлений. В работе данный инструмент так же прост, как и вышеописанные.

Продукт направлен на разработчиков.

От тестирования кода программы плавно перейдем к функциональному и нагрузочному тестированию. Это следующий этап в разработке ПО, когда определены все требования к системе, когда написана какая-то работоспособная версия программы или отдельного сегмента, и ее необходимо протестировать. Приведенные ниже три основные программы тестирования направлены на высокоуровневое тестирование, такое как: тестирование интерфейса, нагрузочное тестирование приложений клиент-сервер… Спектр тестируемого достаточно широк! Причем каждая из программ не просто позволяет что-то тестировать, а способна создавать специальные скрипты для последующего повторного использования, например, чтобы узнать, как сказались на функциональности те или иные изменения, внесенные разработчиком в программу. Имея набор подобных тестовых программ, можно перейти от широко практикуемого кустарного тестирования к профессиональной тестовой лаборатории. Последнее, в свою очередь, даст существенный скачок в качестве выпускаемых приложений.

VisualTest

suite10.gifVisual Test 6.0 предоставит то, что разработчики программного обеспечения ищут в любом инструменте - гибкость и мощь, одновременно обеспечивая "любимое" свойство менеджмента - исключительный доход от инвестиций. Основное свойство программы должно особенно порадовать программистов, поскольку приставка Visual в названии программы не случайна! Продукт имеет интерфейс, сходный с VisualStudio от компании Microsoft. То есть при изучении продукта тратится минимум времени.

Продукт по своей природе достаточно "всеяден", позволяя производить любое тестирование, начиная от 32-битного Windows-приложения, компонентов ActiveX, DLL, сервера автоматизации OLE (OLE Automation server) или приложения на основе Web. Visual Test является автоматизированным инструментом тестирования для любых задач.

Visual Test дает возможность создавать поддерживаемые, расширяемые и пригодные для повторного применения компоненты тестирования, которые можно приспосабливать ко многим версиям и после некоторого планирования ко многим проектам.

Основу гибкости и мощи Visual Test составляет производный от Visual Basic расширенный язык программирования TestBasic, с сотнями специфических для теста функций, специальных конструкций для облегчения тестирования, простого доступа к Windows API и открытой архитектурой, которая делает этот язык расширяемым.

Данный продукт обеспечит надежное функциональное тестирование.

Продукт ориентирован на разработчиков и тестировщиков.

Robot

suite11.gifRational Robot - средство функционального тестирования, базирующееся на объектно-ориентированной технологии, что позволяет существенно превзойти традиционные средства GUI-тестирования (тестирования графического интерфейса), так как здесь тестируются сотни и тысячи свойств всех объектов приложения (даже скрытых объектов), как вместе, так и каждого в отдельности.

Программа способна работать в двух режимах: в автоматическом и ручном. В ручном режиме пользователь сам задает на специальном языке сценарий тестирования (скрипт), в автоматическом - пользователь тестирует приложение, а Robot автоматически генерирует необходимый скрипт для дальнейшего повторного тестирования.

Скрипты, создаваемые в Rational Robot, обеспечивают поиск ошибок в приложении, оставаясь виртуально независимыми от внесенных изменений и платформы. Без дополнительных изменений скрипты могут использоваться на Microsoft Windows 95, Windows 98 и Windows NT. Объектное тестирование обеспечивает быстрое создание скриптов, которые в дальнейшем можно легко изменять, создавать заново и воспроизводить. Rational Robot поддерживает широкий спектр языков программирования и ERP-решений. Rational Robot позволяет редактировать, отлаживать и настраивать скрипты. Допускает также тестирование сложных систем клиент/сервер на платформе Windows.

Внедрение подобного универсального инструмента для всеобъемлющего GUI тестирования даст существенный прирост в эффективности проводимого тестирования.

Продукт ориентирован на разработчиков и тестировщиков.

LoadTest

suite12.gifLoadTest - средство автоматизированного тестирования характеристик распределенных сетевых приложений на платформах Windows и Unix.

Тесты производительности выполняются с помощью программы LoadTest. При этом тестировании типично используется нагрузка сервера большим количеством виртуальных пользователей. Например, Вы можете установить таймер для одного VU, чтобы определить, сколько времени займет выполнение запроса, когда тысячи других VU посылают запросы на тот же самый сервер в то же самое время. Термин "тесты производительности" включает нагрузочные, стрессовые, конкурирующие и конфигурационные тесты. Совокупность этих тестов позволяет ускорить цикл тестирования производительности и достигнуть значимых и точных результатов.

Нагрузочное тестирование с использованием LoadTest выполняется тогда, когда нужно определить время отклика серверов или клиентских приложений при изменяющейся нагрузке. Нагрузочное тестирование также используется тогда, когда нужно вычислить, какое максимальное количество транзакций может выполнить сервер за определенный временной отрезок. Если клиент/серверная система использует распределенную архитектуру или средства балансировки нагрузки - нагрузочное тестирование может быть использовано для того, чтобы проверить правильность выбранных методов для балансирования или конструирования системы.

Нагрузочное тестирование выполняется как с использованием режима только виртуальных пользователей, когда измеряется время отклика только серверной части или комбинации виртуальных пользователей, так и пользователей графического интерфейса для измерения времени отклика системы для конкретного клиентского приложения.

Таким образом, становится возможным при использовании данной программы проверять на производительность любую систему клиент/сервер.

Продукт направлен на тестировщиков, разработчиков, WEB-разработчиков.

Теперь пройден еще один этап на пути построения качественного программного обеспечения. Осталось описать только связующее звено - программный продукт, который бы использовался на всех этапах проекта: от идеи и до внедрения. Rational предлагает такой продукт - это Rational ClearCase - средство конфигурационного и версионного контроля, которое сохраняет всю историю каждого файла проекта с целью возможного сравнения изменений, включая миграцию файлов между независимыми проектами.

ClearCase

suite13.gifРекомендованный как средство контроля для командной разработки, ClearCase превосходно справляется с возложенной на него задачей. Являясь, по сути, высоко масштабируемым приложением клиент-сервер, ClearCase объединяет всех участников проекта единой средой, хранящей всю возможную информацию, относящуюся к проекту, позволяя получать последние версии редактируемых файлов.

Продукт совмещает полный SCM, включая контроль над версиями, управление рабочим пространством с помощью уникального инвариантного подхода. Посредством ClearCase команда разработчиков может ускорить циклы разработки, убедиться в точности релизов, создавая новые, надежные в эксплуатации продукты, а также дорабатывать и поддерживать ранее реализованные продукты, организовывать эффективный процесс разработки - и все это без изменения среды, инструментальных средств и подхода к работе.

suite14.gifПродукт обеспечивает продвинутое управление версиями исходных текстов, библиотек и на протяжении всего жизненного цикла проекта, позволяя тем самым разработчику вернуться к любой версии редактируемого файла и откорректировать его, создав новую версию.

Каждый участник проекта может иметь доступ как ко всем файлам проекта, так и к только определенной его части. Для достижения подобного эффекта ClearCase использует мощную систему настраиваемых фильтров, скрывающих ненужную информацию. Система видов разительно отличает ClearCase от продуктов конкурирующих фирм, поскольку позволяет осуществить параллельную разработку, а также позволяет отдельному участнику проекта выходить из общего состава разработки, забирая работу "на дом", а после всех внесенных изменений вернуть версии снова в проект. При этом ClearCase осуществит автоматическое слияние версий.

В дополнение к описанным возможностям, ClearCase позволяет объединять географически удаленные команды разработчиков посредством MultiSite - специального модуля, осуществляющего репликацию (передачу) текущего состояния проекта на указанный сайт.

В условиях бурно развивающейся и подверженной изменениям IT - индустрии становится все сложнее и сложнее давать оценку программному продукту как чему-то независимому, вырванному из общего контекста разработки. Поэтому принимается во внимание степень поддержки данного продукта теми или иными средствами компаний, создающих средства разработки. В частности, продукт версионного контроля не может быть функционально полным без определенных механизмов интеграции со средствами разработки, с различными дополнительными генераторами отчетов и пр.

Продукт ориентирован на всех участников команды: директоров, менеджеров, разработчиков, аналитиков, тестировщиков, технических писателей.

Наборы Suite

Продукты компании Rational полностью оправдывают свою не очень низкую стоимость, поэтому при продаже большого количества программ Rational создает специальные тематические группы - наборы (Suite), в состав которых (в зависимости от комплектации) входят все необходимые продукты по более низким ценам, чем при их покупке по отдельности.

Suite - это наборы основных программных продуктов, направленных на покрытие одного или нескольких этапов разработки программного обеспечения. Данный подход вполне оправдывает себя, поскольку, например, команде аналитиков незачем переплачивать за средства тестирования, которые им не нужны, и наоборот - тестировщикам ни к чему ставить Rose Modeler для проектирования баз данных. Второе преимущество наборов заключается в том, что их легче устанавливать и администрировать, поскольку продукты идут комплектом, а не разрозненно.

Бесспорно, что покупка наборов более выгодна как с финансовой точки зрения, так и с практической, но если Вам все же необходимо нечто разрозненное, то Вы можете приобретать продукты по отдельности. Данный подход никак не скажется на интегрированности программных компонент друг с другом. Все разрозненные программы будут работать так же слаженно, как если бы "сидели" в одном Suite. Мало того, вы можете к уже купленному набору подключать разрозненные программы, повышая, тем самым, его насыщенность без ущерба совместимости и интегрированности.

Итак, как говорилось выше, различные наборы направлены на покрытие определенных этапов, описанных в RUP. Давайте подробнее разберемся с тем многообразием наборов, предлагаемых Rational, а для начала приведем сводную таблицу наличия продуктов в том или ином наборе:

Таблица №1

Продукт Analyst Studio Development Studio Test Studio Enterprise Performance Studio
Rational Rose
(DM)
(E, RT)    
(E)
Rational Purify          
Rational Quantify          
Rational PureCoverage          
Rational Robot          
Rational TestFactory          
Rational LoadTest          
Объединяющие утилиты
Rational Unified Process          
Rational Requisite PRO          
Rational ClearQuest          
Rational SoDA          

Примечание:

DM - DataModeler; RT - RealTime; E - Enterprise

Продукты VisualTest и ClearCase в наборы не входят и распространяются отдельно

Как видно из таблицы, покупка любого набора подразумевает приобретение унифицированного набора из четырех продуктов + специальное программное обеспечение.

Рассмотрим более подробно назначения приведенных наборов.

Rational Suite AnalystStudio. Направлен на определение и управление полным и четким набором требований на разработку проекта. Данную редакцию продукта можно рекомендовать аналитикам. Данная поставка включает в себя для проектирования Rose Data Modeler, которая неспособна производить кодогенерацию.

Rational Suite DevelopmentStudio. Обеспечивает все функции визуального моделирования информационных систем на основе известных и проверенных продуктов.

DevelopmentStudio предоставляет все необходимое для создания высококачественного программного продукта в установленные сроки и без превышения бюджета. В зависимости от поставки, может включать Rational Rose RealTime или Enterprise.

Продукт ориентирован на аналитиков, разработчиков и проектировщиков.

Rational Suite TestStudio. Представляет собой набор инструментов, предназначенных для детального тестирования приложений. Позволяет избавиться от рутинной работы по тестированию приложений.

Редакция рекомендуется для тестировщиков.

Rational Suite PerformanceStudio. Обеспечивает поддержку полного жизненного цикла разработки информационной системы, позволяет проводить тестирование приложения под нагрузкой, быстро создавать тесты, эмулирующие работу большого числа пользователей, с целью определения производительности и надежности распределенного приложения.

Ориентирован на всех участников проекта.

Rational Suite Enterprise. Полнофункциональная редакция пакета, обеспечивает поддержку полного жизненного цикла разработки информационной системы. Продукт ориентирован на менеджеров проекта, отдельных программистов, выполняющих несколько функциональных ролей в команде разработчиков.

Какова же общая рекомендация по использованию и приобретению наборов? По сути, выше все уже достаточно подробно расписано, но можно добавить следующее: если Вы не знаете конкретно, будет компания заниматься только проектированием или проектированием и разработкой, то скорее всего Вам необходимо приобрести AnalystStudio, и, поработав с ним некоторое время, модернизировать до следующей ступени. Также есть смысл приобретать AnalystStudio для проведения бизнес-моделирования. Для данных целей набор содержит все необходимое.

Если же ваша компания специализируется только на разработке программного обеспечения, то здесь есть смысл приобрести DevelopmentStudio. А в зависимости от поставленных задач просто DevelopmentStudio или DevelopmentStudio RealTime. По функциональности они абсолютно одинаковы, за исключением версии Rose. Соответственно, данный продукт не содержит мощных средств тестирования.

Для тех же, кому надо покрыть сразу весь цикл, можно порекомендовать Suite PerformanceStudio и Suite Enterprise.

Политика лицензирования

Пожалуй, самая "секретная" тема. Поскольку до того как не встал вопрос о покупке, редко узнают о схемах лицензирования. По примеру Suite’ов схема лицензирования такая же увесистая. Обилие схем объясняется тем, что компания Rational пытается охватить как можно больший сегмент рынка программных средств и инструментов. В резудьтате даются различные схемы приобретения и скидки.

Итак, сначала о лицензиях. Лицензии бывают двух видов NodeLocked и Floating:

NodeLocked - одиночная лицензия, которая ставится только на один компьютер. Соответственно, запуск программы с данным видом лицензии возможен только на конкретном компьютере, для которого и была сгенерированна лицензия.

Floating - "плавающая" лицензия. Данная лицензия ставится на сервер компании. При получении данной лицензии оговаривается количество работающих станций. Например, куплено 12 лицензий на какой-то продукт, соответственно ОДНОВРЕМЕННО с ним могут работать могут только 12 пользователей, а на скольких рабочих станциях будет установлено программное обеспечение - неважно. Данный вид лицензии предусматривает установку специального программного обеспечения на сервер и подразумевает наличие доступа к локальной сети с каждого рабочего места.

Ключи (лицензии) делятся не только на два вышеуказанных типа, но и еще по времени действия. Ключи бывают постоянные и временные. Временные ключи выдаются пользователю с целью ознакомления с продуктом на срок 20-45 дней. В Rational отлично понимают, что потенциальный заказчик не будет вкладывать крупные деньги в автоматизацию производства, если не будет уверен в том, что данная покупка именно то, что нужно. Для этих целей предназначена временная лицензия, которая НЕ ограничивает продукт ФУНКЦИОНАЛЬНО, а сокращает его срок службы. Соответственно, демо-версий программ у Rational нет - все продукты и триалы, и рабочие, но в зависимости от типа лицензии.

С постоянной лицензией немного сложнее, для ее получения необходимо заполнить специальную анкету, пропустить через программу лицензирования и отправить в головной офис Rational. Через некоторое время из Rational присылают "готовый к употреблению" ключ (работать который будет только на той машине, с которой был послан запрос).

Таблица совместимости продуктов Rational и Microsoft

Компания Rational выбрала себе генерального, стратегического партнера, и имя данному партнеру Microsoft. Соответственно, все продукты из арсенала Microsoft будут так или иначе поддерживаться в средствах Rational. Для более детального ознакомления с тем, какие продукты и как совмещаются, в статье представлена таблица №2. В ней рассмотрены практически все продукты Rational, и то, как они сочетаются с MS. Уровень сочетания двухэтажный: первый - это простая поддержка, когда продукт, в принципе, может вести обмен данными с совместимой программой. Второй - это интеграция, когда продукт интегрируется в инструментальную панель или в меню указанной программы.

Таблица №2

Rational [Microsoft] [Поддержка] [Интеграция]
ClearCase Internet Information Server [ДА][НЕТ]

Internet Explorer [ДА][НЕТ]

MS Word [ДА][ДА]

MS FrontPage [ДА][ДА]

MS Development Studio(VC++, VB, J++)[ДА][ДА]

ClearQuest MS SQL [ДА][НЕТ]

MS Access [ДА][НЕТ]

Visual Source Save [ДА][ДА]

RUP MS Project (описывается необходимость применения)
VisualTest MS VisualStudio [ДА][ДА]
Purify, Quantify, PureCoverage MS Development Studio (VC++, VB,J++)[ДА][ДА]

Экспорт данных в Word, Excel [ДА][НЕТ]

Rose Enterprise, Rose RealTime MS Development Studio(VC++, VB, J++)[ДА][ДА]

MS Word [ДА][НЕТ]

RequisitePro MS Word [ДА][ДА]

MS SQL [ДА][НЕТ]

MS Access [ДА][НЕТ]

MS Excel [ДА][ДА]

LoadTest Internet Information Server [ДА][НЕТ]

MS SQL [ДА][НЕТ]

Robot MS Development Studio(VC++, VB, J++)[ДА][НЕТ]

Internet Information Server [ДА][НЕТ]

MS SQL [ДА][НЕТ]

Access [ДА][НЕТ]

SoDA MS Word [ДА][ДА]
Administrator  MS Access [ДА][НЕТ]


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=4828