Объектно-ориентированный подход к моделированию информационных систем
Объектная модель - концептуальная основа моделирования Основные понятия:
Основные механизмы ООМ:
Абстрагирование – выделение существенных характеристик некоторого объекта, которые отличают его от всех других видов объектов и четко оп
Инкапсуляция – объединение данных (атрибутов) и поведения (операций) в рамках класса
Наследование
Язык UML в анализе и проектировании бизнес-процессов Диаграмма классов языка UML 2
Диаграмма классов — основная логическая модель системы
Варианты графического изображения класса на диаграмме классов
Примеры записи атрибутов
Операции класса
Примеры записи операций:
Отношения на диаграмме классов
Ассоциация с навигацией и эквивалентное ему представление класса с атрибутом
Исключающая ассоциация между тремя классами
Пример тернарной ассоциации
Обобщение (generalization)
Примеры отношения обобщения
Агрегация (aggregation)
Пример отношения агрегации
Композиция (composition)
Пример отношения композиции
UML Profile for Software Development Processes
Основные обозначения на диаграмме классов
297.00K
Категория: ПрограммированиеПрограммирование

Объектно-ориентированный подход к моделированию информационных систем

1. Объектно-ориентированный подход к моделированию информационных систем

1

2. Объектная модель - концептуальная основа моделирования Основные понятия:

• объекты и атрибуты
• целое и часть
• классы и экземпляры
2

3.

• Объект - осязаемая реальность
(tangible entity) - предмет или явление,
имеющие четко определяемое
поведение
• Класс - множество объектов,
связанных общностью структуры и
поведения. Класс инкапсулирует
(объединяет) в себе данные
(атрибуты) и поведение (операции)
3

4. Основные механизмы ООМ:


абстрагирование
инкапсуляция
наследование
модульность
иерархия
4

5. Абстрагирование – выделение существенных характеристик некоторого объекта, которые отличают его от всех других видов объектов и четко оп

Абстрагирование – выделение
существенных характеристик
некоторого объекта, которые
отличают его от всех других видов
объектов и четко определяют его
концептуальные границы с точки
зрения дальнейшего рассмотрения и
анализа
5

6. Инкапсуляция – объединение данных (атрибутов) и поведения (операций) в рамках класса

Наследование – построение новых
классов на основе существующих с
возможностью добавления или
переопределения данных и методов
6

7.

Модульность – свойство системы,
связанное с возможностью ее
декомпозиции на ряд внутренне связных,
но слабо связанных между собой
модулей
Иерархия – ранжированная или
упорядоченная система абстракций,
расположение их по уровням
Полиморфизм – способность класса
принадлежать более чем одному типу
7

8.

Состояние объекта характеризуется
перечнем (обычно неизменным) всех
свойств данного объекта и текущими
(обычно изменяемыми) значениями каждого
из этих свойств. Тот факт, что всякий объект
имеет состояние, означает, что всякий
объект занимает определенное
пространство (физически или в памяти
компьютера).
8

9.

К числу свойств относятся присущие
объекту или приобретаемые им
характеристики, черты, качества или
способности, делающие данный объект
самим собой. Эти свойства принято называть
атрибутами класса
9

10.

Наследование – это такое отношение между
классами, когда один класс частично или
полностью повторяет структуру и поведение
другого класса (одиночное наследование) или
других (множественное наследование) классов.
Наследование устанавливает между классами
иерархию "общее-частное".
Связи наследования также называют
обобщениями (generalization) и изображают в виде
больших белых стрелок от класса-потомка к
классу-предку
10

11. Наследование

• Механизм наследования классов позволяет
строить иерархии, в которых производные
классы получают элементы родительских, или
базовых, классов и могут дополнять их или
изменять их свойства.
• Классы, находящиеся ближе к началу
иерархии, объединяют в себе наиболее общие
черты для всех нижележащих классов.
• По мере продвижения вниз по иерархии
классы приобретают все больше конкретных
черт:
11

12. Язык UML в анализе и проектировании бизнес-процессов Диаграмма классов языка UML 2

13. Диаграмма классов — основная логическая модель системы

• Диаграмма классов (class diagram) — диаграмма,
предназначенная для представления модели
статической структуры системы в терминологии
классов объектно-ориентированного подхода
• Диаграмма классов представляет собой граф,
вершинами или узлами которого являются
элементы типа “классификатор”, которые связаны
различными типами структурных отношений
• Классификатор (classifier) – специальное понятие,
предназначенное для классификации экземпляров,
которые имеют общие характеристики

14. Варианты графического изображения класса на диаграмме классов

