UML / АСУ_Фонотов_uml
.pdf
|
|
|
|
|
|
Интерфейсы |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
Интерфейс – это набор операций, используемых |
|||
|
|
|||||
управления |
|
|
|
для специфицирования услуг, предоставляемых |
||
|
|
|
классом или компонентом |
|||
|
|
|
|
|||
систем |
|
|
Интерфейс определяет границу между |
|||
|
|
|
спецификацией того, что делает абстракция, и |
|||
АвтоматизированныхКафедра |
|
|
|
реализацией того, как она это делает [Г. Буч] |
||
|
|
|
|
© Фонотов Анастас Михайлович
|
|
|
|
|
Интерфейсы |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|||
|
|
Смысл использования Интерфейса - отделение |
|||
управлениясистем |
|
|
деталей реализации от функциональности. |
||
|
|
Интерфейс описывает доступную извне |
|||
|
|
|
|||
|
|
|
функциональность отделяя ее от реализации класса. |
||
Кафедра Автоматизированных |
|
Интерфейс не содержит атрибутов. |
|||
|
|
|
|
|
© Фонотов Анастас Михайлович
Интерфейсы и С++
|
С++ не содержит понятия Интерфейс, поэтому |
|
управлениясистем |
|
Интерфейсы моделируются посредством |
|
использования классов. |
|
|
|
|
АвтоматизированныхКафедра |
|
В С++ Интерфейс содержит чисто виртуальные |
|
методы. |
|
|
|
© Фонотов Анастас Михайлович
Реализации (realization)
Кафедра Автоматизированных систем управления
Реализация – отношение между спецификацией и ее программной реализацией.
|
|
Контексное меню |
БлокВыбора |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
СписокРадиоКнопок
© Фонотов Анастас Михайлович
Кафедра Автоматизированных систем управления
© Фонотов Анастас Михайлович
pkg realization |
|
|
|
|
|
|
|
«interface» |
|
|
|
|
iSearch |
|
|
+ |
FindById(int) : void |
|
|
|
BookManager |
|
|
ProductManager0 |
+ |
FindById(int) : void |
+ |
FindById(int) : void |
|
|
Book |
|
|
Product |
|
|
|
|
|
- |
Autor[]: char |
|
- |
ProductId: int |
- |
BookId: int |
|
||
|
- |
ProductName[]: char |
||
- |
Title[]: char |
|
||
|
- |
quantity: int |
||
|
|
|
|
|
|
|
|
|
Реализации (realization) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
Реализацией элемент должен поддерживать все |
|||
|
|
|||||
управления |
|
|
|
операции, имеющиеся у реализуемого элемента. |
||
|
|
Клиент берет на себя ответ за все операции |
||||
|
|
|||||
систем |
|
|
|
поставщика. Он должен объявить их |
||
|
|
|
самостоятельно унаследовать от своего предка. |
|||
Автоматизированных |
|
|
|
большим поведением и реализовывать несколько |
||
|
|
|
Элемент отвечающий за программную реализацию |
|||
|
|
|
|
должен поддерживать все поведение, который есть |
||
Кафедра |
|
|
|
у поставщика, но при этом он может обладать |
||
|
|
|
интерфейсов. |
|||
|
|
|
|
|||
|
|
|
|
|
© Фонотов Анастас Михайлович |
Реализации (realization)
Связь связывает один элемент модели, чаще всего
управления |
класс или компонент, с другим элементом |
|
(интерфейс), который дает спецификацию своего |
||
|
||
Кафедра Автоматизированных систем |
поведения но не структуру и реализацию в |
|
программном коде. |
||
|
© Фонотов Анастас Михайлович
Интерфейс (interface)
Кафедра Автоматизированных систем управления
– вид класса, который представляет собой объявление множества общедоступных характеристик и обязанностей.
требуемый |
предоставляемый |
интерфейс |
интерфейс |
СигналТревоги |
БесконтактныйДатчик |
IДатчик
|
|
<<interface>> |
|
|
|
|
|||
СигналТревоги |
|
IДатчик |
|
БесконтактныйДатчик |
|
|
|
||
|
|
включить() |
|
|
|
|
прочитать() |
|
|
|
|
© Фонотов Анастас Михайлович
Шаблон (template)
Кафедра Автоматизированных систем управления
Шаблон – сущность с параметрами
Шаблон – классификатор, который в своем описании имеет несколько формальных параметров
Параметром может выступать
Тип составляющей
Кратность атрибута
Параметры шаблона описываются в пунктирном прямоугольнике, который присоединяется к стандартному обозначению класса
Шаблон не указывается в модели
Связывание класса с шаблоном (binding) осуществляется явным указанием значений параметров
© Фонотов Анастас Михайлович
Шаблон (template)
Кафедра Автоматизированных систем управления
Шаблоны нужны, чтобы определить некоторую параметрическую конструкцию один раз и затем использовать ее многократно, подставляя конкретные значения аргументов.
T:String
k:Integer=2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Список формальных |
|
СвязныйСписок |
||||||||||||||||||
|
|
|
|
||||||||||||||||||||
|
|
|
|
||||||||||||||||||||
|
|
|
параметров шаблона |
|
|
||||||||||||||||||
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Имя шаблона |
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
элемент: T[k] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Список атрибутов |
|
|
|
|
|
|
|
|
|||||||||||||||
|
шаблона |
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Список операций |
|
|
|
|
|
|
|
<<bind>> |
|||||||||||||||
|
шаблона |
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
<T->Адрес, k->4> |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
© Фонотов Анастас Михайлович