
- •Цель и задача курса. Характеристики качества по.
- •1.2. Эволюция технологий программирования.
- •1.3. Структурный подход к программированию
- •1.4. Основания и история объектно-ориентированного подхода к программированию
- •1.5. Сложность по
- •1.6. Пути ограничения сложности
- •1.7. Основные положения объектной модели
- •1) Абстрагирование является одним из главных способов, используемых для решения сложных задач.
- •2) Ограничение доступа (инкапсуляция).
- •3) Модульность.
- •4)Иерархия.
- •Варианты использования (прецеденты)
- •2.3. Диаграммы вариантов использования
- •Пример диаграммы ви для финансовой торговой системы:
- •Связи типа «расширение» и «использование». Кроме связей между действующими лицами и ви на диаграмме существуют 2 других типа связей. Это связи типа «расширение» и «использование».
- •2.4. Диаграммы классов. Общая характеристика
- •2.4.1 Ассоциации
2.4.1 Ассоциации
Ассоциации представляют собой структурные связи между экземплярами классов. Вполне допустимы случаи, когда оба конца ассоциации относятся к одному и тому же классу. Это означает, что с объектом некоторого класса можно связать другие объекты из того же класса.
Рассмотрим ассоциации с разных точек зрения.
С концептуальной т.з. ассоциации представляют собой концептуальные связи между классами. С этой т.з. на диаграмме (рисунок 2.2.) видно, что Заказ должен поступить от единственного Клиента, а Клиент может сделать несколько Заказов. Каждый из Заказов содержит несколько Строк Заказа, а каждая Строка Заказа соответствует единственному Продукту.
Любая ассоциация обладает двумя ролями. Роль представляет направление ассоциации. Т.о., ассоциация между Клиентом и Заказом содержит 2 роли – от Заказа к Клиенту и от Клиента к Заказу. Роль м.б. поименована с помощью метки. Например, роль ассоциации от Заказа к Строкам Заказа называется «позиции Заказа». Если метки нет, то роли присваивается имя класса-цели, т.е. роль ассоциации от Заказа к Клиенту м.б. названа «Клиент».
Роль обладает множественностью, которая показывает, сколько объектов может участвовать в данной связи. Множественность показывает нижнюю и верхнюю границы количества объектов, участвующих в связи. Символ * выражает диапазон «0-∞».
С т.з. спецификации ассоциации представляют собой ответственности классов. В примере (рисунок 2.2) подразумевается, что существует 1 или более методов, связанных с Клиентом, с помощью которых можно узнать, какие Заказы сделал данный Клиент. В классе Заказ существуют методы, с помощью которых можно узнать, какой Клиент сделал данный Заказ, и какие Строки Заказа входят в Заказ.
ДК в нашем примере предполагает, что существуют некоторые механизмы обновления связей. Например, должен существовать некоторый способ связи конкретного Заказа с конкретным Клиентом. Деталей этого способа на диаграмме нет. Например, это м.б. метод «добавить Заказ», связанный с Клиентом. Такой способ связи можно сделать более явным путем добавления операций в блок соответствующего класса на ДК.
Рассматривая ДК с т.з. спецификации, нельзя увидеть структуру данных для класса. На диаграмме показан только интерфейс.