Перейти к тексту

  Список журналов > Оглавление > 
 

Инновации в технологиях и бизнесе

Rational Software как зеркало программной революции

   
 

История компании Rational Software, ныне одного из подразделений IBM, являет собой один из наиболее ярких примеров становления методов программной инженерии. Rational Suite в свое время стала первым интегрированным решением для разработки программного обеспечения. Теперь в продуктах IBM Rational развиваются идеи коллективной работы на уровне всей компании. IBM Software Development Platform является первой интегрированной платформой, которая позволяет увязать задачи разработки ИТ с целями бизнеса

Собравшись под крылом Rational Software, Гради Буч (на фото), Ивар Якобсон и Джим Рамбо образовали прочный творческий союз. В 1995 году их совместными усилиями на свет появился язык Unified Modeling Language

В середине 60?х годов в софтверной индустрии было отмечено явление, получившее название «кризис программирования». По мере развития индустрии программирования выяснилось, что классическая схема разработки, проверенная годами и состоящая из трех основных этапов — написание кода на языке, компиляция и отладка, обычно в машинных кодах, — по достижении определенного уровня системной сложности становится неэффективной. Последовавшие вслед за этим разнообразные антикризисные мероприятия в конечном итоге привели к появлению новой дисциплины «программная инженерия» и созданию специализированных инструментальных сред, повышающих продуктивность труда программистов. Сегодня по-прежнему «пишут в кодах» лишь менее 30% общего числа действующих разработчиков, которых в мире насчитывается около 15 млн. Остальные работают в тех или иных средах, причем в среднем каждый из пользующихся инструментарием разработки создает в пересчете на строки кода на порядок больше программ, чем пару десятилетий назад.

Одним из лидеров среди тех немногочисленных компаний, которые способствовали достигнутому прогрессу в технологии программирования, была и остается Rational Software, с 2003 года входящая в состав IBM. Внешне ее история почти не отличается от истории большинства других софтверных компаний. Она началась, как это обычно бывает, с личной инициативы, а именно с того, что двое выпускников Академии ВВС США Пол Леви и Майк Девлин в 1981 году решили создать свою собственную компанию. Принятому решению предшествовал почти двадцатилетний период участия в серьезных оборонных проектах, из которого они вынесли твердое убеждение в необходимости разработки средств, рационализирующих процесс создания программного обеспечения. Может быть, поэтому они включили в название своей компании слово rational.

Поначалу компания называлась Rational Machines, именно Machines, а не Software. Дело в том, что Rational Environment — первый продукт, выпущенный в 1985 году, был аппаратно-программным, он состоял из компьютера R1000 собственной разработки и программного обеспечения, поддерживающего процесс создания приложений на языке Ada. Выбор Ada объясняется широким применением этого языка в оборонных проектах, что гарантировало финансирование, к тому же Леви и Девлин имели значительный опыт работы с ним. Но дело было не только в благоприятной конъюнктуре: язык Ada лучше других подходил для компонентного программирования с абстрактными интерфейсами.

Уникальный специализированный компьютер R1000 предназначался исключительно для поддержки процесса разработки на Ada, а единственным программным обеспечением, которое работало на нем, была среда разработки Rational Environment. Эта среда включала в себя редактор, способный обнаруживать синтаксические ошибки, и отладчик, позволявший выполнять отладку на уровне исходных кодов. Это было колоссальным шагом вперед, в то время все остальные технологии позволяли вести отладку только в машинных кодах.

R1000 обладала оригинальной микропрограммной архитектурой. В отличие от обычных фон-неймановских машин она позволяла одновременно выполнять два потока команд: вычисления и их проверку. Важно, что компилятор, входивший наряду с интерпретатором в состав программного обеспечения, был сертифицирован Минобороны США. Машина имела оригинальную встроенную файловую систему для хранения фрагментов программ и специализированную базу данных DIANA, которая позволяла аккумулировать отлаженные фрагменты и собирать из отдельных модулей законченную программную систему.

