Интервью с Гради Бучем, главным научным сотрудником компании Rational Software, автором ряда книг по объектно-ориентированному программированию, одним из авторов языка UML.
На первый взгляд, темы свободы и воли имеют больше отношения к философским рассуждениям, нежели к разработке приложений.
Гради Буч, главный научный сотрудник компании Rational Software, выпускающей программное обеспечение, так не считает. Он и его сотрудники стремятся освободить разработчиков от оков, мешающих творчеству. Буч считает, что существует разумный баланс между свободой творчества, с одной стороны, и контролем и планированием, необходимым для написания кода, с другой. В наибольшей степени это относится к крупным проектам корпоративного уровня. В интервью ответственному редактору InfoWorld Тому Салливану Буч рассказал о том, как директора по ИТ могут помочь отделам разработки достичь этого баланса, как развивается UML (Unified Modeling Language) и как будет создаваться программное обеспечение в ближайшие три-пять лет.
Чего уже удалось добиться Rational?
Мы всерьез задумываемся над тем, чтобы отказаться от жесткого контроля за группами разработки. Создание программного обеспечения по сути своей — крайне сложная работа. В Rational имеются инструментальные средства, методики, принципы и службы, способные, как аспирин, избавить от мук и, как витамины, улучшать общее состояние.
Когда вы говорите о свободе разработки или о снятии контроля, от чего именно вы освобождаете разработчиков?
На плечи тех, кто работает с кодом, ложится самый тяжелый груз. Необходимо избавить их от ненужных ограничений, чтобы они могли творить и создавать выдающиеся продукты, и в то же время заботиться о возврате от инвестиций в программную разработку и создавать то, что представляется важным для организации. Это создает весьма напряженную обстановку. Существует два типа целей: экономические, с одной стороны, и творческие и технические — с другой. Необходимо согласовывать их таким образом, чтобы создавать продукты, имеющие ценность для организации. Самое сложное, как говорят художники, работать с чистым листом бумаги, когда ничто тебя не ограничивает. Одна из главных ценностей структуры и стандартов заключается в том, что они помогают направить творческую энергию разработчиков. Необходимо добиваться баланса. Вы хотите, чтобы лучшие специалисты вашей организации создавали превосходные продукты, но проблема состоит в том, что, даже если собрать их в одной комнате и снабдить всем необходимым, то результат не всегда будет предсказуемым. Возникает вопрос: как объединить все наилучшие решения и с помощью инструментальных средств добиться того, чтобы их приняли все сотрудники, чтобы они стали частью рабочей атмосферы, и эта атмосфера была бы творческой, а результаты — предсказуемыми и нужными.
В частности, это связано с понятиями моделирования и UML. Каким образом UML согласуется с идеей вовлечения в работу лучших специалистов?
Одно из самых заметных преимуществ UML заключается в том, что он предлагает единый язык, с помощью которого самые разные люди (в том числе и те, кто представления не имеет о программном обеспечении) могут выразить, чего они хотят от своих систем, и сообщить об этом специалистам, которые возьмут на себя бремя создания кода. Во многих корпорациях есть эксперты, досконально разбирающиеся в определенной предметной области, и меньше всего хотелось бы специалиста по валюте, к примеру, превращать в программиста.
Приятно удивил тот факт, что UML начал применяться в тех случаях, на которые мы никогда не рассчитывали. Например, был крупный контракт на создание военно-морского судна следующего поколения, в котором UML использовался для проектирования как самого эсминца, так и программных подсистем для него.
Какова роль Rational в развитии UML?
Сначала наши цели были весьма скромными, поскольку мы просто пытались объединить рынок. Но затем мы приняли крайне важное решение: добиться унификации различных методов моделирования, так как у них есть общие моменты. В это же время Object Management Group определила принципы стандартизации языка для объектно-ориентированной разработки. Первым членом консорциума была компания Microsoft, поскольку в то время она работала над COM и COM+ и хотела иметь механизм, позволяющий повысить уровень абстракции для своих клиентов и упростить создание систем на платформе Windows. Вскоре к группе присоединилась IBM, а затем и Sun. Поразительно, что эти компании смогли совместно работать и... не поубивать друг друга. Затем консорциум пополнился Unisys и Oracle, а также еще 20 компаниями. Сейчас Rational, как и многие другие, работает над UML. Мы были его создателями, но, чтобы сохранить идеологию и не замыкаться во внутреннем стандарте, нам пришлось обратиться в OMG.
Каков сейчас статус спецификации UML?
Мы работаем над UML 2.0 и рассчитываем, что эта спецификация будет закончена к концу года, после чего начнется ее обсуждение.
Когда должен появиться UML 2.0?
Мы планируем выпустить предварительную версию этой спецификации осенью. Существуют и другие группы, работающие над спецификацией 2.0, но они проявляют значительно меньшую активность, чем консорциум UML, членами которого являются Rational, Oracle и другие компании. В конце этого года, как и всегда в случае проектов, связанных с разработкой стандарта, начнется всеобщее обсуждение предложений по данной спецификации.
Что нового будет в UML 2.0?
UML 2.0 должен вобрать в себя весь опыт, накопленный за годы работы с 1.x, и при этом сохранить простоту UML там, где это возможно. Многое из того, что реализуется в версии 2.0, останется незаметным для большинства разработчиков, но благодаря этому производителям инструментальных средств будет намного легче развивать свои продукты в направлении к разработке на базе моделей. Идея реализации UML как языка более высокого уровня, который выходит за рамки большинства текстуальных языков, позволяет нам не только добиваться более качественной генерации кода, но и выполнять обратное проектирование.
Как, по-вашему, изменится разработка приложений в следующем году и далее?
В ближайшие месяцы или год, как мне представляется, произойдет объединение технологий анализа и проектирования, все это будет опускаться до уровня разработчика кода, и можно будет передать моделирование в руки создателя кода. Иными словами, разработчики получат возможность анализировать код в графическом виде. К примеру, людям, работающим в IDE, возможно, трудно понять фрагмент кода, но они могут сгенерировать на основе этого кода модель и проанализировать его по-другому. Такой подход весьма напоминает то, что Джеймс Гослинг (сотрудник Sun Microsystems и человек, внесший решающий вклад в разработку Java) стремился сделать в рамках проекта Jackpot в Sun. Он заметил, что при анализе сложных систем Java, на самом деле очень трудно разобраться в них, если не подняться на более высокий уровень абстракции. И лучше всего это сделать с помощью визуализации и моделей.
Существует определенный семантический разрыв между тем, что предлагают платформы .Net и J2EE, и тем, что многие предприятия на самом деле должны создавать. Я думаю, что в ближайшее время принцип использования шаблонов и моделей будет все чаще применяться разработчиками, поскольку уже появились механизмы, которые позволят им надстраивать более высокие уровни абстракции для того, чтобы ускорить создание более качественного программного обеспечения.
Можно ли ликвидировать разрыв между J2EE и .Net?
Существует определенный диссонанс между .Net и J2EE, и его очень трудно сгладить. Различия между этими платформами носят фундаментальный характер. Но мы стремимся к тому, чтобы наши инструментальные средства поддерживали обе данные платформы, поскольку в мире найдется очень мало организаций, полностью ориентированных либо на J2EE, либо на .Net. Если посмотреть на то, что можно сделать с помощью UML, то становится понятно, что он позволяет выражать элементы архитектуры, которые абсолютно не зависят от того, на какой конкретно платформе вы создаете систему, например, тестирование и определение требований.
Возвратимся к вопросу об изменениях в разработке приложений. Что именно, по-вашему, произойдет в ближайший год?
Как главный научный сотрудник компании Rational, я думаю о будущем. Меня интересует период от трех до пяти лет, поэтому я поддерживаю связи с директорами по науке, учеными и исследователями по всему миру. Это позволяет мне представить, как будет развиваться программное обеспечение, и какой вклад в это можем внести мы. Меня в первую очередь интересуют такие концепции, как разработка на базе моделей. По мере дальнейшего развития UML 2.0 появится возможность реализовать подобным образом компоненты ПО. Недавно мы приобрели компанию NeuVis, которая делает много интересного для того, чтобы перенести эту методологию проектирования на уровень исполняемых компонентов.
Кроме того, меня заинтересовала технология Грегора Кижалеса из Xerox PARC и Чарлза Симоньи из Microsoft Research. Чарлз сейчас работает над тем, что называют «целенаправленным программированием». Чем-то очень похожим — аспектно-ориентированным программированием — занимается и Грегор. У людей, которые имеют дело со сложной системой, не существует единого представления о том, какие ее компоненты самые важные, и поэтому в работе принимает участие так много разных специалистов: аналитиков, тестеров, специалистов по защите и экспертов по бизнесу. Каким образом можно выразить их взгляды на мир и согласовать их с представлениями других? Метод аспектно-ориентированного программирования позволит объединить различные точки зрения на систему, и я считаю, что в ближайшие три — пять лет в этой области появятся очень интересные технологии. Можно еще добавить, что программное обеспечение становится все более важной частью каждой организации, вне зависимости от того, чем она занимается.
Tom Sullivan. Interview: Rational pursuses liberation for app devteams. InfoWorld, August 22, 2002.
Гради Буч
Главный научный сотрудник компании Rational Software практически с ее основания в 1980 году. Вместе со своими коллегами Иваром Якобсоном и Джимом Румбахом Буч создал UML (Unified Modeling Language) — язык для спецификации, виртуализации, конструирования и документирования особенностей ПО, который был официально принят OMG в качестве стандарта в 1997 году. Буч — автор двух основных концепций разработки ПО: итеративной модели разработки приложений и значимости архитектуры в процессе разработки ПО. Он автор идей «метода Буча» (передового объектно-ориентированного метода проектирования и анализа) и «компонентов Буча» (которые делают экономически выгодным повторное использование ПО).
Гради Буч участвовал в качестве консультанта во многих проектах по всему миру, оказывая помощь в разработке архитектуры и адаптации методов разработки ПО по требованию заказчиков. Среди его клиентов — правительство США, компании Alcatel, Accenture, AT & T, Banker?s Trust, Boeing, IBM, MCI, Microsoft, Oracle и Siemens.
Буч признан всем международным сообществом разработчиков программного обеспечения благодаря его основополагающим работам в области объектно-ориентированных методов и приложений (The UML User Guide, Object — Oriented Analysis and Design, Object Solutions: Managing the Object — Oriented Project, Best of Booch: Designing Strategies for Object Technology, Software Engineering with Ada и Software Components with Ada). Буч редактирует и участвует в написании серии «Разработка объектно-ориентированного программного обеспечения» (Object-oriented Software Engineering Series), издаваемой Addison-Wesley Longman. Он постоянный автор журналов Object Magazine и C++ Report.
Rational Software
Ведущий разработчик CASE-средств нового поколения, предназначенных для объектно-ориентированного визуального моделирования и проектирования корпоративных информационных систем на основе оригинальных методологий, таких как Rational Unified Process (RUP) и Universal Modeling Language (UML). Данные методики создания программных систем основаны на ежегодных опросах пользователей, разрабатывающих ПО.
Rational выпускает CASE-средства, системы автоматизированного проектирования ПО, а также средства управления проектами, связанными с разработкой, документированием и сопровождением крупных информационных систем. Несколько лет подряд International Data Corp. признает Rational Software лидером по целому ряду показателей среди компаний, разрабатывающих программное обеспечение. По данным USA Today, 49 из 50 ведущих компьютерных компаний используют продукты Rational Software, по данным журнала «Fortune», продукты Rational используют 90 из 100 компаний-разработчиков ПО.