Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Архитектура и проектирование программных систем

Представление созданной архитектуры ПС

Удобным и наглядным способом представления архитектуры программных систем является использование графов. В работе [4] строится модель ПС на основе исходного кода, когда может отсутствовать информация о составляющих систему блоках. В нашем случае рассматривается пример разработки ПС на основе гибкой технологии, когда в разрабатываемую систему последовательно добавляются новые модули. В этом случае каждый модуль ту системы можно представить именем Иате и частью параметров Оу из спецификации модуля - именами модулей, которые могут быть вызваны из модуля Шу. Для удобства и простоты дальнейших построений каждый модуль будем представлять в следующем виде:

где namberX - номер модуля ту, отождествляемый с его именем Name; namberl - номер 1 -го модуля, к которому может обращаться модуль т,р namberl - номер 2-го модуля, к которому может обращаться модуль ти т.д.

Таким образом, в целом перечень всех модулей и их взаимосвязей можно представить списком следующего вида:

S — iS) —) S-, ——)Sfs- (7.12)

где Sj, / = 1, 2, ...,К - элементы списка следующей структуры:

  • S] =< 1, s, к, т,... >,
  • • Sj —,
  • SK =<К, g,z,u,...>,

где s, k, m, l,t, f, • •g, z,u ... - номера модулей.

На основе списка S можно построить граф G, отображающий структуру ПС. Однако в таком представлении трудно сделать вывод о типе архитектуры программной системы и ее качестве. Известно, что значительная часть современных программных систем имеет многослойную архитектуру. В таких архитектурах модули нижнего слоя для выполнения своих функций не обращаются к другим слоям. Организация вышележащих слоев может быть различной. Поэтому при анализе полученной архитектуры ПС первой задачей является выделение слоев модулей. Многослойная архитектура обеспечивает группировку связанной функциональности приложения в разных слоях, выстраиваемых вертикально, поверх друг друга. Функциональность каждого слоя объединена общей ролью или ответственностью. Слои слабо связаны, и между ними осуществляется явный обмен данными. Правильное разделение приложения на слои помогает поддерживать строгое разделение функциональности, что обеспечивает гибкость, а также удобство и простоту разработки.

Слои приложения могут размещаться физически на одном компьютере (на одном уровне) или быть распределены по разным компьютерам (п уровней). Связь между компонентами разных уровней осуществляется через строго определенные интерфейсы. Далее будем рассматривать ПС одного определенного языкового уровня с хорошо определенными синтаксическими единицами в соответствии с хорошо определенными синтаксическими правилами и хорошо определенной семантикой элементарных операторов и синтаксических конструкций. Из рассмотрения исключим все вопросы, относящиеся к другим языковым уровням, таким, например, как интерпретация элементарных операторов в терминах более примитивных составляющих.

Элементарные операторы данного языкового уровня будем рассматривать как модули базового уровня, составляющие базовый слой. Это можно сделать потому, что все элементарные операторы ПС повсеместно доступны. Заметим, что здесь не учитываются привилегированные операторы машинного языка, которые не могут использоваться в прикладных программных системах. Модули, построенные из модулей базового уровня, могут рассматриваться только как модули нулевого уровня. При этом не требуется, чтобы все модули нулевого уровня были равнодоступны. Например, в программах, написанных на языке, допускающем блочную структуру, некоторые модули нулевого уровня могут быть локализованы в каком-либо блоке и, следовательно, доступны только внутри этого блока и его подблоков. С другой стороны, при конструировании модулей высших уровней в некоторых языках можно использовать модули разных уровней и даже того же самого уровня, что и конструируемый модуль (рекурсия, сопрограммы).

Введем в рассмотрение матрицу Я размером Кх К, каждый элемент

которой образуется по правилу

1, если/є 5),

О-в противном случае.

(7.13)

Далее можно следовать алгоритму, который дается ниже.

  • 0. Начало, 1 = 0.
  • 1. Находим в матрице номера строк, все элементы которых равны нулю.
  • 2. Фиксируем вершины с этими номерами, образующими 1-слой.
  • 3. 1 = 1+1.
  • 4. Если остались столбцы с ненулевыми элементами, обнуляем столбцы с номерами найденных вершин. Переходим к п. 1.
  • 5. Если все столбцы содержат только нулевые элементы, конец.

Надо заметить, что данный алгоритм позволяет построить послойную архитектуру ПС, которая удовлетворяет одному из вариантов, рассмотренных в [5]. Однако если в слоях ПС имеются горизонтальные связи или сильносвязанные модули, то полностью определить структуру ПС без дополнительного анализа не удастся.

 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Пред   СОДЕРЖАНИЕ   След >
 

Популярные страницы