Имя класса
Имя класса
Имя класса
атрибуты класса
Имя класса
операции класса
операции класса
Видимость
Shape
+origin : Point
+move(p:Point)
+resize(s:Scale)
+disply()
#invalidateRegion()
Responsibilities
- - manage shape state
- - handle basic shape
transformations
Имя класса
Атрибуты
Операции
Сигнатура
операции
Дополнительная
секция

15. Примеры записи атрибутов

• + имяСотрудника : String {readOnly}
• ~ датаРождения : Data {readOnly}
• # /возрастСотрудника : Integer
• + номерТелефона : Integer [1..*] {unique}
• – заработнаяПлата : Currency = 500.00

16. Операции класса

• Операция (operation) класса служит для представления
отдельной характеристики поведения, которая является общей
для всех объектов данного класса
• Общий формат записи отдельной операции класса следующий
(БНФ):
• <операция>::=[<видимость>] <имя операции> ‘(‘ [<список
параметров>] ‘)’ [‘:’ [<тип возвращаемого результата>] ‘{‘
<свойство операции> [‘,’ <свойство операции>]* ‘}’]
• Где:
• <видимость> ::= ‘+’ | ‘-‘ | ‘#’ | ‘~’
• <имя операции> (operation name) представляет собой строку
текста, которая используется в качестве идентификатора
соответствующей операции и поэтому должна быть уникальной
для каждой операции данного класса

17. Примеры записи операций:

• +добавить(in номерТелефона : Integer [*] {unique})
• –изменить(in заработнаяПлата : Currency)
• +создать() : Boolean
• toString(return : String)
• toString( ) : String

18. Отношения на диаграмме классов

19. Ассоциация с навигацией и эквивалентное ему представление класса с атрибутом

Содержит +сторона
Многоугольник
1
3..*
Многоугольник
+сторона : Линия[3..*]
Линия

20. Исключающая ассоциация между тремя классами

1
Имеет
Физическое
лицо
{ordered}
1..*
Счет в банке
{xor}
1..*
{ordered}
Имеет
1
Юридическое
лицо

21. Пример тернарной ассоциации

22. Обобщение (generalization)

• – таксономическое отношение между более общим
классификатором (родителем или предком) и более специальным
классификатором (дочерним или потомком)
Класс-предок
Прямоугольник
+имя: String
+цветЗаливки : Color
+высота : Interger = 5
+ширина : Interger
/площадь : Interger {readOnly}
Класс-потомок
Квадрат
+id {redefines имя}
+высота = 7
/ширина
(а)
(б)

23. Примеры отношения обобщения

Геомет рическа я
фигура
Прямоугольник
Окруж ность
Тре угольник
Геометрическа я
фигура
Прямоугольник
Окруж ность
Тре угольник

24. Агрегация (aggregation)

• – направленное отношение между двумя классами,
предназначенное для представления ситуации, когда один из
классов представляет собой некоторую сущность, которая
включает в себя в качестве составных частей другие сущности
Класс-контейнер
Класс-часть

25. Пример отношения агрегации

Пе рсональный
компьюте р
Систе мный
блок
Монитор
Клавиатура
Мышь

26. Композиция (composition)

• или композитная агрегация предназначена для спецификации
более сильной формы отношения "часть-целое", при которой с
уничтожением объекта класса-контейнера уничтожаются и все
объекты, являющимися его составными частями.
Класс-композит
Класс-часть

27. Пример отношения композиции

Окно программы
1
1
Заголовок
1
2
Полоса
прокрутки
1
1
1
Рабочая
область
1
Главное
ме ню

28. UML Profile for Software Development Processes

• Управляющий класс отвечает за
координацию действий других
классов. Этому классу посылают
мало сообщений, а он рассылает
много сообщений
• Граничный класс располагается на
границе системы с внешней
средой.
• Класс-сущность содержит
информацию, которая хранится
постоянно и не уничтожается с
выключением системы

29. Основные обозначения на диаграмме классов

Класс
Компания
Кратность
Имя
ассоциации
Композиция
1..*
1..*
*
Отдел
0..1
1
название : String
*
*
Местоположение
*
Ассоциация
*
адрес : String
телефон :
Number
Ограничение
{subset}
Сотрудник
Офис
Менеджер
Обобщение
1
1..*
Сотрудник
имя : String
фамилия : String
должность : String
getPhoto(p:Photo)
getContactInform()
getPersonalRecords()
Имя конца
ассоциации
Атрибуты
Операции
Контактная
Информация
адрес : String
телефон :
Number
Зависимость
Штаб-квартира
Интерфейс
Персональное Дело
историяРаботы : String
зарплата : Curency
ISecureInformation
English     Русский Правила