- •С.М. Шаврин, л.Н. Лядова, с.И. Чуприна Моделирование и проектирование информационных систем
- •Содержание
- •I. Организационно-методический раздел 5
- •II. Содержание курса 6
- •III. Примерное распределение часов курса по формам и видам работ 153
- •IV. Форма итогового контроля 156
- •V. Учебно-методическое обеспечение курса 156
- •I. Организационно-методический раздел Цели и задачи курса
- •Требования к уровню освоения содержания курса
- •Место курса в системе основной образовательной программы
- •II. Содержание курса Связь между разделами
- •Конспект лекций
- •Введение
- •Понятие информационной системы
- •Проблемы сложных задач
- •Введение в теорию моделирования
- •Понятие моделирования и модели. Принципы моделирования и классификация моделей
- •Метамоделирование
- •Классификация информационных систем по уровню и составу моделей
- •Жизненный цикл программного обеспечения
- •Понятие жизненного цикла. Процессы жизненного цикла
- •Модели жизненного цикла
- •Структурный подход
- •Сущность и основные принципы структурного подхода
- •Метод функционального моделирования sadt
- •Моделирование потоков данных
- •Моделирование структур данных
- •Объектный подход
- •Сущность и основные принципы объектного подхода
- •Пример объектно-ориентированного анализа и проектирования
- •Унифицированный язык моделирования uml
- •Обзор языка uml
- •Моделирование функциональных требований и диаграммы прецедентов
- •Типичные ошибки
- •Моделирование бизнес-процессов и диаграммы активностей
- •Элементы диаграммы активностей
- •Концептуальное моделирование и диаграммы понятий
- •Понятие
- •Ассоциации
- •Атрибуты
- •Ограничения
- •Обобщение
- •Прямые и косвенные экземпляры
- •Абстрактные понятия
- •Многомерная множественная классификация
- •Агрегация
- •Правила идентификации отношения агрегации
- •Порядок построения концептуальной модели
- •Рекомендации по построению диаграмм понятий
- •Моделирование поведения системы и диаграмма последовательностей
- •Модель поведения системы
- •Объекты
- •Сообщения
- •Описание системных операций
- •Типичные ошибки
- •Рекомендации по построению диаграмм последовательностей
- •Проектирование поведения системы и диаграммы сотрудничества
- •Диаграммы взаимодействия
- •Диаграмма сотрудничества
- •Работа с коллекциями объектов
- •Сообщения классу
- •Видимость объектов
- •Типичные ошибки
- •Рекомендации по построению диаграмм сотрудничества
- •Проектирование статической структуры системы и диаграмма классов
- •Диаграмма классов
- •Операции
- •Информация о типах
- •Информация об области видимости
- •Вычислимые атрибуты
- •Направление навигации
- •Зависимости
- •Рекомендации по построению диаграмм классов
- •Модель реализации и диаграмма компонентов
- •Модель реализации
- •Диаграмма компонентов
- •Компоненты
- •Стереотипы
- •Пиктограммы
- •Интерфейсы
- •Зависимости
- •Рекомендации по построению диаграммы компонентов
- •Модель и диаграмма развертывания
- •Модель развертывания
- •Диаграмма развертывания
- •Стереотипы
- •Шаблоны проектирования
- •Введение в шаблоны проектирования
- •Обязанности
- •Дополнительная информация
- •Шаблоны проектирования grasp
- •Шаблоны graps
- •Шаблон Expert (Эксперт)
- •Шаблон Creator (Создатель)
- •Шаблон Low Coupling (Низкое Связывание)
- •Шаблон High Cohesion (Высокое Зацепление)
- •Шаблон Controller (Контроллер)
- •Учебное задание
- •Примерный перечень вопросов к зачету по всему курсу
- •Вопрос для итоговой аттестации
- •III. Примерное распределение часов курса по формам и видам работ
- •IV. Форма итогового контроля
- •V. Учебно-методическое обеспечение курса Рекомендуемая литература (обязательная)
- •Рекомендуемая литература (дополнительная)
- •Список адресов в Интернет
- •Моделирование и проектирование информационных систем Учебно-методическое пособие
Объектный подход
Сущность и основные принципы объектного подхода
Тематический контекст
Краткое содержание
Сущность объектно-ориентированного подхода.
Базовые принципы объектно-ориентированного подхода: уникальность, классификация, инкапсуляция, наследование, полиморфизм.
Плюсы и минусы объектно-ориентированного подхода.
Первые объектно-ориентированные методы появились в начале 80‑х гг. XX в., однако основные результаты были получены спустя 10 лет, когда Айвар Джекобсон, Джим Рембо и Грейди Буч представили свои подходы – Objectory, OMT (Object Modeling Technique – техника объектного моделирования) и Booch соответственно. Эти три метода были впоследствии объединены в один, из которого вырос унифицированный язык моделирования – UML (Unified Modeling Language).
Суть объектного подхода заключается в объектной декомпозиции, т.е. система представляется в виде совокупности объектов, которые в процессе взаимодействия обмениваются сообщениями. Дадим определение объекта.
Определение. Объект – это самостоятельная, самодостаточная сущность, обладающая состоянием, поведением и семантикой.
Принципы объектно-ориентированного подхода. Объектно-ориентированному подходу присуще большинство принципов структурного подхода, а именно: «разделяй и властвуй», абстрагирование, формализация и непротиворечивость. Кроме того, выделяются следующие специфичные для него принципы:
Уникальность. Каждый объект уникален. Это самый базовый принцип, о котором многие даже не задумываются. Он означает, что никакие два даже абсолютно идентичных объекта нельзя считать одним и тем же объектом. Например, математика не различает два числа «5», однако в рамках объектно-ориентированного подхода два объекта, каждый из которых представляет число «5», будут различными. В терминах языков программирования это означает, что каждый объект имеет свой адрес в памяти, и две объектные переменные считаются равными только в том случае, если они указывают на один и тот же адрес.
Классификация. Все объекты объединяются в классы по принципу сходства структуры, поведения и семантики. Определение класса будет дано ниже. Здесь лишь заметим, что объект первичен по отношению к классу. Именно объекты объединяются в классы, формируют их. Ошибочно считать, что если в программе сначала описываются классы, а потом создаются их экземпляры, то класс первичен. Класс появляется только после анализа множества необходимых экземпляров.
Инкапсуляция. Есть два понятия инкапсуляции. В узком смысле инкапсуляция – это совместное «хранение» данных и методов их обработки. Это лишь частное свойство, которое нередко ошибочно считается единственным. В широком смысле инкапсуляция – это скрытие реализации за интерфейсом, т.е. объект обладает внутренней, известной лишь ему структурой и интерфейсом, через который другие объекты с ним взаимодействуют. Одним из важнейших следствий инкапсуляции является требование того, чтобы доступ к полям класса осуществлялся только через его методы. Разделение реализации и интерфейса позволяет менять реализацию, не влияя на способ взаимодействия с объектом.
Наследование. Наследование означает, что классы могут объединяться в иерархии наследования. Структура, поведение и семантика объектов наследуются вниз по иерархии. Наверху находятся более общие классы, внизу – более специфичные. Для наследования действует «правило подстановки». Суть его сводится к тому, что с объектами классов-потомков (специфичных) можно работать через интерфейс класса-родителя (общего), т.е. вместо объектов родителя можно подставлять объекты любого потомка.
Полиморфизм. Данный принцип означает возможность доступа к нескольким реализациям через один интерфейс. Способом реализации полиморфизма в объектно-ориентированных языках программирования является механизм переопределения унаследованных методов.
Достоинства объектно-ориентированного подхода. Основным достоинством является устойчивость к изменениям и возможность повторного использования решений. Эти свойства подхода вытекают их того, что вместо жестко связанных между собой функций используются относительно независимые объекты, чья реализация никому, кроме них самих, неизвестна. Соответственно изменения получаются локальными и есть возможность использовать готовые объекты в другом контексте.
Недостатки объектно-ориентированного подхода. По сравнению со структурным подходом, объектно-ориентированный подход проигрывает в производительности. Основными причинами потери производительности являются инкапсуляция и полиморфизм. Действительно, для доступа к полям через методы и для поиска нужного метода по таблице виртуальных методов требуется процессорное время.
Модель процесса. Для объектно-ориентированного подхода характерен спиральный жизненный цикл системы. В отличие от структурного подхода, объектный подход не использует иерархических структур, в которых определение родителя не имеет смысла без определения всех его потомков. Вместо этого применяется система объектов, каждый из которых можно анализировать, проектировать, реализовывать и тестировать практически независимо от других. Таким образом, появляется возможность формирования итераций, на каждой из которых выполняются все основные этапы разработки для относительно небольшой группы объектов.
Вопросы для самоконтроля
В чем заключается сущность объектно-ориентированного подхода?
Чем объектно-ориентированный подход принципиально отличается от структурного подхода?
Что такое уникальность, классификация, инкапсуляция, наследование и полиморфизм?
Почему в рамках объектно-ориентированного подхода возможно использование спирального жизненного цикла?
На что тратится дополнительное процессорное время при использовании объектно-ориентированного подхода?
В чем преимущества объектно-ориентированного подхода перед структурным подходом?
