Помощь в написании студенческих работ
Антистрессовый сервис

Операции класса. 
Проектирование информационных систем

РефератПомощь в написанииУзнать стоимостьмоей работы

Операции реализации (Implement operations) — реализуют некоторую бизнес-функциональность. Такие операции можно выделить при исследовании диаграмм взаимодействия. Каждое сообщение, представленное на диаграмме, можно соотнести с операцией реализации. Сообщения выделяются из подробного описания потока событий, который создается на основе варианта использования, а вариант использования создается… Читать ещё >

Операции класса. Проектирование информационных систем (реферат, курсовая, диплом, контрольная)

Операцией называется связанное с классом поведение. Операция состоит из трех частей: имени, параметров и типа возвращаемого значения. Параметры — это аргументы, получаемые операцией «на входе». Тип возвращаемого значения относится к результату действия операции.

В языке UML операции имеют следующую нотацию:

Имя операции (аргумент1: тип данных аргумента, аргумент2: тип данных аргумента2,…): тип возвращаемого значения.

Операциями определяется ответственность классов. При идентификации операций и анализе классов следует иметь в виду следующее:

  • — если у класса есть только одна или две операции, то его следует объединить с каким-нибудь другим классом;
  • — если класс имеет слишком большое число операций, лучше разделить класс на два меньших;
  • — если у класса пет операций, то лучше его моделировать как один или несколько атрибутов.

Существует несколько типов операций, различающихся типом выполняемых действий:

  • операции реализации (Implement operations) — реализуют некоторую бизнес-функциональность. Такие операции можно выделить при исследовании диаграмм взаимодействия. Каждое сообщение, представленное на диаграмме, можно соотнести с операцией реализации. Сообщения выделяются из подробного описания потока событий, который создается на основе варианта использования, а вариант использования создается на основе требований к системе. От того, насколько полно и детально представлена эта цепочка в модели, зависит, как точно каждое требование будет представлено программным кодом, которые его реализует;
  • операции управления (Manager operations) — управляют созданием и разрушением объектов. В эту категорию попадают конструкторы и деструкторы классов. В среде Rose не требуется вручную создавать конструкторы и деструкторы классов. При генерации кода это можно сделать автоматически;
  • операции доступа (Access operations) — служат для управления доступом к атрибутам классов так, чтобы другие классы могли просматривать значения атрибутов или изменять их. Создание операций получения и изменения значения (Get и Set) для каждого атрибута класса является стандартом. При генерации кода Rose автоматически создаст операции Get и Set для каждого атрибута класса;
  • вспомогательные операции (Helper operations) — такие операции класса, которые необходимы для выполнения его ответственностей, но о которых другие классы не должны знать ничего. Это закрытые и защищенные операции класса. Как и операции реализации, вспомогательные операции можно выявить на диаграммах Последовательности и Кооперативных диаграммах. В большинстве случаев такие операции являются рефлексивными сообщениями.

Добавление операций. После создания операции, с ней можно связать какое-либо текстовое описание. Оно будет включено в генерируемый код в качестве комментария.

Для добавления операции:

  • 1. Включите контекстное меню на классе диаграммы Классов.
  • 2. В открывшемся меню выберите пункт New —> Operation (Новая —" Операция).
  • 3. Укажите имя операции в формате

Имя (Аргумент1: Тип данных аргумента): Тип возвращаемого значения.

ИЛИ.

  • 1. Вызовите контекстное меню на классе в браузере.
  • 2. В открывшемся меню выберите пункт New —> Operation (Новая —" Операция). Под названием этого класса в браузере появится новая операция «орпате».
  • 3. Введите имя операции.

В браузере нельзя указывать аргументы операции и тип возвращаемого значения, как и в случае атрибутов, это делается на диаграмме Классов.

ИЛИ.

  • 1. Откройте окно спецификации класса данной операции (или стандартное окно спецификации в Rose).
  • 2. Перейдите на вкладку Operations (Операции). Здесь будут перечислены уже имеющиеся операции класса.
  • 3. Включите контекстное меню где-нибудь внутри области операций.
  • 4. В открывшемся меню выберите пункт Insert (Вставить).
  • 5. Введите имя новой операции в колонке Operation.
  • 6. В соответствующих колонках задайте видимость, стереотип и тип возвращаемого значения операции.

Для добавления к операции текстового описания:

  • 1. Выделите операцию в браузере или на диаграмме Классов.
  • 2. Введите текстовое описание в окне документации.

ИЛИ.

  • 1. Включите контекстное меню на операции в браузере.
  • 2. В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).
  • 3. В области DocComment окна спецификации операции введите комментарии к операции.

или.

  • 1. Откройте окно спецификации класса данной операции (или стандартное окно спецификации в Rose).
  • 2. Перейдите на вкладку Operations (Операции).
  • 3. Укажите операцию.
  • 4. Введите описание в окне документации.

Удаление операций. Удалить операцию можно с диаграммы Классов или из браузера. При удалении с диаграммы операция автоматически удаляется из модели в целом.

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

Для определения, какие диаграммы используют операцию:

  • 1. Откройте окно спецификации класса этой операции (или стандартное окно спецификации в Rose).
  • 2. В нижней части окна нажмите кнопку Browse (Обзор) и выберите Show Usage (Показать использование).

Для удаления операции класса:

  • 1. Включите контекстное меню на операции в браузере.
  • 2. В открывшемся меню выберите пункт Delete (Удалить).

ИЛИ.

  • 1. Выделите операцию на диаграмме Классов.
  • 2. С помощью клавиши Backspace удалите имя операции и ее сигнатуру.
  • 3. Щелкните мышью где-нибудь в другом месте диаграммы.
  • 4. Rose подтвердит удаление перед завершением этой процедуры.

ИЛИ.

  • 1. Откройте окно спецификации класса данной операции (или стандартное окно спецификации в Rose).
  • 2. Перейдите па вкладку Operations (Операции).
  • 3. Щелкните правой кнопкой на удаляемой операции.
  • 4. В открывшемся меню выберите пункт Delete (Удалить). Подтвердите удаление перед завершением этой процедуры.

Спецификации операции. В спецификациях операции можно задать ее параметры, тип возвращаемого значения и видимость.

Все спецификации операции можно просмотреть и изменить в окне спецификации операции.

Открыть спецификацию операции:

  • 1. Включите контекстное меню на операции в браузере.
  • 2. В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).

