Тема октябрьского номера журнала Computer (IEEE Computer Society, Vol. 37, No. 10, October 2004) — моделирование архитектуры программного обеспечения. Этой теме посвящены три из шести больших статей номера.

Первая статья тематической подборки написана пятью авторами из университета Карнеги-Меллон; первым в списке авторов указан Дэвид Гарлан (David Garlan). Название статьи — «Rainbow: основанная на архитектуре самоадаптация с использованием повторно используемой инфраструктуры» (Rainbow: Architecture-Based Self-Adaptation with Reusable Infrastructure). Современные программные системы все чаще функционируют в изменяющихся средах с пользователями, имеющими различные потребности. Для управления этими системами необходимы большие усилия администраторов. Чтобы сократить накладные расходы администрирования, программные системы стараются делать адаптивными по отношению к изменяющимся объемам ресурсов и потребностям пользователей, равно как и к системным сбоям. В настоящее время для построения адаптивных программных систем обычно используются специальные средства языков программирования (например, исключения) и особые виды протоколов. Однако обычно эти механизмы тесно связаны с особенностями приложений, и их использование прямо отражается в программном коде. В результате, такие системы становятся дорогими при производ?стве, трудно модифицируемыми и адаптирующимися только к заранее предусмотренным изменениям среды. Альтернативой является использование внешних моделей и механизмов, которые отслеживают и адаптируют поведение программных систем во время выполнения. Для реализации этого внешнего подхода требуется модель, позволяющая понимать поведение системы. Одним из перспективных вариантов является использование архитектурной модели, в которой система представляется как композиция компонентов, их взаимосвязей и свойств, представляющих интерес. Абстрактная архитектурная модель может обеспечить глобальное представление системы и раскрыть важные свойства системы и ограничения целостности. Отмечая общую перспективность этого направления, авторы указывают на наличие двух проблем, требующих тщательного изучения. Во-первых, разные системы обладают совершенно разными архитектурными стилями, свойствами и механизмами динамической модификации. Необходимо обеспечить привязку архитектурной управляющей модели и стратегий модификации к конкретной системе. Во-вторых, необходимо добиться того, чтобы добавление внешнего управления системой не порождало высоких накладных расходов. В прототипе Rainbow решаются обе проблемы. Обеспечиваются повторно используемая инфраструктура и механизмы специализации этой инфраструктуры применительно к нуждам конкретных систем. Такие механизмы специализации позволяют разработчику выбрать аспекты системы, которые требуется моделировать и отслеживать, указать условия, которые должны инициировать адаптацию, а также определить адаптирующие операции.

Статья «Использование основанного на UML монотонного анализа пропорций для предсказания возможности планирования» (Using UML-Based Rate Monotonic Analysis to Predict Schedulability) написана Хусейном Сейедином (Hossein Saiedian) и Срикришнаном Рагураманом (Srikrishnan Raguraman). Под возможностью планирования смеси задач в системе реального времени понимается возможность статического или динамического назначения приоритетов задачам, при котором любая активизируемая задача успевает выполнить требуемые от нее действия в течение заранее известного промежутка времени. Один из наиболее известных методов анализа возможности планирования систем реального времени — метод Rate Monotonic Analysis (RMA), основанный на статических приоритетах задач. При заданных периодичности активизации каждой задачи, предельного времени реакции и времени выполнения задачи алгоритм в наихудшем случае позволяет определить, имеется ли для данной смеси задач возможность планирования. Авторы исследуют возможность применения UML-профиля, предназначенного для моделирования систем реального времени, для построения моделей, для анализа возможности планирования. Приведен пример анализа для модели приложения управления роботом. В настоящее время начинают появляться инструментальные средства, работающие с UML-моделями и автоматизирующие метод RMA; в качестве примера приводится RapidRMA компании Tri-Pacific Software. Однако даже при наличии подобных CASE-средств разработчики систем реального времени, использующие UML-профиль для RMA, должны быть готовы к большому объему ручной работы.