Одним из лидеров среди тех немногочисленных компаний, которые способствовали достигнутому прогрессу в технологии программирования, была и остается Rational Software, с 2003 года входящая в состав IBM
Однако к концу 80?х годов появились новые технологии. Взамен специализированного компьютера R1000 оказалось возможным применить универсальную мини-ЭВМ VAX или рабочие станции на процессорах Motorola 68000 и Intel X86. Кроме того, в результате сотрудничества с Биллом Вульфом, основателем исследовательской компании Tartan Labs, удалось коммерциализировать разработанную им технологию PQCC для полуавтоматической генерации кодов на основании описаний архитектуры. В 1990 году Rational запустила три параллельных проекта.

  • Перенос среды Rational Environment для Ada на рабочие Unix-станции компаний Sun и IBM. Под названием Apex среда Rational Environment для Ada была запущена в 1993 году. Версия Apex, работавшая под Microsoft Windows NT, была разработана позже в филиале компании, расположенном в Бангалоре (Индия).
  • Разработка совместимой среды Rational Environment для C++, которая тоже должна была работать на Unix-станциях компаний Sun и IBM. Проект был завершен в 1994 году.
  • Разработка средств моделирования, основанных на графической нотации, предложенной Гради Бучем.

Rational Rose

Первая версия среды визуального моделирования Rational Rose была создана после перехода в компанию нескольких инженеров из General Electric. В 1992 году Rose 1.0 была представлена публике, но оказалась неудачной по целому ряду показателей. Серьезно переработанная Rose 2.0 включала в себя оконный редактор под названием Object System Designer, использовавший нотацию Буча. Эта нотация является частью метода Буча, одного из приемов программной инженерии, названного так по имени его создателя Гради Буча, сотрудника Rational Software.

Среда Rose 2.0 предназначалась для разработки на языке C++ на Windows PC и рабочих Unix-станциях. Она превосходила по своим возможностям конкурентов и тем самым компенсировала небольшое опоздание компании с выводом на рынок инструментов моделирования для объектно-ориентированных языков. Позднее Rose была адаптирована к языкам Ada, Java, Visual Basic и другим.

До 1994 года компани я называлась по-прежнему Rational Machines, и только с приобретением Verdix, известного производителя компилятора для Ada, она была переименована в Rational Software. Основной задачей Rational Software на этом этапе было создание интегрированных сред разработки для языков Ada и C++. Любопытно, что в то время приводились многочисленные сравнительные исследования этих двух языков, участие в которых принимала и Rational Software. Исследования однозначно показали по меньшей мере двукратное преимущество Ada по стоимости разработки и надежности программ, количество ошибок на Ада было в четыре раза меньше, но в силу разных обстоятельств перевес оказался на стороне C++.

Rational Suite в свое время стала первым интегрированным решением для разработки программного обеспечения. Теперь в продуктах IBM Rational развиваются идеи коллективной работы на уровне всей компании

UML и его создатели

Следующий важный этап в истории Rational начался в 1995 году, когда в компанию пришел Джеймс Рамбо, а затем у Ericsson была куплена шведская компания Objectory AB. Эта фирма, до вхождения в Ericsson носившая название Objectory Systems, была основана в 1987 году Иваром Якобсоном. Objectory Systems специализировалась на технологии объектно-ориентированных разработок ObjectOry, получившей известность как Ericsson Approach. Она обладала собственным языком моделирования, в котором использовались специальные карты, представлявшие диаграммы последовательностей.

Собравшись под крылом Rational Software, Гради Буч, Ивар Якобсон и Джим Рамбо образовали прочный творческий союз. В 1995 году их совместными усилиями на свет появился язык Unified Modeling Language (UML). Пилотная версия была в большей степени заявкой, нежели готовым продуктом; поэтому, как это принято в подобных обстоятельствах, она с осторожностью именовалась UML 0.8. Первая коммерческая версия UML 1.0 была выпущена на рынок компанией Rational Software два года спустя.

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

