
4. АРХИТЕКТУРЫ ПРОГРАММНЫХ СИСТЕМ
4.3. Документирование программной архитектуры
Технологии разработки программного обеспечения. Учеб. пособие -158-
события и сообщения, сигнализируемые/отправляемые в результате
обращения к ресурсу;
предполагаемое поведение других ресурсов как результат обращения к
рассматриваемому ресурсу (к примеру, если данный ресурс уничтожит некий
объект, то последующие попытки обращения к этому объекту будут приво-
дить к новому результату – ошибке);
результаты, наблюдаемые пользователем (встречающиеся в основном
во встроенных системах: скажем, вызов програ
ммы, ответственной за вклю-
чение бортового индикатора, приводит к наблюдаемому результату).
Кроме того, семантика должна прояснять вопросы, связанные с испол-
нением ресурса: будет ли он носить элементарный характер, можно ли его
приостановить или прервать. Как правило, семантическая информация выра-
жается средствами естественного языка. Для фиксации предусловий и посту-
словий – сравнительно простого и эфф
ективного метода выражения семанти-
ки – специалисты во многих случаях прибегают к булевой алгебре. Еще од-
ним средством передачи семантической информации являются следы – запи-
си последовательностей операций и взаимодействий, описывающих реакцию
элемента на тот или иной вариант использования.
Ограничения на использование ресурсов. В каких обстоятельствах воз-
можно обращение к рассмат
риваемому ресурсу? Существует ли необходи-
мость в предваряющей его считывание инициализации данных? Обусловли-
вается ли вызов одного метода вызовом другого? Не установлены ли какие-
то ограничения относительно количества актеров, имеющих возможность
одномоментного взаимодействия с ресурсом? Возможно, в силу принадлеж-
ности элемента определенному актеру, он единственный, кто обладает пол-
номочиями по модификации элемента, а все ост
альные актеры ограничива-
ются лишь считыванием. Не исключено также, что, согласно многоуровневой
схеме безопасности, каждый актер может обращаться к строго определенным
ресурсам или интерфейсам. Если рассматриваемый ресурс отталкивается от
каких-либо допущений в своем окружении (например, требует наличия дру-
гих ресурсов), их следует задокументировать.
Определения типов данных. Если какой-либо ре
сурс интерфейса задей-
ствует тип данных, отличный от предусмотренного соответствующим язы-
ком программирования, архитектор должен привести определение типа дан-
ных. Если он определен в другом элементе, достаточно установить ссылку на
его документацию. Как бы то ни было, программисты, которые пишут эле-
менты, обращаясь к такому ресурсу, должны знать: а) как объявлять пере-
менные и константы типа данных; б) как в рамках этого типа данных записы-
вать литеральные значени
я; в) какие операции и сравнения применимы к
членам типа данных; г) как преобразовывать значения этого типа данных в
данные других типов.
Определения исключений. Здесь предполагаются описания исключе-
ний, которые могут порождать ресур
сы на данном интерфейсе. Поскольку
одни и те же исключения во многих случаях характерны для множества ре-