Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
констр програм обеспечение.doc
Скачиваний:
10
Добавлен:
25.11.2019
Размер:
386.28 Кб
Скачать

Литература к лекции 4.1

  1. Рамбо Дж., Блаха М. UML 2.0. Объектно-ориентированное моделирование и разработка. 2-е изд.: Пер. с англ. – СПб.: Питер, 2007. – Главы 11, 12.

  2. Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения.: Пер. с англ. – СПб.: Питер, 2002. – Глава 8.

Лекция 4.2. Проектирование архитектуры системы. Подсистемы и интерфейсы. Формирование архитектурных уровней

Проектирование архитектуры системы выполняется архитектором системы и включает в себя:

  1. идентификацию архитектурных решений и механизмов, необходимых для проектирования системы;

  2. анализ взаимодействий между классами анализа, выявление подсистем и интерфейсов;

  3. формирование архитектурных уровней;

  4. проектирование структуры потоков управления;

  5. проектирование конфигурации системы.

В процессе проектирования определяются детали реализации архитектурных механизмов, обозначенных в процессе анализа. Например, уточняется способ хранения данных, реализация дублирования для повышения надежности системы и т. п.

Декомпозиция системы на подсистемы реализует принцип модульности. Первым действием архитектора при выявлении подсистем является преобразование классов анализа в проектные классы. По каждому классу анализа принимается одно из двух решений:

  1. класс анализа отображается в проектный класс, если он простой или представляет единственную логическую абстракцию;

  2. сложный класс анализа может быть разбит на несколько классов, преобразован в пакет или в подсистему.

Несколько классов могут быть объединены в подсистему если:

  1. классы имеют функциональную связь (участвуют в реализации варианта использования и взаимодействуют только друг с другом);

  2. совокупность классов реализует функциональность, которая может быть удалена из системы или заменена на альтернативную;

  3. классы сильно связаны;

  4. классы размещены на одном узле вычислительной сети.

Примеры возможных подсистем: подсистема безопасности, защиты данных, архивирования; подсистема пользовательского интерфейса или интерфейса с внешними системами; коммуникационное ПО, доступ к базам данных.

При создании подсистем в модели выполняются следующие преобразования:

  1. объединяемые классы помещаются в специальный пакет с именем подсистемы и стереотипом <<subsystem>>;

  2. спецификации операций классов, образующих подсистему, выносятся в интерфейс подсистемы - класс со стереотипом <<Interface>>;

  3. характер использования операций интерфейса и порядок их выполнения документируется с помощью диаграмм взаимодействия, которые вместе с диаграммой классов подсистемы объединяются в кооперацию с именем интерфейса и стереотипом <<interface realization>>;

  4. в подсистеме создается класс-посредник со стереотипом <<subsystem proxy>>, управляющий реализацией операций интерфейса.

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