ИЛИ.

  • 1. Откройте окно спецификации класса операции.
  • 2. Перейдите на вкладку Operations (Операции).
  • 3. Дважды щелкните мышыо на соответствующей операции.

Задание возвращаемого класса операции. Возвращаемым классом (Return class) операции называется тип данных ее результата.

При определении возвращаемого класса можно использовать либо встроенные типы языка программирования (такие, как String, Char или Integer), либо определенные в модели специальные классы.

Для задания возвращаемого класса операции нужно-.

  • 1. Включите контекстное меню на операции в браузере.
  • 2. Откройте окно спецификации класса этой операции (или стандартное окно спецификации в Rose).
  • 3. Выберите возвращаемый класс в раскрывающемся списке или ввести свой тип.

ИЛИ.

  • 1. Выделите операцию на диаграмме Классов.
  • 2. После имени операции введите двоеточие, а затем тип возвращаемого значения.

Назначение стереотипа для операции. Для классификации операций создаются их стереотипы. Как уже было отмечено, существуют четыре наиболее распространенных стереотипа операций: Implementor (Реализация), Manager (Управляющая), Access (Доступ), Helper (Вспомогательная).

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

Для назначения стереотипа операции-.

  • 1. Включите контекстное меню на операции в браузере.
  • 2. Откройте окно спецификации класса этой операции.
  • 3. В соответствующем раскрывающемся списке укажите стереотип или введите новый.

ИЛИ.

  • 1. Выделите операцию в браузере.
  • 2. Чтобы отредактировать имя операции, один раз щелкните на ней мышыо. Перед именем появятся символы ««.
  • 3. Внутри этих скобок введите стереотип.

Задание видимости операции. Видимость показывает, каким образом данные и поведение инкапсулируются в класс. Для операций допустимы четыре значения этого параметра:

  • Public (Общая) — операция доступна всем остальным классам. Любой класс может запросить ее выполнение;
  • Private (Закрытая) — операция не доступна ни одному другому классу;
  • Protected (Защищенная) — доступ к операции разрешен только для самого класса и его потомков;
  • Package or Implementation (Пакетная) — операция доступна только классам данного пакета.

Для назначения операции видимость нужно:

  • 1. Включить контекстное меню на операции в браузере.
  • 2. В открывшемся меню выбрать пункт Open Specification (Открыть спецификацию) или Open Standard Specification (Открыть стандартную спецификацию) в Rose. Появится окно спецификации операции.
  • 3. Установить переключатель Export Control в нужное значение: Public, Protected, Private или Implementation.

ИЛИ.

  • 1. Выделить операцию на диаграмме Классов.
  • 2. Если используется нотация UML, щелкнуть один раз на символе «+» или «#» рядом с операцией. В появившемся списке значков Rose выбрать нужную видимость.
  • 3. Если используется нотация Rose, щелкнуть один раз на значке видимости Rose слева от имени операции. В появившемся списке значков указать нужную видимость.

Добавление и удаление аргументов к операции. Аргументы, или параметры, операции — это получаемые ею входные данные. Для каждого аргумента должны быть заданы имя и тип данных.

Для аргументов можно задавать также их значения по умолчанию. В таком случае нотация UML будет иметь вид:

Имя операции (аргумент 1: тип данных аргумента1 — значение по умолчанию аргумента1): тип возвращаемого значения

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

Для добавления аргумента к операции:

  • 1. Откройте окно спецификации операции (или стандартное окно спецификации в Rose).
  • 2. Перейдите на вкладку Detail (Подробно).
  • 3. Включите контекстное меню в области аргументов. В открывшемся меню выберите Insert (Вставить).
  • 4. Введите имя аргумента.
  • 5. Щелкните мышью на колонке Туре (Тип) и введите тип данных аргумента.
  • 6. При необходимости щелкните на колонке Default (По умолчанию) и введите значение аргумента по умолчанию.

Для удаления аргумента операции:

  • 1. Откройте окно спецификации операции (или стандартное окно спецификации в Rose).
  • 2. Перейдите на вкладку Detail (Подробно).
  • 3. В списке аргументов включите контекстное меню на удаляемом аргументе. В открывшемся меню выберите пункт Delete (Удалить).
  • 4. Подтвердите удаление.

Определение протокола операции. Протокол операции описывает то, какие операции и в каком порядке может выполнять клиент над объектом. Например, если некоторую операцию нельзя запускать до завершения какой-либо другой операции, то это следует отметить в поле протокола первой операции.

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

Для создания протокола операции:

  • 1. Откройте окно спецификации операции (или стандартное окно спецификации в Rose).
  • 2. Перейдите на вкладку Detail (Подробно).
  • 3. Введите протокол в поле Protocol.

