Обзор ноябрьского и декабрьского, 2001 г. номеров журнала Computer (IEEE Computer Society, V. 34, №№ 11, 12, 2001)
Как обычно, у ноябрьского номера есть тема, которой посвящены семь из девяти статей, включая заметку приглашенных редакторов. Однако я немного отложу рассуждения о ней и обзор соответствующих статей, и займусь сначала двумя статьями, стоящими обиняком.
Статья Андреаса Зеллера (Andreas Zeller) называется «Автоматическая отладка: близки ли мы к ней?» («Automated Debugging: Are We Close?»). Если отбросить рассуждения общего характера наподобие того, что все в программной инженерии автоматизируется, а процесс отладки по-прежнему остается ручным, то речь идет о методе, разработанном в университете Зааланда и названном Delta Debugging. Грубо говоря, метод состоит в том, что многократно прогоняя тест, вызывающий сбой программной системы, размер этого теста постепенно, но существенно уменьшается с сохранением эффекта воздействия на систему. Любой программист знает: чем меньше размер теста, на котором проявляется ошибка, тем легче эту ошибку найти и исправить. Метод реализован в свободно распространяемой программной системе Wynot. Описываются результаты успешного применения Wynot при отладке новых версий браузера Mozilla и отладчика GDB. Конечно, статья не дает оснований говорить об автоматической отладке, но некоторый уровень автоматизации налицо.
Статья «Управление уязвимостью в сетевых системах» («Managing Vulnerabilities in Networked Systems») написана Робертом Мартином (Robert Martin), являющимся контактной персоной консорциума Common Vulnerabilities and Exposures Initiative (CVE), деятельность которого, судя по всему, поддерживается и координируется MITRE. В полном соответствии со статусом автора, статья содержит анализ проблемы, описание текущего состояния программных средств, снижающих уровень уязвимости, перечень еще нерешенных задач и т.д. Важность проблемы иллюстрируется (вновь!) известной историей с Microsoft Internet Information Server и рекомендацией аналитиков Gartner пользоваться другими Web-серверами, пока не будет снижена уязвимость IIS.
Перейду к теме номера. Она обозначена как «Инженерные системы, основанные на компьютерах» («Engineering Computer-Based Systems — ECBS). Приглашенными редакторами являются Стефани Фарбмен Уайт (Stepanie Farbman White), Бонни Мелхарт (Bonnie Melhart) и Гарольд Лаусон (Harold Lawson). В IEEE Computer Society есть специальный технический комитет по ECBS, проводится специальная международная конференция и, следовательно, эта область востребована, однако предмет ее остается для меня не вполне понятным. Пять статей, составляющих тематическую подборку, с моей точки зрения, посвящены вопросам из областей программной инженерии, встроенных систем, моделирования, частично САПР.
Итак, заметка приглашенных редакторов называется «Инженерия систем, основанных на компьютерах: навстречу вызову» («Engineering Computer-Based Systems: Meeting the Challenge»). Позволю себе небольшую цитату из нее, призванную охарактеризовать суть предмета: «ECBS обращается к широкому разнообразию вопросов жизненного цикла, вовлекаемых в управление содержимым компьютера для системных продуктов и служб; при этом подчеркивается единый подход для множественных прикладных областей. Такие системы включают приложения телефонии и коммуникаций, резервирования авиабилетов, электронной банковской деятельности и коммерции, управления процессами и компьютеризированного интегрированного производства, авионики, транспорта, медицинского оборудования, экологии и военные приложения». Ну что, вам стало яснее, что такое ECBS?...
У первой «регулярной» статьи подборки семь авторов, все из Института программных интегрированных систем Университета Вандербилта (www.isis.vanderbilt.edu). Статья «Составление специфичных для домена сред проектирования» («Composing Domain-Specific Design Environments») начинается с утверждения, что в индустрии имеется понимание преимуществ универсальных средств наподобие Rational Rose (www.rational.com), Simulink (www.mathworks.com) и LabVIEW (www.ni.com), обеспечивающих специфичную для прикладного домена среду интегрированного моделирования, анализа и генерации приложения. Однако высокая стоимость таких средств делает их доступными только для областей с емким рынком. Для специализированных доменов требуется технология, позволяющая эффективно составлять такие среды из повторно используемых компонентов. В Университете Вандербилта создана технология, названная Model-Integrated Computing, в которой метамоделирование с использованием UML служит для определения доменного языка моделирования и ограничений целостности модели. На основе этих метамоделей автоматически составляется специфичная для домена среда проектирования.
Следующую статью, «Гибкость как рулевой проекта» («Flexibility as a Design Driver»), написали Томми Микконен (Tommi Mikkonen) и Петер Пруден (Peeter Pruuden). При разработке программных систем на начальной стадии часто невозможно точно сформулировать все требования. Это касается как технических требований в будущей системе, так и требований к срокам и планам выполнения проекта. Авторы утверждают, что естественное желание сделать систему достаточно гибкой, чтобы можно было уточнить ее черты в соответствии с поздними требованиями, влияет на весь проект, усложняя и замедляя его. Приводится два примера проектов, в которых стремление к гибкости существенно повлияло на проектные решения. Авторы делают вывод, что желательно фиксировать как можно больше требований на ранней стадии проекта. Вносить в систему гибкость следует только в крайних случаях, если без этого невозможно обойтись.
Статью под названием «Исследование архитектур встроенных систем с применением Artemis» («Exploring Embedded-Systems Architectures with Artemis») написали Энди Пиментел (Andy Pimentel), Луис Херцбергер (Louis Hertzberger), Пауль Ливерс (Paul Lieverse), Питер Ван Дер Волф (Pieter van der Wolf) и Эд Депреттере (Ed Deprettere). Целью проекта Artemis (Archtectures and Methods for Embedded Media Systems) является сокращение времени проектирования программируемых встроенных мультимедийных систем. В проекте разрабатывается среда статического и динамического моделирования, обеспечивающая методы, средства и библиотеки для эффективного исследования неоднородных встроенных систем, а также изучаются возможности использования реконфигурируемых встроенных архитектур для повышения уровня программируемости встроенных систем. Методология применялась при разработке декодера MPEG-2 и кодера M-JPEG.
Название четвертой статьи — «Rosetta: Семантическая поддержка основанного на модели проектирования системного уровня» («Rosetta: Semantic Support for Model-Centered Systems-Level Design»). Ее авторы — Перри Александер (Perry Alexander) и Синди Конг (Cindy Kong). Язык моделирования Rosetta предназначен для системного проектирования устройств категории SoC (system-on-chip — «система на кристалле»). Компоненты SoC, как правило, неоднородны, и при проектировании требуется возможность рассмотрения проектируемой системы с разных точек зрения: моделей данных, вычислений, коммуникаций. Для каждого аспекта определяется проектная семантика, проектировщик собирает их в модели. Синтаксически Rosetta напоминает языки описания аппаратуры. Упоминается о разработке отображения спецификаций на языке Rosetta в соответствующие спецификации на языке VHDL с последующим моделированием. Как видно, в данном случае речь идет об автоматизированном проектировании — но почему-то под крышей ECBS.
Пятая статья подборки называется «Виртуальное проектирование мультиинженерных электронных систем» («Virtual Design of Multiengineering Electronics Systems»). Микко Керттула (Mikko Kerttula) и Тимо Токконен (Timo Tokkonen) описывают методологию проектирования электронных устройств, основанную на концепциях прототипирования виртуальной реальности (VRP — virtual reality prototyping) и процесса виртуального проектирования. В двух словах, идея состоит в том, что уже на начальной стадии проекта создается его виртуальный прототип, в котором используются методы моделирования, виртуальной реальности, а также, быть может, отдельные реальные аппаратные и программные компоненты. Потом проект проходит цикл разработки компонентов и, возможно, снова возвращается на стадию виртуального прототипирования, но уже с большим приближением к физической реальности, и т.д. Главное, что уже на ранних стадиях проекта электронной системы ее виртуальный прототип можно предъявлять пользователям. Утверждается, что методология успешно используется компанией Nokia.
Ну вот и все. На мой взгляд, все статьи интересны. Конечно, что их можно объединить ключевыми словами «система», «моделирование», «проектирование», «инженерия» и т.д. Но эти ключевые слова можно найти практически в любой статье по программированию, по крайней мере, системному. Поэтому я не понимаю, почему они попали в подборку под вывеской ECBS.
Больше ничего особенно примечательного в ноябрьском номере я не нашел. Заинтриговала было заметка в разделе «Тенденции индустрии», посвященная ОС для встроенных систем, но после прочтения я решил ее обзор не приводить. Все то же самое: Linux и BSD, QNX и Windows CE. Интересно упоминание собственной разработки компании Red Hat под названием eCOS. А мне так хотелось услышать про Chorus, увы, потерявшуюся с тех пор, как ее приобрела Sun Microsystems...
Тематика декабрьского выпуска посвящена системам управления данными. В этом номере мы публикуем переводы трех статей из подборки. Кроме того, из традиционного обзора журнала выделилась более связная заметка, содержащая комментарий к переведенным статьям и размещенная рядом с ними (см. материал «Хранилища данных в начале века»).
Здесь же коротко расскажем о статьях, опубликованных вне тематической подборки. Очень интересный обзор представил Фернандо Педоне (Fernando Pedone). Его статья называется «Повышение производительности системы с использованием оптимистических распределенных протоколов» («Boosting System Performance with Optimistic Distributed Protocols»). В статье собраны все разновидности оптимистических алгоритмов, которые, конечно, описаны во многих других источниках, но никогда, насколько я знаю, не публиковались в одном материале. Подобные алгоритмы характеризуются тем, что действуют в условиях какого-либо оптимистического предположения, правомерность которого проверяется на завершающей фазе. Если предположения нарушаются, то либо работают механизмы компенсации, либо действие оптимистического алгоритма подкрепляется некоторым консервативным алгоритмом. Перечислим виды описываемых алгоритмов: оптимистическое атомарное широковещание, виртуальная синхронность, двухфазная фиксация, синхронизация и т.д.
Еще одна большая статья декабрьского номера называется «Декомпозиция функция — класс: гибридный метод программной инженерии» («Function-Class Decomposition: A Hybrid Software Engineering Method»). Первым в списке авторов указан Карл Чанг (Carl Chang). Декомпозиция «функция — класс» (FCD — Function-Class Decomposition) — это гибридный метод, интегрирующий структурный анализ и объектно-ориентированный подход. Классы распознаются в параллель с декомпозицией системы в иерархию функциональных модулей. Описываются эксперименты с применением данного метода.
Повторюсь, редакция журнала Computer своим декабрьским выпуском сделала всем читателям хороший новогодний подарок. Давно не получал такого удовольствия от чтения этого журнала, чего и вам желаю. Год закончился, но если кто-то забыл продлить свое членство в IEEE Computer Society, учтите, что членские взносы за 2002 год целиком принимаются до середины февраля. Но мешкать не следует. С Новым годом! Всегда к вашим услугам — kuzloc@ispras.ru.