Последняя статья подборки — «Выразительное моделирование: что является семантикой ?семантики??» (Meaningful Modeling: What?s the Semantics of «Semantics»?) — написана Дэвидом Харелом (David Harel) и Берндхардом Румпе (Bernhard Rumpe). Процесс стандартизации языка UML породил обширное обсуждение его семантики и способов ее представления. Существуют различные точки зрения относительно того, что составляет семантику подмножеств и адаптаций UML. Авторы статьи выделяют ряд утверждений, являющихся, по их мнению, ошибочными. Семантика — это метамодель. В действительности, метамодель является средством описания синтаксиса.

Семантика — это семантический домен. Здесь отсутствует важная часть семантики — семантическое отображение.

Семантика — это контекстные условия. В этом утверждении не упоминаются ни семантический домен, ни семантическое отображение.

Семантика относится к поведению. описания структур тоже обладают семантикой, так что нельзя путать семантику с поведением.

Семантика — это возможность исполнения. Однако не все языки позволяют специфицировать поведение и поэтому не обеспечивают возможности исполнения языковых конструкций.

Семантика означает понимание индивидуальных конструкций. Но семантика конкретной системы не есть семантика языка.

Семантика означает использование математической нотации. Математическая нотация не имеет никакого отношения к семантике.

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

Перейдем к статьям, не вошедшим в тематическую подборку. Статью «Борьба с мошенничеством вокруг Internet-аукционов: мнение и предложение» (Fighting Internet Auction Fraud: An Assessment and Proposal) написали Сесил Ен Хуан Чуа (Cecil Eng Huang Chua) и Джонотан Веархэм (Jonathan Wareham). Мошенничество вокруг Internet-аукционов получает все большее распространение, ставя под угрозу будущее этой бизнес-модели. Совместные усилия государственных ведомств, некоммерческих организаций, аукционных домов и аукционных сообществ могут оказаться достаточными для смягчения проблемы. К сожалению, все они действуют в односторонней и даже противоречивой манере, что снижает общий эффект.

Брайан и Элизабет Уитворт (Brian Whitworth, Elizabeth Whitworth) написали статью «Спам и социально-технический разрыв» (Spam and the Social-Technical Gap). Если спамер рассылает миллион сообщений, то он останется в выгоде, даже если отфильтруется 99,99%. Фильтрация до передачи по Сети приведет к тому, что станет невозможно гарантированно отправить законное сообщение. Если сделать платной услугу отправки электронной почты, то в мире Internet немедленно появятся новые бесплатные возможности, подверженные спаму (примером служит быстрое освоение спамерами систем, подобных ICQ). Для успешной борьбы со спамом нужно преодолеть разрыв между социальными и техническими аспектами Internet. Авторы представляют несколько идей относительно внесения элементов законности в систему электронной почты. Первая состоит в том, чтобы потенциальный получатель сообщения мог отказаться от его получения, вынуждая программное обеспечение почтовой системы послать его обратно отправителю. Далее, можно ввести специальную службу запроса разрешения на посылку сообщения электронной почты. Без такого разрешения сообщения спамера просто не дойдут до адресатов.

Завершим обзор рассказом о статье «ActiveCampus: эксперименты с повсеместным применением компьютеров, ориентированным на сообщество» (ActiveCampus: Experiments in Community-Oriented Ubiquitous Computing). У статьи семь авторов; первый в их списке — Вильям Грисуолд (William Griswold). Проект ActiveCampus посвящен изучению проблем использования технологии карманных компьютеров в беспроводной сетевой среде для поддержки деятельности студентов и преподавателей большого город?ского университета. В техническом отношении проект опирается на использование карманных компьютеров Jornada Pocket PC с поддержкой беспроводной связи в стандарте IEEE 802.22b. Серверная часть системы основывается на обычном Web-сервере, реализованном с использованием MySQL и PHP. Были разработаны два приложения: ActiveClass и ActiveCampus Explorer. Первое поддерживает лекционные занятия, включая составление вопросов к лектору. Второе помогает участникам сообщества общаться в дистанционном режиме и находить друг друга для прямого общения.

На этот раз это все, до следующего месяца, Сергей Кузнецов (kuzloc@ispras.ru).