Информационные системы
Шрифт:
– private (или знак —) – свойство класса доступно только экземплярам этого класса.
Отсутствие указания на категорию доступа означает, что видимость не указывается.
Примечание.
Как уже отмечалось, диаграмма классов может использоваться для автоматической генерации программного кода на выбранном языке программирования. Следует иметь в виду, что в разных языках значения видимости свойства (атрибута), задаваемые по умолчанию, разные.
• тип_свойства – тип свойства. Этот тип выбирается, исходя из языка реализации проекта (С++, Delphi, Java
• кратность – диапазон принимаемых свойством значений с учетом типа. Так, если в качестве кратности свойства имя_клиента указан диапазон 1..5 и тип String, то это свойство может принимать, например, следующие значения: Иван Петров, Уильям Джефферсон Клинтон, Мехти Асадулла оглы Мамедов, то есть значения, содержащие не более 5 слов. Если же в качестве кратности свойства доход указан диапазон 0..* и тип Currency, значение этого свойства может принимать любое положительное значение в денежном формате.
• значение_по_умолчанию – начальное значение свойства, которое в последующем можно изменить программно. Если в строке определения свойства вместо одного знака равенства (=) указать два (==), то значение по умолчанию программно изменить будет нельзя.
Например, следующая запись для свойства класса Менеджер означает, что по умолчанию всем сотрудникам, замещающим эту должность, первоначально устанавливается заработная плата 700 долларов.
Примечание.
Язык UML помимо проектирования информационных систем нашел применение в сфере аналитики бизнеса. Отображенная на диаграммах структура фирмы и ее деятельности позволяет выявить, например, перегруженность определенных отделов, участки, тормозящие принятие управленческих решений. На основе полученных данных вырабатываются рекомендации по совершенствованию деятельности организаций. UML-диаграммы в этом случае служат инструментом анализа и иллюстрациями сделанных выводов.
Методы класса служат для обработки свойств класса и характеризуют поведение экземпляров класса.
Формат записи метода выглядит так:
Ниже перечислены аргументы этой строки.
• видимость – этот аргумент определяется аналогично видимости свойств.
• имя_метода – идентификатор метода.
• список параметров – перечень разделенных запятой формальных параметров.
Наличие круглых скобок обязательно. Каждый из формальных параметров может быть представлен в следующем виде:
Здесь:
– вид_параметра – входной (передаваемый методу), выходной (возвращаемый методом) или универсальный (значение параметра может изменяться методом) параметр (обозначается соответственно in, out или inout);
– тип_параметра – тип параметра, определяемый языком реализации класса.
• тип_значения – тип значения. Определяется языком реализации класса.
• строка-свойство – значения свойств, которые могут относиться к данному параметру. Метод, не изменяющий состояние объекта, обозначается строкой-свойством {query}. Строка-свойство {concurrency = sequential} указывает на необходимость обращения к методу во время вызова другого метода, строка-свойство {concurrency = concurrent} – на возможность параллельного вызова методов. Строка-свойство {concurrency = guarded} обращает внимание на необходимость принятия дополнительных мер по контролю исключительных ситуаций.
• Имя и тип метода с областью действия на весь класс подчеркивается. Например, изменение фона одного окна программы автоматически изменяет цвет фона всех окон системы, как это имеет место при щелчке правой кнопкой мыши на свободном участке рабочего стола и изменении вида окон Windows на вкладке Оформление окна Свойства: Экран. По умолчанию областью действия метода определяется экземпляр класса (объект). В данном случае изменение цвета фона окна (формы) затронет только это окно.
• Абстрактные методы, то есть методы, не задействованные в данном классе, выделяются курсивом или помечаются строкой-свойством {abstract}.
Примером обозначения метода «открыть» класса File служить запись:
Этот метод не возвращает никакого результата своего выполнения.
Следующая запись может означать, что результатом вызова метода является автоматическая генерация приказа по организации, в котором сотруднику предоставляется ежегодный оплачиваемый отпуск.
В нотации UML между компонентами диаграммы классов могут существовать различные отношения.
• Отношение зависимости (dependency relationship) указывает на общую взаимосвязь компонентов диаграммы. Графически эта связь изображается пунктирной стрелкой от зависимого класса к независимому (рис. 3.9).
Рис. 3.9. Графическое изображение отношения зависимости.
Ключевое слово (стереотип) над стрелкой означает, что свойства класса Кредит, в частности сумма кредита, выдаваемая банком заемщику, может быть определена, исходя из характеристик заемщика (свойств класса Клиент): ежемесячного дохода, возраста и других. Ключевое слово является необязательным элементом. Помимо значения «derive», оно может принимать следующие значения:
– «access» – указывает на доступность свойств и методов независимого класса для зависимого;
– «import» – открытые свойства и методы независимого класса (источника) становятся частью зависимого класса, как если бы они были объявлены непосредственно в нем;
– «bind» – класс может использовать другой класс в качестве шаблона;
– «refine» – зависимый класс уточняет класс-источник в силу исторических причин.
• Отношение ассоциации (association relationship) устанавливает некоторую связь между классами системы. Графически это отношение обозначается сплошной линией между классами (рис. 3.10).