Определение уточнений операции, размера операции и времени ее выполнения. Поле Qualification (Уточнение) позволяет идентифицировать любые уточнения операции, связанные с конкретным языком программирования. Все, что будет указано в этом поле, войдет в генерируемый код в качестве комментария, но на сам код не повлияет.

Для ввода уточнения операции:

  • 1. Откройте окно спецификации операции (или стандартное окно спецификации в Rose).
  • 2. Перейдите на вкладку Detail (Подробно).
  • 3. Введите уточнения в поле Qualification.

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

Время операции — это предполагаемое время, требуемое для выполнения операции.

Задание параллелизма операции. Значение переключателя Concurrency.

  • (Параллелизм) определяет поведение операции при наличии нескольких потоков управления. Возможны три значения этого параметра:
  • Sequential (Последовательная) — предполагается, что операция будет выполняться правильно при наличии только одного потока управления. Выполнение операции должно завершиться перед тем, как начнется выполнение другой операции;
  • Guarded (Охраняемая) — предполагается, что операция будет выполняться правильно в нескольких потоках управления, но только если взаимодействие классов гарантирует взаимное исключение выполняемых операций;
  • Synchronous (Синхронная) — предполагается, что операция будет правильно выполняться при наличии нескольких потоков. После обращения операция будет выполняться в одном потоке управления вплоть до своего завершения.

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

Сведения о параллелизме операции появятся в сгенерированном коде в качестве комментариев.

Для указания параллелизма операции:

  • 1. Откройте окно спецификации операции (или стандартное окно спецификации в Rose).
  • 2. Перейдите на вкладку Detail (Подробно).
  • 3. Установите переключатель Concurrency (Параллелизм) в требуемое значение.

Задание предусловий, постусловий и семантики операции. Предусловия — эго такие условия, которые должны быть выполнены перед запуском операции. Любые предусловия операции можно ввести на вкладке Preconditions (Предусловия) окна спецификации операции.

Предусловия не влияют на генерируемый код, но появляются в нем в качестве комментариев. Если какая-либо диаграмма Взаимодействия иллюстрирует эти условия, то можно ввести ее имя в нижней части вкладки предусловий.

Для задания предусловия операции:

  • 1. Откройте окно спецификации операции (или стандартное окно спецификации в Rose).
  • 2. Перейдите на вкладку Preconditions (Предусловия).
  • 3. Введите предусловия в поле Preconditions.

Постусловиями называются такие условия, которые должны всегда выполняться после завершения работы операции. Постусловия задаются на вкладке Postconditions (Постусловия) окна спецификации операции.

В поле Semantics (Семантика) окна Спецификации операции можно описать, что будет делать операция. Для передачи логики можно использовать псевдокод или обыкновенное описание. Если какая-либо диаграмма Взаимодействия иллюстрирует семантику операции, то можно ввести имя диаграммы в нижней части вкладки.

Для описания семантики операции:

  • 1. Откройте окно спецификации операции (или стандартное окно спецификации в Rose).
  • 2. Перейдите на вкладку Semantics (Семантика).
  • 3. В поле Semantics введите семантику операции.

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

Для прикрепления файла к операции:

  • 1. Откройте окно спецификации операции (или стандартное окно спецификации в Rose).
  • 2. Включите контекстное меню внутри белого поля вкладки Files (Файлы).
  • 3. В открывшемся меню выберите пункт InsertFile (Вставить файл).
  • 4. В диалоговом окне открытия файла укажите нужный файл.
  • 5. Для завершения процедуры нажмите на кнопку Open (Открыть).

ИЛИ.

  • 1. Включите контекстное меню на операции в браузере.
  • 2. В открывшемся меню выберите пункт New —" File (Новый —" Файл).
  • 3. В диалоговом окне открытия файла укажите нужный файл.
  • 4. Для завершения процедуры нажмите на кнопку Open (Открыть).

Для прикрепления к операции ссылки Интернета.

  • 1. Откройте окно спецификации операции (или стандартное окно спецификации в Rose).
  • 2. Включите контекстное меню внутри белого поля вкладки Files (Файлы).
  • 3. В открывшемся меню выберите пункт Insert URL (Вставить ссылку).
  • 4. Введите адрес ссылки.

ИЛИ.

  • 1. Включите контекстное меню на операции в браузере.
  • 2. В открывшемся меню выберите пункт New —> URL (Создать —> —> Ссылка).
  • 3. Введите адрес ссылки.

Для того, чтобы открыть прикрепленный файл:

  • 1. Откройте окно спецификации операции (или стандартное окно спецификации в Rose).
  • 2. Дважды щелкните мышью на имени файла во вкладке Files (Файлы).

ИЛИ.

  • 1. Найдите в браузере файл.
  • 2. Дважды щелкните мышью на имени файла.

Для открытия прикрепленной ссылки на веб-страницу:

  • 1. Откройте окно спецификации операции (или стандартное окно спецификации в Rose).
  • 2. Дважды щелкните мышыо на ссылке во вкладке Files (Файлы).

ИЛИ.

  • 1. Найдите ссылку в браузере.
  • 2. Дважды щелкните мышыо на имени ссылки.

ИЛИ.

  • 1. Откройте окно спецификации операции (или стандартное окно спецификации в Rose).
  • 2. Включите контекстное меню на ссылке во вкладке Files (Файлы).
  • 3. В открывшемся меню выберите пункт Open File/URL (Открыть файл/ссылку).

