Шаблоны разработки ПО. Часть 2. ООП и uml

18
Design Patterns. OOP. UML Немчинский Сергей 2008

Upload: sergey-nemchinsky

Post on 12-Jun-2015

709 views

Category:

Documents


13 download

TRANSCRIPT

Page 1: Шаблоны разработки ПО. Часть 2. ООП и UML

Design Patterns. OOP. UML

Немчинский Сергей2008

Page 2: Шаблоны разработки ПО. Часть 2. ООП и UML

ООП (Объектно-Ориентированное Программирование)

парадигма программирования, в которой основной концепцией является понятие объекта, отождествляя его с объектом предметной области.

Page 3: Шаблоны разработки ПО. Часть 2. ООП и UML

Основные концепции

Система состоит из объектов Объекты некоторым образом

взаимодействуют между собой Каждый объект характеризуется

своим состоянием и поведением

Page 4: Шаблоны разработки ПО. Часть 2. ООП и UML

Принципы ООП

Инкапсуляция Наследование Полиморфизм

Page 5: Шаблоны разработки ПО. Часть 2. ООП и UML

Инкапсуляция это принцип, согласно которому любой

класс и в более широком смысле – любая часть системы, должны рассматриваться как чёрный ящик — пользователь класса или подсистемы должен видеть и использовать только интерфейс (т. е. список декларируемых свойств и методов) и не вникать во внутреннюю реализацию.

позволяет (теоретически) минимизировать число связей между классами и подсистемами и, соответственно, упростить независимую реализацию и модификацию классов и подсистем.

Page 6: Шаблоны разработки ПО. Часть 2. ООП и UML

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

возможность порождать один класс от другого с сохранением всех свойств и методов класса-предка (иногда его называют суперклассом) добавляя, при необходимости, новые свойства и методы.

призвано отобразить такое свойство реального мира, как иерархичность.

Page 7: Шаблоны разработки ПО. Часть 2. ООП и UML

Полиморфизм классы-потомки могут изменять

реализацию метода класса-предка, сохраняя его сигнатуру (таким образом, сохраняя неизменным интерфейс класса-предка).

позволяет обрабатывать объекты классов-потомков как однотипные объекты, не смотря на то, что реализация методов у них может различаться.

Page 8: Шаблоны разработки ПО. Часть 2. ООП и UML

UML

UML (сокр. от англ. Unified Modeling Language — унифицированный язык моделирования) — язык графического описания для объектного моделирования в области разработки программного обеспечения.

Page 9: Шаблоны разработки ПО. Часть 2. ООП и UML

UML

UML является языком широкого профиля, это открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML моделью.

Page 10: Шаблоны разработки ПО. Часть 2. ООП и UML

Виды диаграмм UML Structure Diagrams:

Class diagram Component diagram Composite structure diagram Collaboration (UML2.0) Deployment diagram Object diagram Package diagram

Behavior Diagrams: Activity diagram State Machine diagram Use case diagram Interaction Diagrams: Communication diagram (UML2.0) / Collaboration (UML1.x) Interaction overview diagram

(UML2.0) Sequence diagram Timing diagram (UML2.0)

Структурные диаграммы: Классов Компонентов Композитной/составной структуры Кооперации (UML2.0) Развёртывания Объектов Пакетов

Диаграммы поведения: Деятельности Конечных автоматов (состояний) Прецедентов Диаграммы взаимодействия: Коммуникации (UML2.0) / Кооперации (UML1.x) Обзора взаимодействия (UML2.0) Последовательности Синхронизации (UML2.0)

Page 11: Шаблоны разработки ПО. Часть 2. ООП и UML

Диаграмма классов UML Диаграмма классов, Class Diagram —

статическая структурная диаграмма, описывающая структуру системы, она демонстрирует классы системы, их атрибуты и зависимости между классами.

Page 12: Шаблоны разработки ПО. Часть 2. ООП и UML

Взаимосвязи Ассоциация

Ассоциация представляет семейство связей двух или более классов.

Существует пять различных типов ассоциации. Наиболее же распространёнными являются двунаправленная и однонаправленная. Например, классы рейс и самолёт связаны двунаправленной ассоциацией, а классы человек и кофейный автомат связаны однонаправленной.

Page 13: Шаблоны разработки ПО. Часть 2. ООП и UML

Взаимосвязи. Агрегация

Агрегация — «has a» вариант ассоциации. встречается, когда один класс является коллекцией

или контейнером других. время существования содержащихся классов не

зависит от времени существования содержащего их класса. Если контейнер будет уничтожен, то его содержимое — нет.

Page 14: Шаблоны разработки ПО. Часть 2. ООП и UML

Взаимосвязи. Композиция Композиция — более строгий вариант «has

a» ассоциации.

Композиция имеет жёсткую зависимость времени существования экземпляров класса контейнера и экземпляров содержащихся классов. Если контейнер будет уничтожен, то всё его содержимое будет уничтожено также.

Графически представляется как и агрегация, но с закрашенным ромбиком.

Page 15: Шаблоны разработки ПО. Часть 2. ООП и UML

Взаимосвязи классов. Генерализация (обобщение) Генерализация показывает, что один из двух связанных

классов (подтип) является более частной формой другого (надтипа), который называется обобщением первого.

Графически генерализация представляется линией с пустым треугольником у супертипа

Генерализация также известна как наследование или «is a» взаимосвязь.

Page 16: Шаблоны разработки ПО. Часть 2. ООП и UML

Взаимосвязи классов. Реализация Реализация — отношение между двумя

элементами модели, в котором один элемент (клиент) реализует поведение, заданное другим (поставщиком).

Графически реализация представляется также как и генерализация, но с пунктирной линией.

Page 17: Шаблоны разработки ПО. Часть 2. ООП и UML
Page 18: Шаблоны разработки ПО. Часть 2. ООП и UML

Итоги

Что такое ООП Три принципа ООП UML Диаграмма классов Взаимосвязи элементов