UML / АСУ_Фонотов_uml
.pdfШаблон (template). Типы связывания
Кафедра Автоматизированных систем управления
Связывание (binding)
Явное – отношение зависимости со стереотипом “bind”
Неявное – Имя класса имеет формат
Имя_классификатора : имя_шаблона <аргументы>
class Class Model |
|
|
|
T |
|
|
n |
|
|
Array |
Positions |
- |
items[n]:T: int |
«bind» |
|
|
|
|
|
<n=50, T=Position> |
n-число элементов массива, T-тип элементов массива
© Фонотов Анастас Михайлович
Шаблон (template). Генерация кода
|
|
|
Position.h |
|
Array.h |
|
|
|
|
class Positions |
|
|
|
|
|
|
template<T, n> |
|
{ |
управления |
|
|
|
class Array |
|
Positions(); |
|
{ |
|
||
|
|
public: |
|
|
|
|
|
систем |
public: |
|
}; |
Array(); |
|
||
|
|
|
virtual ~Positions(); |
Автоматизированных |
virtual ~Array(); |
|
|
|
|||
}; |
|
} |
|
|
|
|
Position.cpp |
|
private: |
|
#include "Positions.h« |
|
int items[n]:T; |
|
|
|
|
|
Positions::Positions(){ |
Кафедра |
|
|
Positions::~Positions(){ |
|
|
|
|
|
|
|
} |
|
|
|
|
© Фонотов Анастас Михайлович
Углубленное изучение связи
зависимости
Abstraction – соединяет два элемента модели (или группы элементов), которые находятся на разных уровнях
управления |
|
абстракций или рассматриваются с разных точек зрения |
|
|
|
|
Binding – Связывание элементов шаблона с параметрами |
|
систем |
|
шаблона “bind” |
|
Realization – Соответствие между реализацией и ее |
|
Автоматизированных |
|
|
|
спецификацией “realize” |
|
|
|
|
|
Substitution – Поддержка одним классом интерфейсов и |
|
|
|
контрактов другого класса и возможность подстановки |
|
|
первого класса вместо второго |
Кафедра |
Usage – Одному элементу нужен для правильного |
|
|
функционирования другой элемент модели |
|
|
|
© Фонотов Анастас Михайлович
|
|
|
|
|
|
Углубленное изучение связи |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
зависимости |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
Abstraction |
||||
|
||||||
управления |
|
|
|
«derive» - Один экземпляр может быть вычислен на |
||
|
|
|
|
экземпляр |
||
|
|
|
|
|
|
основе информации, которую предоставляет другой |
систем |
|
|
|
«refine» - соответствие между элементами находящимися |
||
|
|
|
|
|||
Автоматизированных |
|
|
|
|
на разных семантических уровнях |
|
|
|
|
«Permit» – Разрешение для элемента использовать |
|||
|
|
|
|
|
«trace» - Существование связи между элементами |
|
|
|
|
|
|
|
различных моделей (менее точной чем прямое |
Кафедра |
|
|
|
|
отображение) |
|
|
|
|
|
содержимое другого элемента |
||
|
|
|
|
|
|
© Фонотов Анастас Михайлович
|
|
|
|
|
|
Углубленное изучение связи |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
зависимости |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
Usage |
||||
|
||||||
управления |
|
|
|
«use» - Одному элементу нужен другой для правильного |
||
|
|
|
функционирования. |
|||
|
|
|
|
|
|
|
систем |
|
|
|
|
«call» - Метод одного класса вызывает операцию другого |
|
|
|
|
|
класса |
||
|
|
|
|
|
|
|
Автоматизированных |
|
|
|
«create» - Один класс создает экземпляры другого класса |
||
|
|
|
«instantiate» - метод одного класса создает экземпляры |
|||
|
|
|
|
|||
|
|
|
|
|
|
другого класса |
|
|
|
|
|
«send» - Отношение между источником и приемником |
|
Кафедра |
|
|
|
|
сигнала |
|
|
|
|
|
|
© Фонотов Анастас Михайлович
|
|
|
|
|
|
Улучшение модели |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
Признак пропущенного объекта класса |
|||
|
|
|||||
управления |
|
|
Признак ненужного (лишнего) класса |
|||
|
|
Признак пропущенной зависимости |
||||
|
|
|||||
систем |
|
|
Признак ненужной (лишних) зависимости |
|||
|
|
|
Признаки неправильного размещения |
|||
АвтоматизированныхКафедра |
|
|
||||
|
|
|
зависимостей |
|||
|
|
|
|
|||
|
|
|
Признаки неправильного размещения атрибутов |
© Фонотов Анастас Михайлович
|
|
|
|
|
Улучшение модели |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|||
|
Признаки пропущенного объекта класса: |
||||
управления |
|
|
несимметричности связей и обобщений (наследований); |
||
|
|
несоответствие атрибутов и операций у класса; для |
|||
|
|
||||
|
|
|
исправления ошибки необходимо расщепить класс на |
||
систем |
|
|
несколько других классов, так чтобы атрибуты и операции |
||
|
|
новых классов соответствовали друг другу; |
|||
Автоматизированных |
|
|
и назначением; для исправления ошибки необходимо сделать |
||
|
|
|
обнаружена операция, не имеющая удовлетворительного |
||
|
|
|
целевого класса; для исправления ошибки необходимо |
||
|
|
|
добавить пропущенный целевой класс; |
||
Кафедра |
|
|
обнаружено несколько зависимостей с одинаковыми именами |
||
|
|
обобщение и добавить пропущенный суперкласс. |
|||
|
|
|
© Фонотов Анастас Михайлович
|
|
|
|
|
Улучшение модели |
|
|
|
|
|
|
||
|
|
|
|
|
||
|
|
|
|
|||
|
|
|
|
|
||
|
|
|
|
|||
|
|
Признаки ненужного (лишнего) класса: |
||||
управления |
|
|
|
нехватка атрибутов, операций и зависимостей у некоторого |
||
|
|
|
|
класса; для исправления ошибки необходимо подумать, не |
||
|
|
|
|
|
||
систем |
|
|
|
|
следует ли исключить такой класс. |
|
|
Признаки пропущенных зависимостей: |
|||||
|
||||||
АвтоматизированныхКафедра |
|
|
|
отсутствуют пути доступа к операциям; для исправления |
||
|
|
|
|
|
ошибки необходимо добавить новые зависимости, обеспечивающие возможности обслуживания соответствующих запросов.
© Фонотов Анастас Михайлович
|
|
|
|
|
Улучшение модели |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|||
|
Признаки ненужных (лишних) зависимостей: |
||||
управления |
|
|
|
избыточная информация в зависимостях; для исправления |
|
|
|
|
|
ошибки необходимо исключить зависимости, не |
|
|
|
|
|
|
|
|
|
|
|
|
добавляющие новой информации, или пометить их как |
систем |
|
|
|
|
производные зависимости; |
|
|
|
не хватает операций, пересекающих зависимость; для |
||
|
|
|
|||
АвтоматизированныхКафедра |
|
|
|
|
исправления ошибки необходимо подумать, не следует ли |
|
|
|
|
исключить такую зависимость. |
|
|
|
|
|
|
© Фонотов Анастас Михайлович
|
|
|
|
|
Улучшение модели |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|||
|
Признаки неправильного размещения зависимостей: |
||||
управления |
|
|
|
имена ролей слишком широки или слишком узки для их |
|
|
|
|
|
классов; для исправления ошибки необходимо переместить |
|
|
|
|
|
|
|
|
|
|
|
|
зависимость вверх или вниз по иерархии классов. |
систем |
Признаки неправильного размещения атрибутов: |
||||
|
|
|
нет необходимости доступа к объекту по значениям одного |
||
|
|
|
|||
АвтоматизированныхКафедра |
|
|
|
|
из его атрибутов; для исправления ошибки необходимо |
|
|
|
|
рассмотреть, нужно ли ввести квалифицированную |
|
|
|
|
|
|
зависимость.
© Фонотов Анастас Михайлович