ТЕХНИЧЕСКИЙ АНАЛИЗ

Новые разработки Agitar и DataDirect повышают гибкость платформ

Мощные интерактивные средства программирования наподобие машин LISP и рабочих станций Smalltalk в конце 1980-х годов вызывали истинное восхищение своей невероятной производительностью, однако широкого распространения так и не получили. Они оказались непрактичными из-за огромных запросов к мощности процессоров и объему памяти, и поэтому их тогда сочли пригодными разве что для исследовательских центров.

Но за последние два десятилетия действие закона Мура сделало эти некогда футуристические концепции вполне реализуемыми. И особенно - на базе платформ Java.

Наглядным примером тому может служить прошедшая в нынешнем году конференция JavaOne. Ее высшая награда Dukie (точнее, "Выбор Дьюка"), получившая название от имени знакомого многим красноносого талисмана Java, была присуждена фирме Agitar Software из калифорнийского города Маунтин-Вью. А получила она приз за свои средства автоматического тестирования программных продуктов в самых жестких условиях.

Сразу после конференции сотрудники eWeek Labs встретились с главным инженером и вице-президентом Agitar Альберто Савойей, который поделился своими мыслями по поводу такого рода инструментария. По его словам, ему самому как менеджеру и разработчику такие программы дают возможность "побеждать без ошибок".    

Интегрировать XML-структуры с реляционными данными помогает DataDirect XQuery

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

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

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

Замечания Савойи полностью подтверждаются наблюдениями eWeek, сделанными в ходе тестирования последних версий нескольких сред программирования на базе Java. Это успешно демонстрируют и JBuilder Х корпорации Borland Software, и JDeveloper 10g корпорации Oracle, и новейшие разработки инструментария для среды с открытым кодом Eclipse.

Ученый из Sun Гамильтон (слева) вместе с президентом и главным

управляющим этой же фирмы Джонатаном Шварцем представляют "тигра"

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

Менеджер же безопасности позволяет значительно ослабить разрушительную силу тестируемого ПО. "Без такого компонента я бы никогда не решился вводить полупроизвольные данные в метод, если тот удаляет файлы", - подчеркивает Савойя. В качестве другого примера здесь можно привести ниспадающие меню JDeveloper 10g со списком структур обработки ошибок, которыми можно окружить метод. Их набор здесь на удивление корректен и полон, так как в основу инструментария заложены обширные знания.

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

Взаимосвязь с XML

Пока Agitar помогает разработчикам оттачивать логику приложений, другие производители инструментария активно расширяют доступ Java к хорошо структурированным и перенацеленным данным в XML-репозиториях. Этой осенью корпорация DataDirect Technologies (www.datadirect.com) приступает к бета-тестированию встраиваемого модуля DataDirect XQuery. Его главное назначение - интегрировать обычные реляционные базы данных с источниками данных XML на базе перспективного стандартного языка XQuery и интерфейса прикладного Java-программирования XQJ XQuery.

"Преобразование реляционной базы данных в формат XML сродни подготовке отчета", - считает Джонатан Роуби, менеджер XML-программирования DataDirect Technologies, также принимавший участие в беседе с сотрудниками eWeek Labs на конференции JavaOne. Человеку, по его мнению, записи лучше всего представлять в формате HTML, но для обмена информацией между процессами больше подходит XML.

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

Тестовый Java-инструментарий из пакета Agitator сам находит и проверяет логические цепочки кода

Возможности Java-разработчиков должны значительно расшириться нынешней осенью, когда появится версия 5.0 платформы J2SE (Java 2 Platform, Standard Edition - платформа Java 2, стандартный вариант), известной под названием Tiger. Выступая на конференции JavaOne, научный сотрудник Sun Грэхем Гамильтон назвал эту новинку, бета-тестирование которой началось в июне, крупнейшим обновлением базовой платформы с момента появления исходной версии 1.0.

Программисты с долгой памятью обязательно найдут в дополнениях Tiger не только следы LISP и Smalltalk, но и некоторые черты COBOL, REXX и Ada. Здесь расширены возможности типа цифровых данных Big-Decimal с гарантированной точностью, предусмотрена одновременная работа вспомогательных интерфейсов и классов, упрощающая использование функций многопотокового программирования Java.

И все же, как ни приятно, что Java продолжает добрые традиции самых совершенных рабочих станций вчерашнего дня, этому языку нужно осваивать и новые технологии, например карманные устройства и встроенные системы, где нет столь удобных для программистов экранов и клавиатур. Ну а такие элементы управления J2SE 5.0, как безопасные каналы для дистанционного управления и контроля, должны еще больше повысить производительность труда Java-разработчиков, открыв перед ними широчайшие возможности обогащения своих исходных текстов самыми современными функциями.

С редактором Питером Коффи можно связаться по адресу: peter_coffee@ziffdavis.com.