Наталия Елманова
Эта статья была опубликована на сайте КомпьютерПресс №12'2003
Известно, что многие пользователи (и, что греха таить, некоторые IT-специалисты), говоря о разработке программного обеспечения, имеют в виду в первую очередь создание и отладку кода приложений. Было время, когда подобные представления оказывались достаточно близки к истине. Но современная разработка приложений состоит не только и не столько из написания кода, сколько из иных процессов, как предшествующих непосредственно программированию, так и следующих за ним. Собственно, о них далее и пойдет речь.
Не секрет, что немало коммерчески успешных продуктов как в России, так и за рубежом было реализовано с применением только средств разработки приложений, и даже данные при этом нередко проектировались на бумаге. Не будет преувеличением сказать, что из всех возможных инструментов создания программного обеспечения в России (да и во многих европейских странах) сейчас популярны главным образом средства разработки приложений и в несколько меньшей степени — средства проектирования данных (прежде всего это касается проектов с небольшим бюджетом и сжатыми сроками реализации). Вся проектная документация, начиная с технического задания и заканчивая инструкцией пользователя, создается с помощью текстовых редакторов, и то, что какая-то ее часть является исходной информацией для программиста, означает лишь, что он ее просто читает. И это при том, что, с одной стороны, средства управления требованиями, моделирования бизнес-процессов, инструменты тестирования приложений, средства управления проектами и даже средства генерации проектной документации существуют довольно давно, а с другой стороны, любой руководитель проекта, естественно, хочет облегчить жизнь как себе, так и остальным исполнителям.
Чем же обусловлено недоверие многих руководителей проектов к инструментам, позволяющим автоматизировать многие этапы работы возглавляемых ими коллективов? На мой взгляд, тому есть несколько причин. Первая из них заключается в том, что очень часто применяемые компанией средства плохо интегрируются между собой. Рассмотрим типичный пример: для моделирования применяется Rational Rose, для написания кода — Delphi Professional, для проектирования данных — CA AllFusion Modelling Suite; средства интеграции этих продуктов или вообще отсутствуют для данной комбинации их версий, или некорректно работают с русским языком, или просто не приобретены. А в результате диаграммы прецедентов и иные модели, созданные с помощью Rose, становятся не более чем картинками в проектной документации, а модель данных главным образом служит источником ответа на вопросы типа: «Зачем это поле вообще нужно в той таблице?» И даже такие простые части приложения, как русские эквиваленты имен полей базы данных, пишутся участниками проекта как минимум три раза: один раз — при документировании модели данных или приложения, второй раз — при написании кода пользовательского интерфейса, а третий — при создании файла справочной системы и руководства пользователя.
Вторая, не менее серьезная причина недоверия к средствам поддержки жизненного цикла программного обеспечения заключается в том, что опять-таки из-за отсутствия или плохой функциональности средств интеграции таких продуктов во многих случаях может оказаться недоступной возможность постоянной синхронизации между собой всех частей проекта: моделей процессов, моделей данных, кода приложения, структуры базы данных. Понятно, что проект, реализующий классическую схему водопада (рис. 1), при которой сначала формулируются требования, потом производится моделирование и проектирование, затем разработка и, наконец, внедрение (об этой схеме и о других методологиях реализации проектов можно прочесть в серии обзоров Лилии Хаф, публикуемой в нашем журнале), есть скорее мечта, чем реальность — пока пишется код, заказчик успеет изменить у себя часть процессов или пожелать дополнительной функциональности. В результате выполнения проекта нередко получаются приложение, весьма далекое от того, что было описано в техническом задании, и база данных, имеющая мало общего с исходной моделью, причем синхронизация всего этого между собой с целью документирования и передачи заказчику превращается в довольно трудоемкую задачу.
Рис. 1. Схема водопада
Третья причина, по которой средства поддержки жизненного цикла программного обеспечения применяются далеко не везде, где они могли бы принести пользу, заключается в крайней ограниченности их выбора. На российском рынке активно продвигаются главным образом две линейки продуктов: инструменты IBM/Rational и инструменты Computer Associates (главным образом линейка продуктов AllFusion Modelling Suite), во многом ориентированные в данный момент на определенные виды моделирования, а не на постоянный процесс синхронизации кода, базы данных и моделей.
Есть и еще одна причина, которую можно отнести к разряду психологических факторов: существуют разработчики, которые вовсе не стремятся к полной формализации и документированию их приложений — ведь в этом случае они становятся незаменимыми и ценными сотрудниками, а человек, вынужденный разбираться после увольнения такого разработчика в его коде или просто сопровождающий его продукт, будет очень долго чувствовать себя полным идиотом. Такие разработчики, конечно, отнюдь не в большинстве, тем не менее я знаю как минимум пятерых руководителей компаний, которым подобные экс-сотрудники попортили немало крови.
Конечно, многим руководителям проектов, особенно проектов с небольшим бюджетом и ограниченными сроками, хотелось бы иметь инструмент, с помощью которого можно было бы сформулировать требования к разрабатываемому программному продукту... и в результате получить готовый дистрибутив работающего приложения. Это, конечно, лишь идеал, о котором пока можно только мечтать. Но если спуститься с небес на землю, то можно сформулировать более конкретные пожелания, а именно:
Иными словами, цикл разработки приложений должен давать возможность осуществлять итеративную коллективную разработку без дополнительных затрат, связанных с изменениями требований заказчиков или способов их реализации.
Не буду вас уверять, что все эти пожелания абсолютно невозможно осуществить с помощью инструментов IBM/Rational или CA — технологии развиваются, появляются новые продукты, и то, что было невозможно сегодня, станет доступным завтра. Но, как показывает практика, интеграция этих инструментов с наиболее популярными средствами разработки, к сожалению, пока далеко не столь идеальна, как могло бы показаться на первый взгляд.
Компания Borland является одним из самых популярных производителей средств разработки: уже двадцать лет ее продукты пользуются заслуженной любовью разработчиков. До недавнего времени эта компания предлагала главным образом широкий спектр средств, предназначенных непосредственно для создателей кода приложений, — Delphi, JBuilder, C++Builder, Kylix (обо всех этих продуктах мы неоднократно писали в нашем журнале). Однако успех компании на рынке во многом определяется тем, насколько она следует тенденциям его развития и насколько понимает нужды тех, кто является потребителем ее продукции (в данном случае — компаний и отделов, специализирующихся на разработке приложений).
Именно поэтому в настоящее время стратегия развития средств разработки Borland предполагает поддержку полного жизненного цикла приложений (Application Lifecycle Management, ALM), включающего определение требований, проектирование, разработку, тестирование, внедрение и сопровождение приложений. Об этом свидетельствует прошлогоднее приобретение корпорацией Borland ряда компаний — BoldSoft MDE Aktiebolag (ведущего поставщика новейшей технологии разработки приложений Model Driven Architecture), Starbase (поставщика средств конфигурационного управления программными проектами), TogetherSoft Corporation (поставщика решений в области проектирования программного обеспечения). За время, прошедшее с момента приобретения этих компаний, было проделано много работы, в плане интеграции этих продуктов между собой. В результате эти продукты уже удовлетворяют потребностям руководителей проектов, связанным с возможностью организации итеративной коллективной разработки. Ниже мы обсудим, что именно предлагает сейчас компания Borland руководителям и другим участникам проектов, связанных с разработкой программного обеспечения (многие из описанных ниже продуктов и технологий интеграции были представлены этой компанией на прошедших в ноябре конференциях для разработчиков в Сан-Хосе, Амстердаме и Москве).
Управление требованиями — это одна из самых важных составных частей процесса разработки. Без сформулированных требований, как правило, практически невозможно ни нормально организовать работу над проектом, ни понять, действительно ли заказчик хотел получить именно то, что было реализовано.
По данным аналитиков, как минимум 30% бюджета проектов уходит на то, что называется переделкой приложения (и лично мне кажется, что эта цифра сильно занижена). Причем более 80% этой работы связано с некорректно или неточно сформулированными требованиями, и исправление подобных дефектов обычно обходится довольно дорого. А уж то, насколько заказчики любят менять требования, когда приложение уже почти готово, известно, наверное, всем руководителям проектов... Именно по этой причине управлению требованиями следует уделять самое пристальное внимание.
Для управления требованиями в арсенале Borland имеется продукт Borland CaliberRM, по сути представляющий собой платформу для автоматизации процесса управления требованиями, предоставляющую средства отслеживания изменений (рис. 2).
Рис. 2. Borland CaliberRM
CaliberRM интегрируется со многими средствами разработки производства как компании Borland, так и других производителей (например, Microsoft), вплоть до встраивания списка требований в среду разработки и генерации заготовок кода при переносе мышью пиктограммы требования в редактор кода. Кроме того, на его основе можно создавать собственные решения — для этого существует специальный набор инструментов CaliberRM SDK.
Отметим, что этот продукт применяется для управления требованиями не только к программному обеспечению, но и к другим продуктам. Так, известны случаи его успешного применения в автомобильной промышленности для управления требованиями к различным узлам автомобилей (в том числе автомобилей «ягуар»). Кроме того, по уверению Джона Харрисона (Jon Harrison), менеджера, отвечающего за линейку продуктов JBuilder, применение CaliberRM при создании Borland JBuilderX значительно упростило процесс разработки этого продукта.
И наконец, наличие удобного средства управления требованиями существенно упрощает создание проектной документации, причем не только на ранних этапах проекта, но и на всех последующих.
Проектирование является не менее важной частью создания приложения и должно опираться на сформулированные требования. Результатом проектирования являются модели, применяемые программистами на этапе создания кода.
Для проектирования приложений и данных компанией Borland предлагается продукт Borland Together (рис. 3), представляющий собой платформу для анализа и проектирования приложений, интегрирующуюся с различными средствами разработки как компании Borland, так и других производителей (в частности, Microsoft). Указанный продукт позволяет осуществлять моделирование и проектирование приложений и данных; при этом степень его интеграции со средствами разработки на данный момент такова, что изменения модели данных приводят к автоматическому изменению кода приложения, равно как и изменения в коде приводят к изменению в моделях (данная технология интеграции инструментов моделирования и средств разработки получила название LiveSource).
Рис. 3. Borland Together Control Center
Borland Together может применяться как средство, объединяющее задачи, связанные с управлением требованиями и моделированием, с задачами, связанными с разработкой и тестированием, и позволяет понять, в чем должна заключаться реализация требований к продукту.
Создание кода приложения — область, в которой компания Borland специализируется в течение всех 20 лет своего существования. Сегодня Borland производит средства разработки для платформ Windows, Linux, Solaris, Microsoft .NET, а также для ряда мобильных платформ. Мы уже неоднократно писали о средствах разработки этой компании, и в данной статье повторяться не будем. Отметим лишь, что последние версии средств разработки этой компании (Borland С#Builder, Borland C++BuilderX, Borland JBuilderX), а также ожидаемая вскоре новая версия одного из самых популярных в нашей стране средств разработки, Borland Delphi 8 для Microsoft .NET Framework, позволяют осуществить тесную интеграцию средств моделирования Together и средств управления требованиями CaliberRM с их средами разработки. О Delphi 8 мы обязательно расскажем в отдельной статье в следующем номере нашего журнала.
Тестирование — абсолютно необходимая составляющая создания качественного программного обеспечения. Именно на этом этапе проверяется, удовлетворяет ли приложение сформулированным требованиям к нему, а в код приложения (а нередко и в модели, и в базы данных) вносятся соответствующие изменения. На этапе тестирования обычно требуется применение средств анализа и оптимизации производительности приложений, и для этой цели применяется Borland Optimizeit Profiler. Сегодня данный продукт наряду с этим интегрируется в среды разработки последних версий средств разработки Borland, а также в среду Microsoft Visual Studio .NET (рис. 4).
Рис. 4. Borland Optimizeit Profiler for Microsoft .NET
Внедрение программного обеспечения — одна из наиболее важных составляющих успеха проекта. Оно должно осуществляться таким образом, чтобы на этапе опытной эксплуатации продукта в него можно было вносить изменения без серьезных затрат и потерь, легко увеличивать количество пользователей без снижения надежности. Поскольку в настоящее время внедрение приложений происходит в условиях применения компаниями различных технологий и платформ и эксплуатации определенного количества уже имеющихся приложений, при внедрении может оказаться важной способность осуществления интеграции нового приложения с унаследованными системами. Для этой цели компанией Borland предлагается ряд технологий межплатформенной интеграции (таких как Borland Janeva, позволяющих осуществить интеграцию .NET-приложений с приложениями, основанными на технологиях CORBA и J2EE).
Управление изменениями производится на всех этапах создания приложения. С позиции Borland это наиболее важная составляющая проекта — ведь изменения могут происходить и в требованиях, и в коде, и в моделях. Без отслеживания изменений управлять проектом сложно — руководитель проекта должен быть в курсе того, что именно происходит на данном этапе и что уже реализовано в проекте, иначе он рискует не выполнить проект в срок.
Для решения данной задачи можно применять Borland StarTeam (рис. 5) — масштабируемое средство управления конфигурациями программного обеспечения, которое сохраняет в централизованном репозитарии все необходимые данные и оптимизирует взаимодействие сотрудников, ответственных за выполнение различных задач. Этот продукт предоставляет команде участников проекта разнообразные средства для публикации требований, управления задачами, планирования, работы, обсуждения изменений, контроля версий, организации документооборота.
Рис. 5. Borland StarTeam
Особенностями данного продукта являются тесная интеграция с другими продуктами Borland, поддержка распределенных команд разработчиков, взаимодействующих через Интернет, наличие нескольких типов клиентских интерфейсов (в том числе Web-интерфейса и Windows-интерфейса), поддержка многих платформ и операционных систем, наличие StarTeam Software Development Kit (SDK), представляющего собой прикладные программные интерфейсы для создания решений на базе StarTeam, средства защиты данных на стороне клиента и сервера, средства доступа к репозитариям Merant PVCS Version Manager и Microsoft Visual SourceSafe, средства интеграции с Microsoft Project, средства визуального представления данных, создания отчетов и поддержки принятия решений.
Что означает появление на российском рынке вышеперечисленного набора продуктов от хорошо известного производителя, средства разработки которого широко применяются в самых разнообразных проектах? Как минимум, то, что уже сегодня мы сможем получить не просто набор инструментов для различных участников проекта, но и интегрированную платформу для реализации всего жизненного цикла разработки — начиная от определения требований и заканчивая внедрением и сопровождением (рис. 6). При этом данная платформа, в отличие от конкурирующих с ней наборов продуктов, будет гарантировать поддержку всех наиболее популярных средств разработки и позволит интегрировать в них свои составные части на уровне полной синхронизации кода с моделями, требованиями, изменениями. И будем надеяться, руководители проектов вздохнут с облегчением, избавив себя и своих сотрудников от многих утомительных и рутинных задач...
Рис. 6. Жизненный цикл приложений с позиции компании Borland
Дополнительная информация
INTERFACE Ltd. |
|