Слайд 1 Слайд 2 Слайд 3 Слайд 4 Слайд 5 Слайд 6 Слайд 7 Слайд 8 Слайд 9 Слайд 10 Слайд 11 Слайд 12 Слайд 13 Слайд 14 Слайд 15 Слайд 16 Слайд 17 Слайд 18 Слайд 19 Слайд 20 Слайд 21 Слайд 22 Слайд 23 Слайд 24 Слайд 25 Слайд 26 Слайд 27 Слайд 28 Слайд 29 Слайд 30 Слайд 31 Слайд 32 Слайд 33 Слайд 34 Слайд 35 Слайд 36 Слайд 37 Слайд 38 Слайд 39 Слайд 40 Слайд 41 Слайд 42 Слайд 43 Слайд 44 Слайд 45 Слайд 46
1: Технология программирования Основы объектно-ориентированного моделирования
2: Принципы объектно-ориентированного подхода Объектно-ориентированный анализ – это методология системного анализа, направленная на создание моделей, близких к реальным явлениям. Требования к проектируемой системе формируются на основе понятий (классов и объектов), составляющих словарь предметной области (термины предметной области, необходимые для рассматриваемой задачи)
3: Принципы объектно-ориентированного подхода Объектно-ориентированное проектирование – это методология проектирования на основе объектной декомпозиции и объектного синтеза логической модели, физической модели, статической модели и динамической модели проектируемой системы
4: Принципы объектно-ориентированного подхода Объектно-ориентированное программирование – методология программирования, которая основана на представлении программы в виде совокупности объектов, каждый из которых является реализацией определенного класса, а классы образуют иерархию наследования
5: Принципы объектно-ориентированного подхода
6: Основные понятия объектного моделирования 1. Абстрагирование
7: Основные понятия объектного моделирования 2. Инкапсуляция (ограничение доступа)
8: Основные понятия объектного моделирования 3. Модульность
9: Основные понятия объектного моделирования 4. Иерархия
10: Основные понятия объектного моделирования class Engine float power; class PetrolEngine : public Engine class DieselEngine : public Engine class Person class MotorCar double velocity; Engine engine; public: void Drive() class PassengerCar : public MotorCar Person passengers; class Truck : public MotorCar double weight; double bodyCapacity;
11: Объекты Объект – это сущность, обладающая индивидуальностью, состоянием и поведением
12: Объекты
13: Объекты Отношения: Связь – взаимодействие между экземплярами сущностей Агрегация (агрегация по ссылке, разделяемая агрегация) - отношение «часть-целое» Композиция (агрегация по значению) – строгая форма агрегации, агрегируемый объект принадлежит только одному агрегату. Связаны жизненные циклы.
14: Классы Класс – это описание структуры и поведения объектов, имеющих одинаковые свойства, поведение и семантику
15: Классы Отношения (relationship) между классами: Наследование (inheritance, generalization) – отношение при котором один класс разделяет структуру и поведение другого класса Ассоциация (association) – описание связей между экземплярами классов Реализация (implementation) – отношение между интерфейсом и классом, его реализующим Зависимость (dependency) – отношение между классами, при котором изменения в одном классе приводят к изменениям в другом классе (наследование, ассоциация и реализация – частные случаи отношения зависимости, имеющие особое назначение и специальную нотацию)
16: Наследование При наследовании подкласс может : добавлять поля добавлять методы переопределять методы замещать методы уточнять методы
17: Наследование
18: Наследование
19: Наследование Уточнение метода
20: Наследование Принцип подстановки: экземпляр класса, порожденного от некоторого класса X, может использоваться без нарушения семантики объявления X везде, где используется экземпляр класса X. Различие понятий класс и тип: класс описывает структуру объектов, тип описывает протокол объектов. Класс может соответствовать нескольким типам (реализовать различные интерфейсы). Различные классы могут иметь один и тот же тип (реализовать один и тот же интерфейс).
21: Наследование Формы наследования: Порождение класса для спецификации. Родительский класс – абстрактный класс, т. е. содержит абстрактные методы. Подкласс должен реализовать поведение (т. е. обеспечить реализацию для абстрактных методов). Порождение подкласса для специализации. Подкласс имеет такой же протокол, как и родительский класс, но специальным образом реализует некоторые методы. Порождение класса для расширения. Подкласс добавляет к протоколу базового класса дополнительные методы. Порождение класса для варьирования. Дочерний и родительский классы имеют одинаковые протоколы и могут занимать место в иерархии классов в произвольном порядке. Порождение для конструирования. Подкласс использует структуру и поведение базового класса в своих методах, но при этом подкласс не является подтипом базового класса. Нарушается принцип подстановки. Порождение классов для комбинирования. В классе комбинируются свойства двух и более классов (множественное наследование). Порождение класса для обобщения. Подкласс является более общим, чем базовый класс. Целесообразно использовать только в особых случаях. Порождение класса для ограничения. Подкласс ограничивает использование некоторых методов родительского класса. Нарушается принцип подстановки. Целесообразно использовать только в особых случаях.
22: Наследование
23: Наследование
24: Наследование
25: Конструирование
26: Наследование
27: Наследование
28: Ассоциация
29: Агрегация
30: Реализация (realization/implementation)
31: Зависимость Стереотипы отношения зависимости: – назначение параметров шаблонному классу для получения нового конкретного класса – метод одного класса вызывает операцию другого класса – один класс создает экземпляр другого класса или – разрешение одному классу использовать реализацию другого класса - общее обозначение
32: Зависимость
33: Пакеты Пакет – механизм общего назначения для распределения программных элементов по группам с установлением владельца, а также средства для предотвращения конфликтов имен
34: Диаграммы UML Представление (View) – это подмножество конструкций UML, отражающих один аспект системы. Описание статической структуры (Static View) Описание вариантов использования (Use Case View) Описание дискретных автоматов (State Machine View) Описание активности (Activity View) Описание взаимодействия (Interaction View) Описание размещения (Deployment View) Описание проектных решений (Design View)
35: Описание статической структуры
36: Описание статической структуры
37: Описание вариантов использования
38: Описание дискретных автоматов
39: Описание активности
40: Описание взаимодействия Классификатор – модельный элемент, который описывает поведенческие свойства (в виде операций) и структурные свойства (в виде атрибутов). Классификаторами являются: класс, интерфейс, компонент, вариант использования, подсистема, узел размещения и т. д.
41: Описание взаимодействия
42: Описание взаимодействия
43: Описание взаимодействия
44: Описание размещения
45: Описание проектных решений
46: Описание проектных решений