Изображение атрибутов и операций на диаграммах Классов. Язык UML позволяет изображать на диаграммах классов как все детали, гак и только те, которые нужны. В Rose можно настроить диаграммы Классов так, чтобы:

  • — показать все атрибуты и операции;
  • — скрыть операции;
  • — скрыть атрибуты;
  • — показать некоторые атрибуты или операции;
  • — показать операции вместе с их полными сигнатурами или только их имена;
  • — показать или скрыть видимость атрибутов и операций;
  • — показать или скрыть стереотипы атрибутов и операций.

Обычно в проекте создается большое количество диаграмм Классов. В среде Rose один и тот же класс можно располагать на любом необходимом количестве диаграмм Классов. С помощью параметров можно задать отображение деталей описания атрибутов и операций для каждого типа диаграмм классов.

Значения параметров, но умолчанию задаются в окне, открываемом при выборе пункта меню Tools —> Options (Инструменты —> Параметры).

Изображение атрибутов.

Для класса на диаграмме можно:

  • — показать все атрибуты;
  • — скрыть все атрибуты;
  • — показать только выбранные атрибуты;
  • — запретить вывод атрибутов.

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

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

Для вывода всех атрибутов класса:

  • 1. Выделите класс на диаграмме и включить контекстное меню.
  • 2. Выберите пункт Options —" Show All Attributes (Параметры —> Показать все атрибуты).

ИЛИ.

  • 1. Выделите класс на диаграмме.
  • 2. В меню модели выберите пункт Edit -" Diagram Object Properties —"
  • —" Show All Attributes (Правка —> Свойства объектов диаграммы —" Показать все атрибуты).

Для того чтобы показать только избранные атрибуты класса:

  • 1. Выделите класс на диаграмме и включить контекстное меню.
  • 2. Выберите пункт Options —" Select Compartment Item (Параметры —> —> Выбрать отдельные пункты).
  • 3. В окне Edit Compartment (Редактировать отделение) укажите нужные атрибуты.

Для подавления вывода всех атрибутов класса диаграммы:

  • 1. Выделите класс на диаграмме и включите контекстное меню.
  • 2. В контекстном меню выберите пункт Options —" Suppress Attributes (Параметры —> Подавить атрибуты).

ИЛИ.

  • 1. Выделите класс на диаграмме.
  • 2. В меню модели выберите пункт Edit —> Diagram Object Properties —> —> Suppress Attributes (Правка —> Свойства объектов диаграммы —> Подавить атрибуты).

Для изменения принятого по умолчанию вида атрибута:

  • 1. В меню модели выберите пункт Tools —" Options (Инструменты —> —> Параметры).
  • 2. Перейдите на вкладку Diagram (Диаграмма).
  • 3. Для установки значений параметров отображения атрибутов по умолчанию воспользуйтесь флажками Suppress attributes (Подавить атрибуты) и Show all attributes (Показать все атрибуты).

Определение атрибутов и операций классов

Постановка задачи

Заполнить созданную ранее диаграмму Классов для варианта использования «Планировать расписание для учебной группы». В качестве языка программирования использовать C++.

Для определения атрибутов следует обратиться к потоку событий. К классу Planning Schedules диаграммы Классов нужно добавить следующие атрибуты:

  • — Period (Период обучения);
  • — Direction (Направление подготовки);
  • — Number Group (Номер группы);
  • — Discipline (Название дисциплины);
  • — Name (Фамилия преподавателя);
  • — Week (Тип недели);
  • — Day (День недели);
  • — Type Audience (Тип аудитории);
  • — Audience (Номер аудитории).

Настройка

Для выполнения первоначальных установок выполните действия:

  • 1. В меню модели выберите пункт Tools —> Options (Инструменты —> Параметры).
  • 2. Перейдите на вкладку Diagram.
  • 3. Убедитесь, что флажки Show visibility (Показать видимость), Show Stereotypes (Показать стереотипы), Show Operation Signatures (Показать сигнатуры операций), Show All Attributes (Показать все атрибуты), Show All Operations (Показать все операции) установлены.
  • 4. Убедитесь, что флажки Suppress Attributes (Подавить атрибуты) и Suppress Operations (Подавить операции) сброшены.
  • 5. Перейдите на вкладку Notation (Нотация).
  • 6. Убедитесь, что флажок Visibility as Icons (Отображать пиктограммы) сброшен.

Подробное описание операций

  • 1. Двойным щелчком на классе Planning Schedules откройте окно его спецификации.
  • 2. Перейдите на закладку Operations (Операции).
  • 3. В списке операций выберите операцию Indicate PeriodO, двойным щелчком откройте окно ее спецификации.
  • 4. В списке Return Туре (Возвращаемый тип) выберите Integer.
  • 5. Выполните щелчок на операции Indicate DirectionO — появится возможность редактирования операции. Отредактируйте операцию так, чтобы она имела вид:

lndicateDirection:String.

6. Одним из способов укажите возвращаемые типы для операций: SpecifyGroupO: String; SpecifyDiscipline (): String; SpecifyNameQ: String; SpecifyDayO: String; SpecifyAudience (): String, SpecifyCouplesO: Integer, SpecifyAudienceO: Integer, SpecifyDisciplineO: String.

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

Добавление аргументов операций

Для операции Plan LessonO (Планировать занятие) необходимы атрибуты, в которых содержатся данные о планируемых ресурсах: Номер учебной группы, Название дисциплины, Фамилия преподавателя, Тип недели, День недели, Номер учебной пары, Номер аудитории.

