Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

UML. Концептуальный уровень. Диаграмма классов и правила ее построения. Пример



Диаграмма классов (class diagram) служит для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования. Диаграмма классов может отражать, в частности, различные взаимосвязи между отдельными сущностями предметной области, такими как объекты и подсистемы, а также описывает их внутреннюю структуру и типы отношений. На данной диаграмме не указывается информация о временных аспектах функционирования системы. С этой точки зрения диаграмма классов является дальнейшим развитием концептуальной модели проектируемой системы.

Диаграмма классов представляет собой некоторый граф, вершинами которого являются элементы типа «классификатор», которые связаны различными типами структурных отношений. Декомпозиция некоторого представления на отдельные диаграммы выполняется с целью удобства и графической визуализации структурных взаимосвязей предметной области. При этом компоненты диаграммы соответствуют элементам статической семантической модели. Модель системы, в свою очередь, должна быть согласована с внутренней структурой классов, которая описывается на языке UML.

Класс — множество объектов, обладающий общими атрибутами, операциями, отношениями и поведением. Графически класс изображается прямоугольником.

Реализация операции класса называется в UML методом класса. В основе формирования класса лежит операция обобщения (generalization).

Definition – описание класса соответствует множеству частных примеров или экземпляров класса instance.

Экземпляры – терминальный уровень. Сообщениями обмениваются не классы, а экземпляры классов.

Различают абстрактные и конкретные классы. Класс, имеющий экземпляр конкретного типа, называется конкретным, остальные классы – абстрактными.

Объект — экземпляр соответствующего класса с собственным именем и конкретными значениями атрибутов. Объект обладает всеми операциями класса.

Классы могут быть организованы в иерархическую структуру, напоминающую по своему виду схему классификации. Основным принципами объектно-ориентированного подхода являются наследование,инкапсуляция и полиморфизм.

Класс анализа может быть не полным.

Класс проектирования является более подробным.

Класс реализации - с полными сведениями.

Наследование — принцип, в соответствии с которым родительский класс (предок) передает все свои наборы свойств и поведение дочерним классам (потомкам).

Инкапсуляция — сокрытие деталей внутреннего устройства классов от внешних для него объектов или пользователей.

Класс имеет имя, списки атрибутов, операций или методов.

Операция (operation) — спецификация (описание) результата преобразования или запроса, которые должен выполнить вызываемый объект. Имеет имя и список параметров.

Используется на уровне анализа и проектирования.

Метод (method) — процедура, непосредственно реализующая операцию; у нее есть алгоритм и описание процедуры. Обычно метод задаётся на физическом уровне представления класса в модели проектирования, когда уже выбран алгоритм и способ его реализации.

Другой способ реализации операций: событие вызова, переводящее активный объект в другое состояние. В отличие от метода операция может быть абстрактной и конкретной. Абстрактная операция не имеет метода или события (например, формировать отчет). Конкретная операция имеет событие или метод.

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

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

В разделе имени в двойных угловых кавычках дополнительно может быть указан стереотип класса – группа, к которой принадлежит класс.

Классы делятся на активные и пассивные.

Активный класс – такой класс, все экземпляры которого после их создания обладает своей нитью управления, т.е. обладает индивидуальным поведением, могут использовать пассивные классы, могут самоуничтожаться или уничтожаться другими экземплярами классов. (Менеджер СУБД, менеджер ОС, кнопка действия, менеджер приложения)

Пассивный класс – не имеет собственной нити управления, его экземпляры используются в комплекте основных классов. (Таблицы БД, хранимые данные и т.д.)

Атрибуты класса (class attributes) (свойства, properties) — свойства или характеристики данного класса, которые могут принимать только одно значение из некоторого множества значений определенного типа. Непосредственно атрибуты связаны со своим классом связями типа ассоциации. В неявном виде атрибуты тоже классы.

Основные свойства атрибутов:

1. Changeability (изменяемость) – указывает может ли значение атрибута изменится после его инициализации. По умолчанию все атрибуты считаются changeable (изменяемые), однако могут быть атрибуты, значение которых не изменяется после инициализации. Такие атрибуты помечаются, как frozen (замороженные). Во множества значений таких атрибутов тоже нельзя вносить изменения.

2. Initial value (начальное значение) – не обязательный параметр. (оно может не указываться). Этот параметр является выражением, которое определяет то значение, которое атрибут получает после инициализации объекта. Обычно это строка текста. Может использовать язык OCL, но также можно использовать конструкции языка программирования (реализации). Надо иметь ввиду, что конструктор может перебивать это начальное значение. Порядок инициализации атрибутов в UML не оговариваться.

3. Multiplicity (множественность или кратность) – это допустимое количество одновременно существующих значений атрибута. По умолчанию атрибут считается скалярным [11]. Если атрибут имеет несколько значений, то может быть указан диапазон [нижн.граница..верхн.границ]. Границы могут обязательно положительными целыми числами. Если верхняя граница значений не оговорена, то ставится *: [1..*].

4. Name (имя атрибута) – это строка уникальная в своем классе. Имя не должно дублироваться. Пишется с малой буквы. Через «:» пишется тип: цвет:Color.

5. Visibility (видимость). + public – атрибут доступен для всех без исключения, # protected – защищенный атрибут, доступен только для данного класса или подклассов, - privet – атрибут виден только лишь в этом классе.

Полное описание строки атрибута: <стереотип><видимость><имя><множественность>: тип =<исходное значение>{строка свойств}

Операции

Синтаксис общего определения операции: <операция><видимость><имя>(список параметров): <возващ.тип>{строка свойств}

[1] – один атрибут – одно значение.

[0..1] — кратность атрибута принимает значения 0 или 1 (0 — отсутствие значения для атрибута),

[0..*] — может принимать положительные значения больше 0,

[1..*] — любое положительное число больше 1,

[1..n]. – множество значений.

Типы зависят от языка программирования. Исходное значение — установка значения по умолчанию.

Совокупность значений атрибутов определяет экземпляр класса — объект или абстрактный класс — потомок.

 
 





Дата публикования: 2015-02-18; Прочитано: 2169 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...