В отечественной литературе UML принято именовать «универсальным языком моделирования»; несмотря на то, что это название привилось, его нельзя признать слишком удачным. Оно содержит сразу две неточности. Во-первых, язык UML отнюдь не претендует на универсальность, в оригинале первое слово Unified, а не Universal, что отражает объединение результатов трудов трех соавторов, не более того. Во-вторых, Modeling в данном контексте скорее стоило бы переводить как «макетирование». Язык UML изначально не задумывался в качестве инструментального средства для создания какой-то действующей модели. Чаще всего он служит лишь «ручным» инструментом для выражения концептуальных взглядов — примерно так, как глиняная модель позволяет скульптору отработать прототип будущего произведения, высекаемого из мрамора. Однако если создать достаточно детальное описание приложения, то такое описание вполне может быть скомпилировано в работоспособную программу.

Возвращаясь к истории, стоит отметить, что идея объектно-ориентированного моделирования была популярна уже в 80?годы. Параллельно существовало несколько десятков различных методик, говорили даже о «войне методик», в результате которой выжили немногие, в том числе и UML, возможно потому, что Буч, Якобсон и Рамбо объединили лучшее из своих разработок, называвшихся соответственно Booch, OOSE и OMT.

Хронологически первым был Рамбо. Он в 1991 году предложил метод объектного моделирования Object Modeling Technique (OMT). Участвуя в девятой ежегодной конференции по объектно-ориентированному программированию OOPSLA 94, Буч и Рамбо, оба бывшие в ту пору сотрудниками Rational, пришли к выводу о целесообразности слияния своих методик и начали совместную работу. Осенью 1995 года к ним подключился Якобсон, автор методики OOSE (Object-Oriented Software Engineering), одновременно с этим событием его компания Objectory объединилась с Rational Software.

В следующем году инициатива создателей UML была поддержана несколькими общественными и коммерческими организациями, центром кристаллизации стал консорциум Object Management Group (OMG). Тогда же был избран традиционный способ взаимодействия участников посредством выпуска предложений для обсуждения (Request for Proposal, RFP). Наибольший вклад в UML 1.0, версию, появившуюся в январе 1997 года, внесли Digital Equipment, HP, IBM, Microsoft, Oracle, Rational Software, Texas Instruments и Unisys. Присоединившиеся к ним после этого компании предложили свои идеи, в итоге в сентябре 1997 года была выпущена версия UML 1.1. На протяжении семи последующих лет UML претерпел ряд последовательных модернизаций вплоть до версии 1.5 (2003 год), и, наконец, последняя, значительно обновленная редакция UML 2.0 была опубликована в 2004 году.

На пике активности, накануне краха Internet-бу ма, годовой доход Rational Software составлял 850 млн. долл., и в ней работало почти 4 тыс. сотрудников. В 2003 году IBM приобрела Rational Software за сумму, превышавшую 2 млрд. долл., что косвенным образом свидетельствует о значении средств разработки ПО на основе UML. Нынешняя версия UML 2.0 выпущена в рамках подразделения IBM, сохранившего название Rational Software. По сравнению с предыдущей версией она отличается качеством, которое получило наименование «семантика действия» (action semantics). Этот подход к моделированию обеспечивает более точную детализацию, вплоть до отдельных операций. В некоторых случаях он позволяет непосредственно транслировать модель в программу. Таким образом обеспечивается поддержка современных архитектур и разработок, управляемых моделями (Model Driven Architecture, MDA и Model Driven Development, MDD).

На момент вхождения Rational в IBM в компании работало около 3400 сотрудников, действовало 80 офисов по всему миру, ее продуктами пользовались более 600 тыс. разработчиков. С тех пор продукты корпорации развиваются и распространяются под торговой маркой IBM Rational (http://www.ibm.com/software/ru/rational).

Rational Suite в свое время стала первым интегрированным решением для разработки программного обеспечения. Теперь в продуктах IBM Rational развиваются идеи коллективной работы на уровне всей компании. IBM Software Development Platform является первой интегрированной платформой, которая позволяет увязать задачи разработки ИТ с целями бизнеса.