Для указания атрибутов операции:

  • 1. Откройте окно спецификации операции Plan LessonO.
  • 2. Перейдите на вкладку Detail (Детали).
  • 3. Включите контекстное меню области аргументов.
  • 4. В открывшемся меню выберите пункт Insert (Вставить). Будет добавлен аргумент с названием «агдпате».
  • 5. Щелкнув один раз на этом слове, выделите его и измените имя аргумента на «Gruppa». В раскрывающемся списке Туре (Тип) выберите String.
  • 6. Выполняя пункты 3—4, добавьте атрибуты:
    • — Course Title (Название дисциплины) — String;
    • — Name Teacher (Фамилия преподавателя) — String;
    • — Type Week (Тип недели) — String;
    • — Number Couples (Номер учебной пары) — Integer;
    • — Number Audience (Номер аудитории) — String.

После выполнения всех действий сигнатура операции PlanLessonO примет вид:

<> + PlanLesson{Gruppa: String, CourseTitle: String, Nameteacher: String, Typeweek: String, Numbercouples: Integer, NumberAudience: String), а окно спецификации операции будет иметь вид, как на рис. 7.19.

Окно спецификации операции PlanLessonO.

Рис. 7.19. Окно спецификации операции PlanLessonO

Добавление атрибутов класса

  • 1. Выберите на диаграмме классов класс Shedule и откройте его окно спецификации.
  • 2. Перейдите на вкладку Attributes (Атрибуты).
  • 3. Включите контекстное меню в поле Атрибуты и выберите пункт Insert (Вставить) — появится новый атрибут с именем «Name».
  • 4. Вместо имени по умолчанию введите новое имя «Period».
  • 5. В выпадающем списке поля Туре выберите Integer.
  • 6. Повторяя пункты 3—5, создайте спецификации для атрибутов: NumberGroup: String, Name: String, Week: String, Day: String, Couples: Integer, Discipline: String.

После добавления атрибутов окно спецификации будет выглядеть так, как изображено на рис. 7.20.

Окно спецификации атрибутов класса Shedule.

Рис. 7.20. Окно спецификации атрибутов класса Shedule.

  • 4. Щелкните правой кнопкой мыши на однонаправленной ассоциации между классами New Schedule и Planning Schedules со стороны класса New Schedule.
  • 5. В открывшемся меню выберите пункт Multiplicity —" Zero or One (Множественность —> —> Нуль или один).
  • 6. Щелкните правой кнопкой мыши на другом конце однонаправленной ассоциации.
  • 7. В открывшемся меню выберите пункт Multiplicity —> Zero or One (Множественность -" —" Нуль или один).
  • 8. Повторите шаги 4—7, добавив на диаграмму значения множественности для остальных ассоциаций, как показано на рис. 7.21.
Ассоциации сценария «Планировать занятие для учебной группы».

Рис. 7.21. Ассоциации сценария «Планировать занятие для учебной группы»

Упражнение 7.10.

Создание диаграммы состояний для класса

В этом упражнении создается диаграмма Состояний для класса Planning Schedules создаваемого проекта.

Постановка задачи

Для того чтобы понять, как правильно написать код для класса Schedule необходимо создать диаграмму Состояний для этого класса.

Класс имеет четыре состояния: Initialization (Инициализация), Suspended (Приостановлено), Completed (Выполнен), Cancelled (Отменен).

Создание диаграммы

  • 1. Найдите в браузере класс Schedule.
  • 2. Включите контекстное меню и в открывшемся меню укажите New —> State Chart Diagramm (Диаграмма состояний).
  • 3. Присвойте созданной диаграмме имя State Diagram Schedule.

Добавление начального и конечного состояний

  • 1. Нажмите кнопку Start (Начальное состояние) панели инструментов.
  • 2. Поместите это состояние на диаграмму.
  • 3. Нажмите кнопку End State (Конечное состояние) панели инструментов.
  • 4. Поместите это состояние на диаграмму.

Добавление суперсостояния

  • 1. Нажмите кнопку State (Состояние) панели инструментов.
  • 2. Поместите это состояние на диаграмму.

Добавление оставшихся состояний

  • 1. На панели инструментов нажмите кнопку State (Состояние).
  • 2. Поместите состояние на диаграмму.
  • 3. Назовите состояние Cancelled (Отменен).
  • 4. На панели инструментов нажмите кнопку State (Состояние).
  • 5. Поместите состояние на диаграмму.
  • 6. Назовите состояние Completed (Выполнено).
  • 7. На панели инструментов нажмите кнопку State (Состояние).
  • 8. Поместите состояние на диаграмму внутрь суперсостояния.
  • 9. Назовите состояние Initialization (Инициализация).
  • 10. На панели инструментов нажмите кнопку State (Состояние).
  • 11. Поместите состояние на диаграмму внутрь суперсостояния.
  • 12. Назовите состояние Suspended (Ожидание).

Описание состояний

  • 1. Дважды щелкните мышью на состоянии Initialization (Инициализация) — откроется окно спецификации состояния Initialization.
  • 2. Перейдите на вкладку Actions (Действия).
  • 3. Включите контекстное меню в поле окна Actions.
  • 4. В открывшемся меню выберите пункт Insert (Вставить).
  • 5. Дважды щелкните мышью на новом действии.
  • 6. Назовите его Get information about the occupation (Получить информацию о занятии).
  • 7. В окне When укажите On Entry (На входе).

