Архитектура программных средств
Иерархическое построение сложных программ позволяет ограничить и локализовать на каждом из уровней соответствующие ему компоненты. Нижнему иерархическому уровню представления программ соответствуют программные* и информационные модули.
Иерархическая структура программ имеет ряд специфических свойств:
· вертикальная соподчиненность, заключающаяся в последовательном упорядоченном расположении взаимодействующих компонентов;
· право вмешательства и приоритетного воздействия на компоненты любых уровней;
· взаимозависимость действий компонент верхних уровней от реакций на воздействия и от функционирования компонент нижних уровней, информация о которых передается верхним уровням.
В результате в иерархических структурах ПС образуются два потока взаимодействий между компонентами разных уровней:
сверху вниз – координирующие и управляющие воздействия верхних уровней;
снизу вверх – информация о состоянии и реализации предписанных функций компонентами нижних уровней.
Координация предполагает выбор способа координации и реализацию координирующих алгоритмов с выработкой соответствующих воздействий. Координируемые компоненты обычно имеют некоторую автономность поведения и подготовки локальных решений. Степень автономности компонентов и интенсивность координирующих воздействий устанавливаются в результате компромисса при выделении иерархических уровней. Взаимодействие компонентов в пределах уровня целесообразно максимально ограничивать, что позволит упростить общее координирование компонент и проводить его только по вертикали.
Число уровней определяется объемом и сложностью ПС. С повышением иерархического уровня увеличиваются объем программ, реализующих компоненты каждого уровня, и количество обрабатываемых переменных. Одновременно совокупности команд все более специализируются, и снижается возможность повторного применения компонентов в различных комбинациях для решения аналогичных задач.
Гибкость модификации и эффективность управления разработкой обеспечиваются за счет соблюдения ряда принципов и правил структурного построения ПС и его компонентов, а также взаимодействия между ними. Эти правила направлены на стандартизацию структуры, взаимодействия компонентов разного ранга и их назначения в пределах проблемной области.
В результате системного анализа создаются стандартизированная структура программ определенного класса и система правил ее формирования. Эта структура базируется на принципах модульно-иерархического построения ПС, основными элементами которых являются модули. Программные модули могут объединяться в функционально законченные группы программ. В такой стандартизированной структуре целесообразно выделять функциональные модули, подверженные наибольшим изменениям, а также средства контроля и организации вычислительного процесса и типовые функции. Эти средства и функции обычно связаны с особенностями реализующего компьютера и могут применяться в нескольких проблемно-ориентированных областях.
Программные модули для их повторного использования должны базироваться на унифицированных правилах структурного построения, оформления спецификаций требований и описаний текстов. Эти правила в значительной степени стандартизированы в современных языках программирования высокого уровня. Целесообразно создавать дополнительные правила структурного построения модулей и выделять типовые ассоциации операторов и ограничения их использования, а также вводить правила описания текстов на языке программирования и комментариев, правила описания данных и заголовков модулей, ограничения размеров и их сложности и т. д.
Правила стандартизации структуры межмодульного интерфейса по передачам управления и по информации формируются на базе описания языков программирования или оформляются на основе правил структурного построения программ.
При разработке серии однотипных версий ПС для некоторой прикладной области целесообразно выбрать и унифицировать внешний интерфейс и операционную систему. Для эффективного управления разработкой программ необходимо стандартизировать и соблюдать ряд принципов и правил архитектурного построения ПС.