
- •Тема 5.2. Теоретические основы объектно-ориентированного программирования
- •5.2.1. Основные определения
- •5.2.2. Объектно-ориентированная декомпозиция и объектно-ориентированные модели
- •5.2.3. Объектная модель и ее составные части
- •5.2.4. Средства uml для моделирования классов и их отношений
- •5.2.4.1. Введение в uml
- •5.2.4.2. Статическое представление системы в диаграммах классов
- •5.2.4.3. Визуализация класса
- •5.2.4.4. Уровни представления
- •5.2.4.5. Идентификация классов
- •5.2.4.6. Отношения
- •5.2.4.7. Наследование и обобщение
- •5.2.4.7. Абстрактные классы
- •5.2.4.8. Агрегация и композиция
- •5.2.4.9. Ассоциации
- •5.2.4.10. Классы ассоциаций
- •5.2.4.11 Кратность
- •5.2.4.13. Интерфейс и реализация
- •5.2.4.14. Области видимости
- •5.2.4.15. Зависимости
- •5.2.5. Визуализация существующего кода.
- •Практическое руководство. Поиск кода с помощью обозревателя архитектуры
- •Открытие обозревателя архитектуры
- •Обозреватель архитектуры: домены, представления, узлы, типы узлов и типы ссылок
- •Поиск исходного кода в решении Visual Studio
- •Представление классов в обозревателе архитектуры
- •Поиск кода в решении
- •Поиск скомпилированного кода
- •5.2.6. Visual Studio 2010 - uml моделирования проектов
5.2.4. Средства uml для моделирования классов и их отношений
5.2.4.1. Введение в uml
Ссылка на Тему 3.3.
UML (Унифицированный язык моделирования) – это язык визуального моделирования, который используется при визуализации, конструировании и документировании артефактов программной системы. С помощью языка UML можно фиксировать решения, принятые при создании различных систем. Он используется для того, чтобы лучше понимать, проектировать, поддерживать и контролировать эти системы. UML можно использовать со всеми методами, во всех предметных областях на всех этапах программной разработки. Он включает в себя семантические концепции, нотацию и руководящие указания. Весь UML состоит из четырех частей, описывающих различные аспекты системы: статические, динамические, организационные и относящиеся к окружению.
UML поддерживается средствами для интерактивного визуального моделирования, включающими в себя генераторы кода и отчетов. Спецификация UML не определяет конкретный процесс или технологию разработки, однако использовать этот язык моделирования удобнее всего в итеративном процессе и, конечно же в большинстве существующих объектно-ориентированных процессах разработки. UML позволяет отображать и статическую структуру, и динамическое поведение системы. Система моделируется как группа дискретных объектов, которые взаимодействуют друг с другом таким образом, чтобы удовлетворить требованиям пользователя.
В статической структуре задаются типы объектов, значимые для системы и ее реализации, а также отношения между этими объектами. Динамическое поведение определяет историю объектов и их взаимодействие для достижения конечной цели. Наиболее полного и разностороннего понимания системы можно достичь при моделировании с различных, но взаимосвязанных точек зрения.
UML не является языком программирования. Программный код можно получить на основе созданной модели с помощью инструментальных средств, поддерживающих UML и содержащих генераторы кода. С другой стороны, на основе исходного кода можно восстановить UML-модели уже существующей программы. UML – дискретный язык моделирования. Он не предназначен для разработки непрерывных систем, встречающихся в физике и механике. Он создавался как язык моделирования общего назначения для применения в таких дискретных системах, как программное обеспечение, аппаратные средства или цифровая логика.
В ноябре 1997 года OMG (Object Management Group) объявила UML стандартным языком объектно-ориентированного моделирования и приняла на себя обязанности по его дальнейшему развитию. Многие поставщики программного инструментария объявили, что они будут реализовывать или уже реализовали нотацию UML в своих средствах для проектирования программного обеспечения.
Стандарт UML позволил разработчикам программного обеспечения перейти к единой методологии проектирования и устранить неудобства использования разных, не схожих между собой методов и инструментальных средств.
5.2.4.2. Статическое представление системы в диаграммах классов
В первую очередь любая точная модель должна определить полное множество объектов, то есть ключевые структуры программы, их внутренние свойства и отношения между собой. Эта структура и есть статическое представление системы. Концепции программы моделируются как классы, каждый из которых описывает тип дискретных объектов, содержащих определенную информацию и взаимодействующих между собой для реализации некоторого поведения. Информация, которую содержат объекты, моделируется как атрибуты, поведение – как операции.
Используя механизм обобщения, несколько классов могут иметь одну общую структуру. Класс-потомок изначально содержит в себе структуру и поведение, унаследованные от общего класса предка. В процессе выполнения программы одни объекты имеют связи с другими. Такие взаимоотношения между объектами моделируются как межклассовые ассоциации.
Отношения между элементами, включая такие, например, как отношения для моделирования изменения уровня абстракции, связывание фактических значений с формальными параметрами шаблона, наделение правами и использование одного элемента другим, группируются как отношения зависимости. Прочие отношения включают в себя комбинацию вариантов использования и потоков значений.
Статическое представление системы изображается с помощью диаграмм классов. Его можно использовать для генерации большинства объявлений структуры данных программы. В языке UML существует еще несколько элементов диаграмм: интерфейсы, типы данных, варианты использования и сигналы. Они носят общее название классификаторов и ведут себя в большинстве случаев как классы, но с некоторыми ограничениями для каждого типа классификатора.
Статическое представление рассматривает объекты (сущности) как некие понятия, у которых есть имя, класс, к которому они принадлежат, и методы обращения с ними, но при этом не передает информацию о динамическом поведении этих сущностей. Статическое представление является центром, вокруг которого строятся все остальные представления модели.
Основные элементы статического представления – классификаторы и их отношения. Классификатором называется элемент модели, который что-либо описывает. Существует несколько видов основных классификаторов: классы, интерфейсы и типы данных. Поведение описывается другими классификаторами: варианты использования и сигналы. Еще несколько классификаторов – подсистемы, компоненты и узлы – описывают аспекты реализации системы.
Объект – это отдельный блок, с помощью которого разработчик понимает и конструирует систему. Объект является экземпляром класса, который описывает его структуру и поведение. При этом класс обладает определенной индивидуальностью. Поведение объекта определяется набором операций.
Отношения между классификаторами включают в себя ассоциацию, обобщение и различные виды зависимостей, включая реализацию и использование.