Повторив шаги 3—7, добавьте следующее действие: Check for possible conflicts (Проверить наличие конфликтов), в окне When укажите Do (Выполнять).

  • 8. Нажмите два раза на ОК, чтобы закрыть спецификацию.
  • 9. Дважды щелкните мышью на состоянии Cancelled (Отменен).
  • 10. Повторив шаги 2—7, добавьте действие:
    • — Show cause cancellation (Показать причину отмены), укажите On Exit (На выходе).
  • 11. Нажмите два раза на ОК, чтобы закрыть спецификацию.
  • 12. Дважды щелкните мышью на состоянии Completed (Выполнен).
  • 13. Повторив шаги 2—7, добавьте действие:
    • — Keep informe do lesson (Сохранить информацию о занятии), укажите On Exit.
  • 14. Нажмите два раза на ОК, чтобы закрыть спецификацию.

Добавление переходов

  • 1. Нажмите кнопку Transition (Переход) панели инструментов.
  • 2. Щелкните мышью на начальном состоянии.
  • 3. Проведите линию перехода к состоянию Initialization (Инициализация).
  • 4. Повторив шаги 1—3, создайте следующие переходы:
    • — от состояния Initialization (Инициализация) к состоянию Suspended (Приостановлено);
    • — от состояния Suspended (Приостановлено) к состоянию Completed (Выполнен).
    • — от суперсостояния к состоянию Cancelled (Отменен);
    • — от состояния Cancelled (Отменен) к конечному состоянию;
    • — от состояния Completed (Выполнен) к конечному состоянию.
  • 5. На панели инструментов нажмите кнопку Transition to Self (Переход к себе).
  • 6. Щелкните мышью на состоянии Suspended (Приостановлено).

Описание переходов

  • 1. Дважды щелкнув мышью на переходе от состояния Initialization (Инициализация) к состоянию Suspended (Приостановлено), откройте окно спецификации перехода.
  • 2. В поле Event (Событие) введите фразу Lesson plan (Спланировать занятие).
  • 3. Щелкнув на кнопке ОК, закройте окно спецификации.
  • 4. Повторив шаги 1—3, добавьте событие Cancel because of scheduling conflicts
  • (Отменить планирование по причине конфликтов) к переходу между суперсостоянием и состоянием Cancelled (Отменен).
  • 5. Дважды щелкнув мышью на переходе от состояния Suspended (Приостановлено) к состоянию Completed (Выполнен), откройте окно его спецификации.
  • 6. В поле Event (Событие) введите фразу Add to schedule a new occupation (Добавить к расписанию новое занятие).
  • 7. Перейдите на вкладку Detail (Подробно).
  • 8. В поле Guard Condition (Условие) введите No resource conflicts (Конфликта ресурсов нет).
  • 9. Щелкнув на кнопке ОК, закройте окно спецификации.
  • 10. Дважды щелкните мышью на рефлексивном переходе (Transition to Self) состояния Suspended (Приостановлено).
  • 11. В поле Event (Событие) введите фразу Check for possible conflicts (Проверить наличие конфликтов).
  • 12. Перейдите на вкладку Detail (Подробно).
  • 13. В поле Condition (Условие) введите There are conflicts planned resources (Есть конфликты планируемых ресурсов).
  • 14. Щелкнув на кнопке ОК, закройте окно спецификации.

В завершенном виде диаграмма состояний класса изображена на рис. 7.22.

Диаграмма состояний класса Schedule.

Рис. 7.22. Диаграмма состояний класса Schedule.

Создание диаграммы Компонентов

Продолжим разработку проекта системы «Планирование расписания». Ранее были определены все классы, требуемые для варианта использования «Планировать занятие для учебной группы». По мере реализации других вариантов использования на диаграмму следует добавлять новые компоненты.

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

Диаграмма Компонентов разрабатывается для:

  • — визуализации общей структуры исходного кода программной системы;
  • — спецификации исполняемого варианта программной системы;
  • — обеспечения многократного использования отдельных фрагментов программного кода;
  • — представления концептуальной и физической схем баз данных.

Постановка задачи

Построить диаграммы Компонентов. В качестве языка программирования использовать C++.

Создание пакетов компонентов

  • 1. Включите контекстное меню на представлении компонентов в браузере.
  • 2. В открывшемся меню выберите пункт New Package (Создать -> Пакет).
  • 3. Назовите пакет Entities (Сущности).
  • 4. Повторив шаги 1—3, создайте пакеты Boundaries (Границы) и Control (Управление).

Добавление пакетов на Главную диаграмму Компонентов

  • 1. Откройте Главную диаграмму Компонентов, дважды щелкнув на ней мышью.
  • 2. Перетащите пакеты Entities, Boundary и Control из браузера на Главную диаграмму.

Отображение зависимостей между пакетами

  • 1. Нажмите кнопку Dependency (Зависимость) панели инструментов.
  • 2. Щелкните мышью на пакете Boundaries Главной диаграммы Компонентов.
  • 3. Проведите линию зависимости к пакету Control.
  • 4. Повторив шаги 1—3, проведите зависимость от пакета Control к пакету Entities.

После выполнения перечисленных операций Главная диаграмма Компонентов будет иметь вид, как на рис. 7.23.

Главная диаграмма Компонентов.

Рис. 7.23. Главная диаграмма Компонентов.

Добавление компонентов к пакетам и отображение зависимостей

  • 1. Дважды щелкнув мышью на пакете Entities Главной диаграммы Компонентов, откройте Главную диаграмму Компонентов этого пакета.
  • 2. Нажмите кнопку Package Specification (Спецификация пакета) панели инструментов.
  • 3. Поместите спецификацию пакета на диаграмму.
  • 4. Введите имя спецификации пакета — Schedule.
  • 5. Нажмите кнопку Package Body (Тело пакета) панели инструментов, поместите его на диаграмму.
  • 6. Введите имя тела пакета — Schedule.
  • 7. Нажмите кнопку Dependency (Зависимость) панели инструментов.
  • 8. Щелкните мышью на теле пакета Schedule.
  • 9. Проводите линию зависимости к спецификации пакета Schedule.

