Как было упомянуто выше и продемонстрировано на нескольких примерах, одним из главных достоинств автоматного программирования является представление логики поведения системы в наиболее понятном и наглядном виде — с использованием графической нотации автоматов в виде графов, или диаграмм, переходов. Однако не только логика поведения требует наглядного представления. Спецификация структуры системы является, наряду со спецификацией поведения, одним из двух основных результатов процесса проектирования и также требует подходящей нотации. В примерах, приводимых до сих пор, структура системы (объекты управления, автоматы и связи между ними) описывалась словесно. Как могли убедиться читатели, такое описание громоздко и не наглядно. В программировании с явным выделением состояний для описания структуры системы используется графическая нотация схемы связей автоматов Схема связей строится отдельно для каждого автомата системы. На ней в виде прямоугольника изображается сам автомат (рис. 2.20). Слева от него изображаются источники информации (в событийных системах их также называют поставщиками событий) —
сущности из системы или внешней среды, которые формируют входные воздействия автомата. Для каждого события, входной переменной или предиката с номером состояния между автоматом и источником информации проводится линия, помеченная идентификатором и словесным описанием этого события (переменной, предиката) Таким образом, схема связей предназначена, в том числе, и для расшифровки сокращенных идентификаторов событий и переменных, используемых на диаграмме переходов. Это позволяет изображать указанную диаграмму весьма компактно даже при наличии большого числа входных и выходных переменных. Такие диаграммы проще понимаются человеком, так как могут быть охвачены целиком одним взглядом. Справа от автомата изображаются его объекты управления и подчиненные (вложенные или вызываемые) автоматы. Для каждой выходной переменной между автоматом и соответствующим объектом управления проводится линия, помеченная идентификатором и описанием переменной. Если вызываемому автомату передается одно или несколько событий, то для каждого из этих событий также проводится линия с пометками. Если объекты управления являются также и источниками информации — формируют часть входных переменных автомата, то они изображаются справа, а линии, соответствующие входным переменным, изображаются в виде обратных связей. На рис. 2.20 представлена схема связей автомата, управляющего клапаном, процесс проектирования которого был описан в разделе 2.1.1.Приведем схемы связей и для других примеров систем со сложным поведением из предыдущих разделов. Один из вариантов схемы связей управляющего автомата часов с будильником изображен на рис. 2.21. Объект управления в этой системе (в отличие от системы управления клапаном) имеет чисто программную природу, поэтому его структура полностью определяется разработчиком. Рассмотрим теперь систему управления двумя клапанами, спроектированную с применением автоматной декомпозиции по объектам управления. В этой системе три управляющих автомата. Структуру системы естественно изобразить в виде трех схем связей (рис. 2.22).При спецификации таких простых систем допустимо изображать все управляющие автоматы на одной, общей схеме связей, которая в этом случае отражает также и взаимодействие автоматов между собой. Однако решение с отдельной схемой для каждого автомата более масштабируемо и в общем случае следует использовать его. Этот пример показывает, что схема связей позволяет наглядно отобразить взаимодействие автомата не только с объектами управления и элементами внешней среды, но и с другими автоматами системы. Автоматы A2 и A3 вложены в автомат A1, и на схеме связей последнего они изображены справа, как объекты управления. В данной системе взаимодействие автоматов осуществляется путем обмена номерами состояний. Поэтому связи между автоматами системы помечены предикатами вида yi = n и yi ? n, а также словесными пояснениями этих предикатов. Такая нотация позволяет сгладить недостатки механизма обмена номерами состояний и является шагом на пути к четко определенному интерфейсу взаимодействия между автоматами. Поскольку каждому предикату сопоставляется отдельная связь и определенный смысл, для перехода к событийной модели взаимодействия достаточно заменить каждый из предикатов отдельным событием. Для небольших систем, управляемых множеством автоматов, схем связей вполне достаточно, для того чтобы наглядно описать взаимосвязи и обмен информацией между автоматами. Для систем большего размера со сложными взаимосвязями может быть удобно построить диаграмму взаимодействия автоматов на которой изображаются все автоматы системы и отношения вложенности и вызываемости между ними (рис. 2.23). При необходимости на такой диаграмме можно отобразить обмен номерами состояний, событиями или сообщениями между автоматами. Диаграмма взаимодействия автоматов может использоваться для получения представления о системе как о целом, в качестве разновидности диаграммы потока данных, а также для выявления специфических свойств (например, если рассматривать диаграмму взаимодействия как граф вызываемости, то контуры в нем могут приводить к зацикливанию).