UML / АСУ_Фонотов_uml
.pdfКафедра Автоматизированных систем управления
© Фонотов Анастас Михайлович
Кафедра Автоматизированных систем управления
© Фонотов Анастас Михайлович
Отношение ассоциации, кратность
Кафедра Автоматизированных систем управления
Значение кратности может быть указано в виде:
одного значения «0»,» «1», «*»;
- в виде диапазона значений «0..1», «0..*»;
- в виде набора значений и диапазонов «0, 4, 6, 10..12», «1..5, 10..*»;
class Class Model |
|
Студент |
Курс |
* |
* |
© Фонотов Анастас Михайлович
Отношение ассоциации, кратность
Кафедра Автоматизированных систем управления
class Class Model
Группа |
Студент |
1 12..30
class Class Model |
|
Группа |
Староста |
1 |
1 |
© Фонотов Анастас Михайлович
Отношение ассоциации
Кафедра Автоматизированных систем управления
class Class Model |
|
|
Группа |
Ведет лекции |
Преподаватель |
|
||
|
Ведет лабораторные |
|
class Class Model
Клиент |
Поставщик |
+Покупает |
+Поставляет |
© Фонотов Анастас Михайлович
Отношение ассоциации
Кафедра Автоматизированных систем управления
class Class Model |
|
|
Группа |
Ведет лекции |
Преподаватель |
|
||
|
Ведет лабораторные |
|
class Class Model
Клиент |
Поставщик |
+Покупает |
+Поставляет |
© Фонотов Анастас Михайлович
Генерация кода. Двунаправленная
ассоциация
Кафедра Автоматизированных систем управления
Class cLektor { public:
cLector( );
cStudent *m_cStudent;
}
Class cStudent { public: cStudent( );
cLektor *m_cLekrot;
}
cLektor |
|
cStudent |
|
|
|
|
|
|
© Фонотов Анастас Михайлович
Генерация кода.
Однонаправленная ассоциация
Кафедра Автоматизированных систем управления
class Class2 { public:
Class2();
virtual ~Class2();
};
class Class1{ public:
Class1();
virtual ~Class1(); int id_value_pub; Class2 *m_Class2;
private:
int* id_ref; int id_value;
};
class Class Model
|
Class1 |
|
- |
id_ref: int* |
|
- |
id_value: int |
|
+ |
id_value_pub: int |
Class2 |
|
|
© Фонотов Анастас Михайлович
Генерация кода.
Однонаправленная ассоциация
Кафедра Автоматизированных систем управления
Установим Стереотип
Property и влажок Property для int* id_ref;
class Class1 { public:
Class1();
virtual ~Class1(); int Getid_ref();
void Setid_ref(int newVal); int id_value_pub;
Class2 *m_Class2; private:
int* id_ref; int id_value;
};
© Фонотов Анастас Михайлович
#include "Class1.h" Class1::Class1(){
}
Class1::~Class1(){
}
int Class1::Getid_ref(){ return id_ref;
}
void Class1::Setid_ref(int newVal){ id_ref = newVal; }
class Class Model
Class1
-id_value: int
+id_value_pub: int
«Property» |
Class2 |
-id_ref: int*
«property get»
+ Getid_ref():int
«property set»
+Setid_ref(int):void
Генерация кода.
Однонаправленная ассоциация
Кафедра Автоматизированных систем управления
Добавим в класс 2 одну операцию с двумя параметрами int n, bool f class Class2 {
public:
class Class Model
Class2();
virtual ~Class2(); |
Class1 |
|
void Do_some(int n, bool f); |
- id_value: int |
|
|
|
|
|
+ id_value_pub: int |
|
}; |
«Property» |
Class2 |
|
- id_ref: int* |
|
|
+ |
Do_some(int*, bool) : void |
#include "Class2.h" |
«property get» |
|
+ Getid_ref() : int |
|
|
Class2::Class2(){ |
«property set» |
|
|
|
|
|
+ Setid_ref(int) : void |
|
} |
|
|
Class2::~Class2(){ |
|
|
} |
|
|
void Class2::Do_some(int n, bool f){ |
|
|
} |
|
|
© Фонотов Анастас Михайлович