
- •Тема 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.3. Визуализация класса
Класс (class) представляет собой отдельную концепцию моделируемой системы. Классом может быть нечто, относящееся к реальному миру (самолет, стиральная машина и т.п.), деловым отношениям (заказ), логике (расписание движения поездов), программному приложению (управляющий элемент формы) или поведению (задача).
Класс описывает множество объектов со сходной структурой, поведением и отношениями. Все атрибуты и операции относятся к классам или другим классификаторам.
Объекты, которые определяются классом, обладают состоянием и поведением. Состояние описывается атрибутами и ассоциациями. Атрибуты обычно используются для хранения значений, не обладающих индивидуальностью (например, чисел и строк). Ассоциации нужны для связывания объектов, обладающих индивидуальностью. Отдельные элементы поведения описываются операциями класса. Реализацией операций является метод.
Нотация класса в UML выглядит как прямоугольник с разделами для имени класса, атрибутов и операций.
Именем класса обычно является слово, начинающееся с прописной буквы. Оно располагается вверху прямоугольника. Если имя класса состоит из двух слов, то их можно объединить и второе слово также написать с прописной буквы, например: СтиральнаяМашина.
Рис 5.2.-9. Нотация класса в UML.
Класс обладает уникальным именем в рамках своего контейнера. В качестве контейнера может выступает другой класс.
Атрибуты описывают перечень значений, в рамках которых указываются свойства объектов (т.е. экземпляров) этого класса. Класс может не иметь атрибутов или содержать любое их количество. Имена атрибутов, могут состоять из одного слова или из нескольких. Если имя состоит из нескольких слов, то эти слова объединяются, и каждое слово начинается с прописной буквы. Список имен атрибутов начинается ниже линии, отделяющей их от имени класса (рис. 5.2-12).
Рис. 5.2-12. Класс и его атрибуты
UML позволяет отображать дополнительную информацию об атрибутах. В изображении класса можно указать тип для каждого значения атрибута. Перечень возможных типов включает строку, число с плавающей точкой, целое число, логическое значение и другие перечислимые типы. Перечислимый тип представляет собой информацию, заданную списком именованных значений. Логический тип также является перечислимым, потому что он состоит из значений «истина» и «ложь». Разработчик может определить собственные перечислимые типы.
Для отображения типа используется двоеточие, которое отделяет имя атрибута от его типа. Здесь же можно указать значение атрибута но умолчанию. На рис. 5.2-13 показан этот способ задания атрибутов.
Рис. 5.2-13. Указание типа и значения по умолчанию для атрибутов
При построении диаграмм UML имена объектов и других элементов можно указывать как на русском, так и на английском языке. Однако если на диаграмме отображаются программные классы, то их принято именовать по-английски, соответствии с требованиями языков программирования.
Операция – это то, что может выполнять класс, либо то, что пользователь (или другой класс) может выполнять над данным классом. Если имя операции состоит из нескольких слов, они соединяются, и все слова пишутся с прописной буквы. Список операций начинается ниже линии, отделяющей операции от атрибутов (рис. 5.2-14).
Рис. 5.2-14. Список операций класса располагается ниже списка атрибутов
Так же, как и для атрибутов, можно отобразить дополнительную информацию об операциях. В скобках, следующих за именем операции, можно указать параметр операции и его тип. Один из типов операций, функция, по окончании работы возвращает значение. В этом случае можно указать возвращаемое значение и его тип. Перечисленные фрагменты информации об операции носят название сигнатуры операции. На рис. 5.2-15 представлены операции с сигнатурой.
Рис. 5.2-15. Сигнатура операций
В UML существует механизм расширения языка – стереотип. Стереотип позволяет создавать новые элементы с учетом особенностей решаемой задачи. Он является гибкой конструкцией, которую можно использовать в различных ситуациях. Например, если разместить его над именем класса, то можно задать дополнительную информацию о роли этого класса. На рис. 5.2-16. представлен класс со стереотипом, который указывает, что это класс реализации, а не абстрактный или какой-либо еще класс.
Рис. 5.2-16. Класс с уточненным стереотипом
Проектировщик должен стремиться к тому, чтобы наиболее точно описать класс, поэтому существует способ исключить двусмысленность описания в виде добавления ограничений. Ограничение представляется в виде текста в фигурных скобках рядом с изображением класса. Этот текст задает одно или несколько правил класса, к которому он относится. Например, для класса СтиральнаяМашина нужно указать, что емкость барабана может составлять 3, 5 или 8 килограмм (и таки образом «ограничить» атрибут емкости).
Помимо атрибутов, операций, и ограничений, дополнительную информацию о классе можно представить в виде комментариев, присоединенных к классу, комментарии обычно связаны с атрибутами и операциями. На рис. 5.2-17 приведен класс с ограничением атрибута «емкость» и комментарием, ссылающийся на правительственный стандарт по формированию номеров изделий для объектов класса СтиральнаяМашина.
Рис 5.2-17.Ограничения и комментарии
Если имеющийся список атрибутов и операций, а на диаграмме располагается несколько классов, то это слишком усложняет зрительное восприятие диаграммы. Поэтому существует возможность не отображать на диаграмме некоторые секции – атрибутов или параметров или ту и другую вместе.
Класс также обладает множественностью, указывающей, сколько экземпляров данного класса может существовать в системе. Как правило, допускается множество экземпляров класса (от нуля до бесконечности, без четких ограничений), однако встречаются классы, для которых предусмотрен только один экземпляр (классы-одиночки).