Технологии и организация процесса разработки приложений
Если задуматься о том, какими были программисты десять-пятнадцать лет назад, вспоминаются обычно эрудированные универсалы, не просто создававшие приложения, но умевшие писать код, прокладывать сети, чинить компьютеры, успокаивать и учить отчаявшихся пользователей, составлять для них грамотную и понятную документацию, наконец, знавшие предметную область не хуже все тех же пользователей. Сейчас такие специалисты либо вымерли, как динозавры, либо стали руководителями проектов, начальниками отделов разработки и консалтинговых подразделений, и найти таких людей теперь можно разве что в очень маленьких компаниях.
В средних же и крупных организациях полным ходом идет процесс специализации, предполагающей, что системный аналитик не обязан уметь программировать, бизнес-аналитик не руководит проектами, а руководитель проекта занимается только организационной работой и не интересуется ни архитектурой приложения, ни тем более предметной областью. Этот процесс отражает факт активного перехода средних и больших компаний от малотиражного производства эксклюзивного ПО к массовому промышленному производству добротных, но совершенно «средних» продуктов, широко востребованных современными пользователями. Впрочем, малотиражное производство необычных программных продуктов пока что тоже пользуется спросом.
Переход ряда компаний к промышленному производству ПО и появление узкой специализации среди разработчиков привели к активному развитию в течение последних пяти лет так называемых средств поддержки жизненного цикла приложений, предназначенных для достаточно больших коллективов разработчиков. К ним относятся средства управления требованиями, моделирования бизнес-процессов, приложений и данных, тестирования и оптимизации приложений, управления коллективной работой, контроля версий, управления изменениями. Среди производителей подобных инструментов — IBM, Computer Associates, Borland, Microsoft, Oracle и ряд других компаний. Не рассматривая подробно спектр продуктов для управления жизненным циклом приложений, предлагаемых перечисленными выше и другими поставщиками, мы попробуем выяснить, что представляют собой типичные задачи, стоящие перед разработчиками, и каковы тенденции развития рынка предназначенных для них инструментов.
Типичные задачи и проекты
Современный заказчик зачастую весьма эрудирован и, как правило, очень капризен. Традиционные приложения для ввода данных, просмотра и печати отчетов теперь его уже не устраивают — ему нужна бизнес-аналитика, оптимизация бизнес-процессов, представление данных в максимально наглядном (и лучше бы в проанализированном) виде, желательно через Web-интерфейс, да и сами приложения должны быть минимально затратными с точки зрения сопровождения и обновления. Поэтому сегодня актуальной становится разработка решений на основе не только СУБД, но и других продуктов — офисных приложений, ГИС- и CAD-систем, средств бизнес-аналитики, а наибольшим спросом пользуются платформы и средства разработки, максимально упрощающие создание таких решений (как правило, с помощью всевозможных программных интерфейсов, предоставляемых производителями указанных категорий продуктов). К таким платформам в первую очередь относятся J2EE, Win32 и Microsoft .NET, а средства разработки, использующиеся для создания приложений, принадлежат главным образом Microsoft, Borland, IBM, Oracle, Sun Microsystems.
Требования к защищенности приложений в последние два-три года также стали существенно строже. Такие проблемы, как огромное количество поступающего из Интернета вредоносного кода на фоне абсолютно недостаточной осведомленности о нем рядовых пользователей, возрастающие угрозы утечек постоянно дорожающих корпоративных данных, попытки фишинга и фарминга налагают определенные ограничения на выбор платформ для разработки, а также на архитектуры приложений и их возможности. В свете этих требований для разработчиков становятся все более привлекательны платформы Microsoft .NET и J2EE, обладающие достаточным набором средств для создания защищенных приложений.
Переход многих компаний от все более дорогих в обслуживании «зоопарков», образовавшихся некогда в результате стихийной автоматизации отдельных областей, к внедрению систем управления предприятием, охватывающих практически все основные сферы деятельности компаний, приводит к тому, что все более востребованными становятся решения на основе указанных систем. В этом случае выбор платформ и средств разработки или иных инструментов оказывается ограничен теми из них, которые поддерживаются производителями ERP- и CRM-систем (обычно это инструменты для платформ .NET и J2EE). Кроме того, подобный шаг обычно предполагает реализацию проекта переноса данных из унаследованной системы в новую, а он влечет за собой широкое применение средств проектирования данных и ETL-инструментов (Extract, Transform and Load — извлечение, преобразование и загрузка данных).
В последние два года отмечается активный интерес российских заказчиков к приложениям для мобильных устройств. Это обусловлено большей частью тем, что сейчас возможности и стоимость мобильных устройств (равно как и технологий, сопровождающих их использование) достигли того уровня, когда их применение во многих случаях экономически оправданно (например, в сравнении с заказными специализированными устройствами). Скорее всего, этот интерес проявится в росте числа проектов с применением мобильных устройств в ближайшие два-три года.
Наконец, Web-приложения и приложения для корпоративных интрасетей также становятся все более и более востребованными в силу дешевизны их сопровождения. Нередко они предполагают создание решений, основанных на готовых продуктах, таких, как средства управления информационным наполнением или корпоративные порталы, а иногда просто используют инфраструктурное ПО — серверы приложений, СУБД, Web-серверы. Применение Web-служб в последнее время тоже становится все более распространенным.
Заметим, что, несмотря на актуальность перечисленных выше направлений разработки приложений, наш список отнюдь не исчерпывает все виды задач, стоящих сегодня перед разработчиками. Однако именно указанные направления определяют тенденции развития рынка инструментов для разработки приложений.
Тенденции развития инструментов разработки
Системы с открытым кодом и бесплатные версии коммерческих продуктов
Если вспомнить, что происходило с инструментами для разработки в предыдущие
два года, просматривается весьма активная тенденция выпуска ведущими производителями
платформ (такими, как IBM, Microsoft, Oracle, Sybase) бесплатных СУБД (а в случае
Microsoft и Oracle — и бесплатных средств разработки) с неплохими функциональными
возможностями, с тем чтобы повысить привлекательность своих платформ для разработчиков
и их заказчиков. В частности, корпорация Microsoft (http://www.microsoft.com)
недавно выпустила семейство продуктов Express, включающее несколько инструментов
для разработки приложений Windows Forms и ASP.NET, а также СУБД Microsoft SQL
Server Express. Корпорация Oracle (http://www.oracle.com),
в свою очередь, также предоставила свободный доступ к Oracle JDeveloper 10g
и выпустила бесплатную редакцию Oracle Database 10g Express Edition для 32-разрядных
ОС Linux и Windows. Корпорация IBM (http://www.ibm.com)
предлагает бесплатную версию СУБД DB2. Компания Borland (http://www.borland.com)
уже примерно три года выпускает бесплатные версии некоторых своих средств разработки.
Отметим, что еще несколько лет назад подобная ситуация казалась невозможной. Так, появление созданного группой энтузиастов из числа разработчиков Microsoft инструмента WebMatrix — скорее вопреки, нежели благодаря тогдашней политике корпорации — вызвало немалое удивление, а выпуск СУБД Microsoft Desktop Engine, на основе которой можно было создать не слишком сложное клиент-серверное приложение, считался необычным маркетинговым ходом. Появление же бесплатных СУБД от Oracle и IBM в те времена было чем-то немыслимым.
Для современного рынка средств разработки характерна и еще одна тенденция,
а именно, активное развитие платформ и инструментов с открытым исходным кодом,
в которое сейчас немалые средства инвестируют коммерческие компании, в том числе
такие производители платформ, как IBM, Novell, Oracle. Из наиболее ярких примеров
следует отметить активное развитие среды Eclipse — универсальной открытой платформы
разработки, совместимой с множеством языков, платформ развертывания и технологий
(см. врезку «Коротко об Eclipse»), а также проекта Mono, реализующего часть
платформы .NET для ОС Linux, — для него сейчас довольно активно появляются компиляторы
и иные инструменты.
Коротко об EclipseНачало проекту Eclipse положила в 1998 г. корпорация IBM, поставившая В 2004 г. консорциум Eclipse был преобразован в независимую некоммерческую Платформа Eclipse предоставляется в виде заранее скомпилированных исполняемых Сегодня, через пять лет с момента ее создания, платформа Eclipse стала Хотя сейчас доля рынка средств разработки Java-приложений, занимаемая Что касается собственно средств разработки приложений, на основе платформы Компания Borland планирует перенос своего пакета для разработки JBuilder
Из продуктов SAP, основанных на платформе Eclipse, отметим SAP NetWeaver
|
Инструменты для мобильных приложений
Ввиду роста интереса заказчиков к разработкам для мобильных устройств средства создания данной категории приложений становятся все более популярными среди разработчиков. Для платформы Windows Mobile инструменты от Microsoft доступны уже достаточно давно; недавно появились (и будут развиваться далее) инструменты Borland, успешно выпускающей также средства разработки для Symbian и платформы J2ME, и соответствующие продукты от Sybase. Впрочем, развитие средств разработки Web-приложений также должно оказать свое влияние на распространенность проектов создания приложений универсального характера, приспосабливающихся к типу устройства или просто использующих неплохие возможности современных мобильных Web-браузеров.
Аналитические инструменты
Если универсальные механизмы доступа к данным и стандарт языка SQL прочно вошли в нашу жизнь более 20 лет назад, то с бизнес-аналитикой, ставшей доступной многим компаниям благодаря недавнему выходу на этот рынок корпорации Microsoft с неплохой BI-платформой (рис. 3), все обстоит не столь гладко. Пока еще не решены ни вопросы стандартизации доступа к OLAP-данным, ни стандартизации языков запросов, а создание приложений с применением бизнес-аналитики накладывает существенные ограничения на выбор средств разработки и механизмов получения доступа к многомерным данным (особенно в случае OLAP-платформы и средств разработки приложений разных производителей). Впрочем, указанные проблемы обычно решаются за счет включения в состав решений продуктов компаний, специализирующихся на указанных проблемах, таких, как Cognos или Business Objects.
Рис. 3. Средства создания аналитических решений Microsoft SQL Server 2005.
|
Инструменты для промышленной разработки
Многие компании, специализировавшиеся ранее на создании сред разработки, в последнее время обратили пристальное внимание на инструменты, традиционно считавшиеся «необязательными к применению» в компаниях и отделах, занимающихся разработкой приложений. К таким инструментам относятся средства управления требованиями и изменениями, средства моделирования, тестирования. Активное продвижение на рынок подобных инструментов, как правило, совмещается с проектами их внедрения в компаниях-разработчиках с целью автоматизации и оптимизации процессов, сопровождающих разработку, включая постановку задач, управление требованиями, достижение соответствия стандартам качества.
Потребности в интеграции всех этих «тяжелых» инструментов между собой привели к созданию целых платформ для ролевой разработки ПО и управления жизненным циклом приложений. Такие платформы были в течение последнего года выпущены компаниями Borland, IBM и Microsoft.
В целом стратегии ведущих поставщиков средств разработки приложений сейчас
во многом сходны и ставят своей целью улучшение взаимодействия между исполнителями
проекта, заказчиками, специалистами по эксплуатации и сопровождению продуктов,
пользователями. Процесс создания ПО рассматривается при этом как производственный,
что соответственно требует создания и внедрения методик управления им, сходных
с методиками управления процессами материального производства.
Несколько слов о планах BorlandВ начале февраля сообщество разработчиков было удивлено пресс-релизом Визит в Москву Джейсона Вокса, менеджера по средствам разработки Borland Что касается планов развития продуктов этого подразделения, они включают
|
Сопутствующие товары и услуги
Новые задачи, стоящие перед разработчиками, а также новые подходы к разработке ПО, привели к изменению спектра услуг, востребованных разработчиками. Если лет пять-десять назад главным образом были популярны курсы, обучающие применению конкретного средства разработки, конкретной технологии или методологии создания ПО, то сейчас наблюдается рост спроса на консалтинговые услуги, связанные с постановкой процессов разработки и подготовкой компаний-разработчиков к сертификации на соответствие стандартам ISO или одному из уровней зрелости процесса разработки ПО (CMM — Capability Maturity Model).
Соответствующий сегмент книжного рынка также претерпел определенные изменения — наряду с книгами, посвященными применению тех или иных средств разработки, сейчас активным спросом пользуется литература об управлении проектами, методологиях разработки ПО, применении моделирования. Впрочем, в России книги для начинающих разработчиков, где содержатся более или менее исчерпывающие ответы на основные вопросы применения того или иного инструмента, до известной степени заменяющие справочную систему, популярны по-прежнему — уровень владения английским языком среднестатистического российского программиста пока, увы, невысок.
***
Итак, современное состояние рынка инструментов для разработчиков характеризуется бурным развитием средств поддержки жизненного цикла приложений, появлением высококачественных инструментов с открытым кодом и ростом интереса к разработкам для мобильных устройств. По-видимому, указанные тенденции сохранятся еще в течение как минимум нескольких лет.