С помощью приведенной последовательности операций создайте следующие компоненты и зависимости.

  • 1. Для пакета Boundaries:
    • — Спецификацию пакета Planning Schedules.
    • — Тело пакета Planning Schedules.
    • — Спецификацию пакета New Schedule.
    • — Тело пакета New Schedule.
  • 2. Зависимости в пакете Boundaries:
    • — От тела пакета New Schedule к спецификации пакета New Schedule.
    • — От тела пакета Planning Schedules к спецификации пакета Planning Schedules.
    • — От спецификации пакета Planning Schedules к спецификации пакета New Schedule.
  • 3. Для пакета Control:
    • — Спецификацию пакета Manager Process.
    • — Тело пакета Manager Process.
    • — Спецификацию пакета Transaction.
    • — Тело пакета Transaction.
  • 4. Зависимости в пакете Control:
    • — От тела пакета Transaction к спецификации пакета Transaction.
    • — От тела пакета Manager Process к спецификации пакета Manager Process.
    • — От спецификации пакета Manager Process к спецификации пакета Transaction. Создание диаграммы компонентов
  • 1. Включите контекстное меню на представлении Компоненты в браузере.
  • 2. В открывшемся меню выберите пункт New —> Component Diagram (Создать -" —> Диаграмма Компонентов).
  • 3. Назовите новую диаграмму Rasp System.
  • 4. Двойным щелчком на пиктограмме диаграммы в браузере раскройте ее.

Размещение компонентов на диаграмме компонентов

  • 1. Щелчком на значке «+» разверните в браузере пакет компонентов Entities.
  • 2. Щелкните мышью на спецификации пакета Shedule в пакете компонентов Entities.
  • 3. Перетащите эту спецификацию на диаграмму.
  • 4. С помощью этого метода поместите на диаграмму следующие компоненты.

Из пакета компонентов Boundaries:

  • — Спецификацию пакета New Schedule.
  • — Спецификацию пакета Planning Schedules.

Из пакета компонентов Control:

  • — Спецификацию пакета Manager Process.
  • — Спецификацию пакета Transaction.
  • 5. Чтобы разместить на диаграмме компонентов спецификации задач клиентской и серверной частей, нажмите кнопку Task Specification (Спецификация задачи) панели инструментов.
  • 6. Поместите на диаграмму спецификацию задачи и назовите ее Rasp ClientExe.
  • 7. Повторите шаги 6 и 7 для спецификации задачи Rasp ServerExe.

Добавление зависимостей

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

  • 1. Нажмите кнопку Dependency (Зависимость) панели инструментов.
  • 2. Щелкните мышью на спецификации пакета Planning Schedules.
  • 3. Проведите линию зависимости к спецификации пакета Manager Process.
  • 4. Повторив шаги 1—3, создайте следующие зависимости:
    • — От спецификации пакета Manager Process к спецификации пакета Schedule.
    • — От спецификации пакета Schedule к спецификации пакета Transaction.
    • — От спецификации задачи Rasp ClientExe к спецификации пакета Planning Schedules.
    • — От спецификации задачи Rasp ServerExe к спецификации пакета Schedule. Окончательный вид диаграммы компонентов системы приведен на рис. 7.24.
Диаграмма Компонентов.

Рис. 7.24. Диаграмма Компонентов

Соотнесение классов с компонентами

  • 1. В Логическом представлении браузера найдите класс Schedule пакета Entities.
  • 2. Перетащите этот класс на спецификацию пакета компонента Schedule в представлении компонентов браузера — класс Schedule будет соотнесен со спецификацией пакета компонента Schedule.
  • 3. Перетащите класс Schedule на тело пакета компонента Schedule в представлении Компоненты браузера — класс Schedule будет соотнесен с телом пакета компонента Schedule.
  • 4. Повторив шаги 1—3, соотнесите все остальные классы с соответствующими компонентами.[1]
  • 2
  • — Сервер приложения.
  • — Клиентская станция.
  • 6. На панели инструментов нажмите кнопку Device (Устройство).
  • 7. Щелкнув мышью на диаграмме, поместите туда устройство.
  • 8. Назовите его — Принтер.

Добавление связей

  • 1. Нажмите кнопку Connection (Связь) панели инструментов.
  • 2. Щелкните мышью на процессоре Сервер базы данных.
  • 3. Проведите линию связи к процессору Сервер приложения.
  • 4. Повторив шаги 1—3, добавьте следующие связи:
    • — От процессора Сервер приложения к процессору Клиентская станция.
    • — От процессора Сервер приложения к устройству Принтер.

Добавление процессов

  • 1. Щелкните правой кнопкой мыши на процессоре Сервер приложения в браузере.
  • 2. В открывшемся меню выберите пункт New -" Process (Создать —> Процесс).
  • 3. Введите имя процесса — Rasp ServerExe.
  • 4. Повторив шаги 1—3, добавьте процессы:
    • — Процесс Rasp KlientExe на процессоре Клиентская рабочая станция № 1.
    • — Процесс ATM ClientExe на процессоре Клиентская рабочая станция № 2.

Отражение процессов на диаграмме

  • 1. Включите контекстное меню на процессоре Сервер приложения.
  • 2. В открывшемся меню выберите пункт ShowProcesses (Показать процессы).
  • 3. Повторив шаги 1 и 2, покажите процесс на процессоре Клиентская станция.[2]

Открыть код можно также с помощью меню Tools —" Open Script. Сгенерированный код отображается в специальном окне (рис. 7.26).

Диаграмма Компоненты.

Рис. 7.25. Диаграмма Компоненты.

Окно, отображающее код компонента.

Рис. 7.26. Окно, отображающее код компонента

Проектирование базы данных

Для проектирования базы данных выполните следующие шаги.

Создание нового компонента проекта — БД

  • 1. Включите контекстное меню на представлении компонентов в браузере.
  • 2. В открывшемся меню выберите пункт Data Modeler —> New —> Database.
  • 3. Откройте окно спецификации вновь созданного компонента DB0. В списке Target этого окна выберите Microsoft SQL Server 2000х.

Определение устойчивых (persistent) классов

  • 1. Откройте окно спецификации класса Schedule в пакете Entities.
  • 2. Перейдите на вкладку Detail.
  • 3. Установите значение переключателя Persistence в Persistent.
  • 4. Откройте класс Schedule в браузере.
  • 5. Добавьте классу еще один атрибут, присвойте ему имя «Кеу», установите стереотип mutable. Этот атрибут будет выполнять роль первичного ключа.
  • 6. Щелкните правой кнопкой мыши по атрибуту Key.
  • 7. В открывшемся меню выберите пункт Data Modeler —" Part of Object Identity (указание атрибута в качестве части первичного ключа).

Создание схемы БД

  • 1. Включите контекстное меню на пакете Entities.
  • 2. В открывшемся меню выберите пункт Data Modeler Transform to Data Model.
  • 3. В открывшемся окне в списке Target Database укажите DB0, щелкните по кнопке ОК. В результате в логическом представлении появится новый пакет Schemas.
  • 4. Откройте пакет Schemas и включите контекстное меню на пакете «Schema» S0.
  • 5. В открывшемся меню выберите пункт Data Modeler —" New -" Data Model Diagram.
  • 6. Откройте пакет «Schema» S0, затем вновь созданную диаграмму «Сущность — связь» NewDiagram.
  • 7. Перенесите на диаграмму все классы-таблицы, находящиеся в пакете «Schema» S0. Получившаяся диаграмма «Сущность — связь» приведена на рис. 7.27.
Диаграмма «Сущность — связь».

Рис. 7.27. Диаграмма «Сущность — связь»

Генерация описания базы данных на SQL[3]

После завершения проектирования БД можно сгенерировать описание базы данных на SQL. Для генерации описания БД

  • 1. Включите контекстное меню на пакете «Schema» S0.
  • 2. В открывшемся меню выберите пункт Data Modeler —> Forward Engineer — откроется окно мастера Forward Engineering Wizard (рис. 7.28).
  • 3. Щелкните по кнопке Next в открывшемся окне мастера Forward Engineering Wizard.
  • 4. Оставьте все флажки генерации языка описания данных (DDL) отмеченными (см. рис. 7.28) и щелкните по кнопке Next.
  • 5. В открывшемся диалоговом окне укажите путь сохранения и имя (указав расширение .sql) файла с результатами генерации, щелкните по кнопке Next.
  • 6. Завершив генерацию, откройте созданный текстовый файл и просмотрите результаты.
Установка параметров генерации DDL.

Рис. 7.28. Установка параметров генерации DDL

Результаты генерации в виде кода SQL будут иметь вид, как показано на рис. 7.29.

Сгенерированный код описания базы данных на SQL.

Рис. 7.29. Сгенерированный код описания базы данных на SQL.

Публикация проекта

Для того чтобы проект был доступен всем участникам проекта, удобно его хранить в форме Web интрасети.

Для выполнения публикации

  • 1. Выполните меню Tools —> Web Publisher.
  • 2. В открывшемся окне диалога в группе Selection укажите, что следует опубликовать, а также путь сохранения и имя файла.

В. Щелкните на кнопке Publish.

Таким образом, процесс анализа и проектирования разрабатываемой ИС завершен. Полученные артефакты необходимы для процесса реализации (разработки программного кода) и для всех последующих процессов, которые определены для RUP.

  • [1] Упражнение 7.12 Создание диаграммы Размещения Постановка задачи Диаграммы размещения дают представление о том, как физически будут размещатьсяотдельные компоненты системы на вычислительных средствах пользователя. Добавление узлов к диаграмме Размещения
  • [2] Откройте спецификацию спецификации компонента Schedule в пакете компонентовEntities. Выберите в качестве языка C++. 2. Откройте спецификацию тела компонента Schedule в пакете компонентов Entities. Выберите в качестве языка C++. 3. Повторите подпункты 1 и 2 для всех оставшихся компонентов. 4. Откройте диаграмму Компонентов системы. 5. Выполните проверку корректности модели: Tools Check Model. 6. Если система обнаружила ошибки в модели, устраните их. Генерация кода 1. Выберите все объекты на диаграмме Компоненты системы. 2. Выберите в меню Tools —" ANSI C++ —" Generation Code. Укажите папку, в которойбудут сохраняться файлы с кодом. 3. Откройте для просмотра сгенерированный код: Tools —> ANSI C++ —>• Browse Header, Tools —" ANSI C++ —> Browse Body.
  • [3] SQL (англ. Structured Query Language — язык структурированных запросов) — формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей СУБД.
Показать весь текст
Заполнить форму текущей работой