
- •Uml. Визначення, переваги застосування.
- •Компоненти uml та моделі.
- •Дiаграма класiв. Позначення, особливостi застосування.
- •Дiаграма послiдовностей.
- •Види зв’язкiв мiж класами: узагальнення. Навести приклад.
- •Види зв’язкiв мiж класами: асоцiацiї. Навести приклад.
- •Види зв’язкiв мiж класами: агрегацiя. Навести приклад.
- •Види зв’язкiв мiж класами: композицiя. Навести приклад.
- •Елементи дiаграми класiв.
- •Діаграма об'єктів.
- •Докладніше
- •Побудова концептуальної моделi. Визначення та етапи.
- •Діаграма пакетiв.
- •Діаграма розгортань.
- •Унiфiкований процес розробки.
- •Діаграма прецедентiв. Складовi та вiдношення мiж ними.
- •Діаграма прецедентiв. Вiдношення узагальнення.
- •Узагальнення - це єдиний тип відношень, який може задаватись між акторами. (Можна, наприклад, визначати загальні типи акторів, а потім спеціалізувати їх, створюючи різновиди.)
- •Діаграма прецедентiв. Вiдношення залежностi.
- •Між прецедентами можуть існувати семантичні залежності, які доцільно представляти у діаграмах (для зображення відношень залежностей використовуються пунктирні стрілки).
- •Діаграма прецедентiв. Вiдношення розширення.
- •Діаграма станiв.
- •Діаграма дiяльностi.
- •Діаграма компонентів. Компонент. Графічне зображення компонента. Види компонентів.
- •Діаграма компонентів. Інтерфейс. Графічне зображення інтерфейсів. Графічне зображення залежностей.
- •Діаграма компонентів. Елементи діаграми компонентів: вузол, з’єднання, відношення залежності.
- •Оглядова діаграма взаємодії.
- •Докладніше
- •Діаграма кооперації. Кооперація. Структурні елементи. Рівні кооперації.
Види зв’язкiв мiж класами: агрегацiя. Навести приклад.
Відношення між класами типу "містить" (contain) або "складається з" називається агрегацією, або включенням. Наприклад, якщо акваріум наповнений водою і в ньому плавають рибки, то можна сказати, що акваріум агрегує в собі воду і рибок.
Таке ставлення включення, або агрегації (aggregation), зображується лінією з ромбиком на боці того класу, який виступає в якості власника, або контейнера. Необов'язкова назва відносин записується посередині лінії.
У нашому прикладі ставлення contain є двонаправленим. Об'єкт класу Aquarium містить кілька об'єктів Fish. У той же час кожна рибка "знає", в якому саме акваріумі вона живе. Кожен клас має свою роль в агрегації, яка вказує, яке місце займає клас у даному відношенні. Ім'я ролі не є обов'язковим елементом позначень і може бути відсутнім на діаграмі. У прикладі можна бачити роль home класу Aquarium (акваріум є домом для рибок), а також роль inhabitants класу Fish (рибки є мешканцями акваріума). Назва ролі звичайно збігається з назвою відповідного поля в класі. Зображення такого поля на діаграмі зайве, якщо вже вказано ім'я ролі. Тобто в даному випадку клас Aquarium матиме властивість (поле) inhabitants, а клас Fish - властивість home.
Кількість об'єктів, які беруть участь у відношенні, записується поряд з ім'ям ролі. Запис "0 .. n" означає "від нуля до нескінченності". Прийнято також позначення:
"1 .. n" - від одиниці до нескінченності;
"0" - нуль;
"1" - один;
"N" - фіксована кількість;
"0 .. 1" - нуль чи один.
Код, що описує розглянуту модель і явище агрегації, може виглядати, наприклад, наступним чином:
// Визначення класу Fish
public class Fish {
// Визначення поля home
// (Посилання на об'єкт Aquarium)
private Aquarium home;
public Fish () {
}
}
// Визначення класу Aquarium
public class Aquarium {
// Визначення поля inhabitants
// (Масив посилань на об'єкти Fish)
private Fish inhabitants [];
public Aquarium () {
}
}
Види зв’язкiв мiж класами: композицiя. Навести приклад.
Що таке композиція? Композиція (агрегування, включення) - найпростіший механізм для створення нового класу шляхом об'єднання кількох об'єктів існуючих класів в єдине ціле При агрегування між класами діє «ставлення речі» У машини є кузов, колеса і двигун У людини є голова, руки, ноги і тіло У трикутника є вершини Вкладені об'єкти зазвичай оголошуються закритими (private) всередині класу-агрегату...
Пример 1 - Треугольник class CPoint { public: CPoint(double x, double y); double GetX()const; double GetY()const; private: double m_x, m_y; }; class CTriangle { public: CTriangle(CPoint const& p1, CPoint const& p2, CPoint const& p3); CPoint GetVertex(unsigned index)const; private: CPoint m_p1, m_p2, m_p3; };
Елементи дiаграми класiв.
елементи діаграми класів
Окрім класів на діаграмах класів можуть міститися і деякі інші елементи.
Інтерфейси
Інтерфейси — це абстрактні класи, тобто з них не можна напряму створювати екземпляри. У інтерфейсах можуть міститися операції, але не атрибути. Класи можуть бути нащадками інтерфейсів (за допомогою асоціації реалізації), а з цих діаграм можна потім створювати сутності.
Типи даних
Типи даних — це базові елементи, з яких типово будується мова програмування. Типовими прикладами є цілі числа і булеві значення. Вони не можуть мати зв’язків з класами, але класи можуть мати зв’язки з ними.
Переліки
Переліки є простими списками значень. Типовим прикладом є перелік днів тижня. Пункти переліків називаються літералами переліків. Подібно до типів даних, переліки не можуть мати зв’язків з класами, але класи можуть мати зв’язки з переліками.
Пакунки
Пакункам відповідають простори назв у мовах програмування. На діаграмі пакунки використовуються для позначення частин системи, у яких міститься декілька класів, може навіть сотні класів.