Краткое описание лабораторных работ
Общие сведения
Целью лабораторных работ является обучение студентов построению UML диаграмм. В результате выполнения лабораторных работ студенты приобретают практические навыки построения UML диаграмм с помощью графической компьютерной программы RationalRose, поддерживающей язык UML.
Когда вы рассматриваете рисунок, изображающий сложную систему, то зачастую, понимаете его смысл без каких либо словесных пояснений. Так происходит потому, что наш мозг в высшей степени эффективно выполняет функции восприятия, обработки и понимания смысла зрительной (образной) информации. Не случайно русская пословица гласит “Лучше один раз увидеть, чем сто раз услышать”. По этой причине в последние годы одним из наиболее продуктивных направлений в проектировании компьютерных систем стало использование их наглядных схем, рисуемых на бумаге и экранах компьютеров. Визуальный подход к проектированию особенно отчетливо проявился в Унифицированном Языке Моделирования (UnifiedModelingLanguage, UML), предназначенном для анализа и проектирования автоматизированных информационных систем (АИС), баз данных, компьютерных программ и иных сложных систем.
Сдавая лабораторную работу преподавателю, студенты должны знать, что система является сложной, если ее разработчики (или исследователи) для составления некоторого цельного представления о ней рассматривают систему не с одной, а с многих различных точек зрения. Например, при проектировании конкретной АИС разработчики рассматривают ее с точек зрения объектов и отношений между ними, бизнес и иных процессов, а также с других точек зрения. Еще один пример сложных систем – компьютерные программы. Они рассматриваются программистами с позиций глобальных и локальных переменных, однозначно идентифицированных имен переменных, инкапсуляции частей программных кодов и с многих других точек зрения.
Язык UML является ярким примером продуктивного использования в компьютерной практике наглядных схем, отображающих различные взгляды разработчиков на сложные системы. Его наглядные диаграммы широко применяются системными аналитиками и программистами, проектирующими АИС, базы данных и компьютерные программы. UML диаграммы и, дополняющие их спецификации, обычно помещаются в проектную документацию АИС и компьютерных программ. Для изображения UML диаграмм на экранах компьютеров используются графические программы, поддерживающие язык UML. Одной из таких программ является RationalRose.
В лабораторных работах в качестве примера практического применения UML диаграмм используется Автоматизированная информационная система (АИС) регистрации учебных курсов. Мы выбрали этот пример потому, что студенты на собственном опыте знают, что такое система регистрации учебных курсов МИРЭА.
Сегодня существуют, как ручные, так и автоматизированные системы регистрации учебных курсов ВУЗов. Например, в МИРЭА пока еще используется ручная система регистрации учебных курсов. За ее функционирование отвечает Учебная часть нашего института. В некоторых российских и американских ВУЗах недавно начали применять автоматизированные системы регистрации учебных курсов.
С точки зрения понятий языка UML, преподаватели, студенты, сотрудники учебной части ВУЗа и работники бухгалтерии, выполняющие финансовые расчеты со студентами и преподавателями, являются “актерами” АИС регистрации учебных курсов. Все актеры АИС находятся на ее внешней границе.
При проектировании АИС, подобных регистрации учебных курсов, обычно, сначала используется схема, отображающая пять “взглядов” на АИС (Рис 1).
РИС. 1
Первый взгляд на АИС показан на рисунке в виде Схемы прецедентов. Ее, иногда, называют, на английский манер, Схемой Usecase. Она описывает внешнюю границу АИС и актеров, которые через эту границу взаимодействуют с АИС. К схеме прецедентов, как правило, прилагаются спецификации, в которых подробнейшим образом, скрупулезно, до малейших деталей описываются взаимодействия актеров с экранами компьютеров, которые расположены на внешней границе АИС. Эти подробные спецификации интерфейсов актеров позволяют разработчикам АИС грамотно составлять техническое задание на проектирование программного обеспечения АИС и избежать ошибок при его проектировании.
Второй взгляд на АИС обозначен на Рис.1 вверху слева. Его отображением на бумаге или экране компьютера являются построенные с помощьюUML диаграмм логические (концептуальные) схемы баз данных АИС и UML диаграммы, изображающие структуры и содержание компьютерных программ АИС.
Третий взгляд отображается на бумаге в виде UML диаграмм процессов, происходящих в АИС. Четвертый – изображает в виде UML диаграмм физическую реализацию АИС (компьютеры, принтеры и другие, связанные между собой технические средства).
Пятый взгляд представляется в виде описания схемы поставки технических средств АИС и используемых в ней покупных компьютерных программ. В схеме поставки приводится обоснование выбора поставщиков технических средств и компьютерных программ АИС и дается оценка финансовых затрат на их приобретение.
Схема пяти взглядов может быть с успехом использована студентами при выполнении ими курсовых работ и дипломных проектов.
Интерфейс Rational Rose
В IBMRationalRose реализованы общепринятые стандарты нарабочий интерфейс программы, аналогично известным средам визуального программирования. После установки IBMRationalRose на компьютер пользователя, запуск этого средства в среде MSWindows 2000/XP (без выбора готовых шаблонов проектов) приводит к появлению на экране соответствующего рабочего интерфейса - автоматически создается новый проект и в рабочем окне диаграммы появляется по умолчанию окно диаграммы классов. (Рис. 1.1).
|
Рис. 1.1 Общий вид рабочего интерфейса IBMRationalRose
Рассмотрим назначение и основные функции каждого из этих элементов.
ПЕРВОЕ ЛАБОРАТОРНОЕ ЗАНЯТИЕ
Тема:
Построение с помощью программы Rational Rose UML диаграмм прецедентов на примере главной диаграммы прецедентов АИС регистрации учебных курсов
Общие понятия
Диаграмма прецедентов позволяет создать список операций, которые выполняет система. Часто этот вид диаграмм называют диаграммой функций, потому что на основе набора таких диаграмм создается список требований к системе и определяется множество выполняемых системой функций.
Каждая такая диаграмма или, как ее обычно называют, каждый Use case – это описание сценария поведения, которому следуютдействующие лица (Actors).
Данный тип диаграмм используется при описании бизнес процессов автоматизируемой предметной области, определении требований к будущей программной системе. Отражает объекты как системы, так и предметной области и задачи, ими выполняемые.
Общее описание модели
Сценарий проекта таков: Сначала каждый преподаватель (профессор) университета заполняет специальную форму, в которой указывает, какие учебные курсы он намерен вести в следующем семестре. Данные из формы помещаются в университетский компьютер работником регистратуры.
После этого из полученных данных формируется каталог курсов, который раздается студентам. Студенты выбирают из каталога те курсы, на которых они собираются учиться, и подают заявки на обучение в регистратуру. Все эти данные также попадают в компьютер, где происходит их обработка и формирование списков курсов и студентов. В задачи создаваемой системы входит, в частности, такое комплектование учебных курсов, чтобы каждый курс посещало бы от трех до десяти студентов. Если на какой-то курс не набирается трех студентов, он отменяется.
После формирования курсов преподаватели получают списки студентов, которых им предстоит обучать, а каждый студент получает подтверждение о зачислении на курс и счет на оплату.
Первое, что требуется при построении модели, — определить действующие лица системы и сценарии поведения.
Действующих лиц в создаваемой системе четыре:
- преподаватель,
- студент,
- регистратор,
- биллинговая программа – система оплаты.
Первые три выбраны действующими лицами, поскольку они активно взаимодействуют с создаваемой системой. Биллинговая же программа чаще всего является отдельным программным продуктом, а в нашем случае она получает информацию для своей работы от создаваемой курсовой системы, поэтому может считаться самостоятельным действующим лицом.
Элементы диаграммы
При построении диаграммы прецедентов будем использовать пиктограммы типа "прецеденты" и "актеры". Помним , что термин "прецедент" это не очень удачный перевод на русский язык английского выражения use case (Computer Aided Software Engineering).
Прецедент - это описание множества последовательных событий, выполняемых компьютерной системой, которые приводят к наблюдаемому актером результату. Графически прецедент изображается в виде ограниченного непрерывной линией эллипса, обычно содержащего только имя прецедента.
Актер – это кто-то (или что-то) внешний по отношению к компьютерной системе, кто взаимодействует с ней. Графически актер изображается в виде пиктограммы, представляющей человека, поскольку актер это человек или группа людей, использующих данные, предоставляемые компьютерной системой.
Построение диаграммы
Теперь перенесем все это на диаграмму. Для этого нужно создать пустой проект, переключиться на папку Use Case View – для работы с диаграммами прецедентов (Use case) и открыть контекстное меню нажатием правой кнопки мыши. Если теперь выбрать пункт New•Actor (рис. 2.1), то вы получите действующее лицо;
Рис. 2.1 Создание действующего лица
Теперь создадим всех действующих лиц (рис.2.2), рассмотренных в п. «Общее описание модели».
Рис. 2.2 Вид окна браузера проекта после создания всех действующих лиц («Актеров»)
Теперь выделим сценарии использования для нашего примера. Каждый из них описывает некоторое требование к функциям системы:
- Выбор курсов для преподавателя
- Запрос расписания курсов
- Регистрация на курсы
- Создание каталогов ресурсов
- Хранение информации о курсах
- Хранение информации о преподавателях
- Хранение информации о студентах
Если выбрать New•Use Case, то будет создан сценарий поведения. (Рис.2.3)
Рис. 2.3 Создание сценария поведения
Теперь создадим все описанные выше сценарии поведения (рис.2.4)
Рис. 2.4 Вид окна браузера проекта после создания всех сценариев поведения («Прецедентов»)
Все введенные нами действующие лица и сценарии поведения немедленно появляются в окне браузера, откуда вы можете перетаскивать их мышью на диаграммы.
Далее, как правило, строится диаграмма сценариев поведения - прецедентов. Для этого двойным щелчком на пиктограмме Main из папки Use Case View открывается главная диаграмма сценариев.
В нее из окна браузера перетаскиваются все действующие лица и сценарии поведения, которые были созданы в рамках модели. (Рис.2.5)
Рис. 2.5 Диаграмма сценариев поведения (пока без связей)
После размещения эти компоненты нужно связать между собой, чтобы отобразить взаимосвязи. В нашей модели наилучшим образом подойдут связи типа «однонаправленная ассоциация» (Unidirectional Association).
Ассоциация – это структурное двунаправленное отношение, описывающее совокупность взаимоотношений между объектами. По сути дела ассоциация является сверткой бинарных отношений между объектами. Эту свертку может мысленно выполнить в своем сознании специалист (например, программист), который видит пиктограмму ассоциации на UML диаграмме.
Для реализации связей применяется метод перетаскивания. Сначала в палитре выбирается тип связи «однонаправленная ассоциация» (UniderectionalAssociation) , после чего нужно протянуть линию между действующим лицом и сценарием поведения. В результате на диаграмме возникнет стрелка. Аналогичным образом поступают со всеми компонентами диаграммы. Готовая диаграмма показана на Рис. 3.1.
Для создания границы («интерфейса») между актерами и прецендентами можно воспользовавшись пунктом меню «Tools/Create/Note Anchor» иливыбратьсредипиктограмминструмент «Anchor Note to Item». Выбрав инструмент необходимо щелкнуть один раз на середине одной из стрелок отношения далее во всех углах интерфейса и завершить границу в месте начала ее рисования. Если прямоугольник получился не очень ровый то это можно исправить выбрав в меню «Format/Line Style/Rectilinear»
Рис. 3.1 Главная диаграмма прецедентов системы регистрации учебных курсов Университета
В среде Rational Rose так же легко создаются и диаграммы других видов, необходимые для генерации исходных текстов на выбранном языке программирования. И для каждого объекта диаграммы существует масса тонких настроек.
ВТОРОЕ ЛАБОРАТОРНОЕ ЗАНЯТИЕ
Тема:
Построение с помощью программы RationalRoseUML диаграмм, изображающих логические схемы баз данных, на примере построения UML диаграммы, изображающей фрагмент концептуальной схемы базы данных АИС регистрации учебных курсов.
Диаграмма классов
Диаграмма классов является основным логическим представлением разрабатываемой модели и содержит детальную информацию о внутреннем устройстве объектно-ориентированной программной системы или, используя современную терминологию, об архитектуре программной системы. Активизировать рабочее окно диаграммы классов можно несколькими способами:
- окно диаграммы классов появляется по умолчанию в рабочем окне диаграммы после создания нового проекта (Рис.1.1);
- щелкнуть на кнопке с изображением диаграммы классов на стандартной панели инструментов;
- раскрыть логическое представление (Logical View) в браузере проекта и дважды щелкнуть на пиктограммеMain (Главная);
- выполнить операцию главного меню: Browse Class Diagram (Обзор Диаграмма классов).
Рис. 1.1 Рабочее окно диаграммы классов
При этом появляется новое окно с чистым рабочим листом диаграммы классов и специальная панель инструментов, содержащая кнопки с изображением графических примитивов, необходимых для разработки диаграммы классов (Табл. 1.1).
Назначение отдельных кнопок панели можно узнать также из всплывающих подсказок.
Таблица 1.1 Назначение кнопок специальной панели инструментов для диаграммы классов | ||
Графическое изображение | Всплывающая подсказка | Назначение кнопки |
Selection Tool | Превращает изображение курсора в форму стрелки для последующего выделения элементов на диаграмме | |
Text Box | Добавляет на диаграмму текстовую область | |
Note | Добавляет на диаграмму примечание | |
Anchor Note to Item | Добавляет на диаграмму связь примечания с соответствующим графическим элементом диаграммы | |
Class | Добавляет на диаграмму класс | |
Interface | Добавляет на диаграмму интерфейс | |
Unidirectional Association | Добавляет на диаграмму направленную ассоциацию | |
Association Class | Добавляет на диаграмму ассоциацию класс | |
Package | Добавляет на диаграмму пакет | |
Dependency or Instantiates | Добавляет на диаграмму отношение зависимости | |
Generalization | Добавляет на диаграмму отношение обобщения | |
Realize | Добавляет на диаграмму отношение реализации |
На специальной панели инструментов по умолчанию присутствует только часть пиктограмм элементов, которые могут быть использованы для построения диаграммы классов. Добавить кнопки с пиктограммами других графических элементов или удалить ненужные кнопки можно с помощью настройки специальной панели инструментов. Соответствующее диалоговое окно настройки специальной панели инструментов для диаграммы классов можно вызвать аналогично другим панелям с помощью операции контекстного меню Customize (Настройка) при позиционировании курсора на специальной панели инструментов.
Для добавления класса на диаграмму классов нужно с помощью левой кнопки мыши нажать кнопку с изображением пиктограммы класса на специальной панели инструментов, отпустить левую кнопку мыши и щелкнуть левой кнопкой мыши на свободном месте рабочего листа диаграммы. На диаграмме появится изображение класса с маркерами изменения его геометрических размеров и предложенным средой именем по умолчанию NewClass. Или создать класс через пункт всплывающего меню New->Class (Рис.1.2), а потом “перетащить” созданный класс из окна браузера проекта в область окна диаграммы классов (Рис. 1.4).
Рис. 1.2 Создание нового класса
В нашем случае (АИС регистрации учебных курсов) нужно создать 4 класса (Рис.1.3):
- Пользователь;
- Преподаватель;
- Студент;
- Учебный курс (из объектов университета).
Рис. 1.3 Браузер проектов – отображает все зозданные классы
“Перетащим” мышкой только что созданные классы из окна браузера проекта в область окна диаграммы классов (рис. 1.4.)
Рис. 1.4 Окно диаграммы классов – отображает все созданные классы
Из всех графических элементов среды IBMRationalRose класс обладает максимальным набором свойств, главными из которых являются его атрибуты и операции. Кстати, именно диаграмма классов используется в среде IBMRationalRose для генерации программного кода, но об этом будет рассказано на другом лабораторном занятии.
На этом лабораторном занятии мы рассмотрим только создание и редактирование атрибутов классов, операции же будут подробно описаны в лабораторной работе №3.
Давайте добавим аттрибуты для класса “Пользователь”:
l Имя;
l Ид.номер.
Добавить атрибут к созданному ранее классу можно одним из следующих способов:
- С помощью операции контекстного меню NewAttribute (Новый атрибут) для класса, выделенного на диаграмме классов. В этом случае активизируется курсор ввода текста в области графического изображения класса на диаграмме (Рис. 1.5).
- С помощью операции контекстного меню: New Attribute (Новый Атрибут) для класса, выделенного в браузере проекта. В этом случае активизируется курсор ввода текста в области иерархического представления класса в браузере проекта под именем соответствующего класса.
- С помощью операции контекстного меню Insert (Вставить), вызванного при позиционировании курсора в области открытой вкладки атрибутов в диалоговом окне свойств ClassSpecification соответствующего класса (Операция контекстного меню OpenSpecification или двойной «щелчок» мышью на изображении класса) (Рис. 1.6).
Рис. 1.5 Окно диаграммы классов – добавляем атрибут к классу
Рис. 1.6 Диалоговое окно свойств класса – нужно перейти к вкладке Attributes
Рис. 1.7 Класс “Пользователь”
После добавления атрибута к классу по умолчанию ему присваивается имя name и некоторый квантор видимости (Рис. 1.7). Нужно запомнить, что имена атрибутов и операций классов должны начинаться со строчной буквы.
Видимость атрибутов на диаграмме классов изображается в форме специальных пиктограмм или украшений. Используемые пиктограммы видимости изображаются перед именем соответствующего атрибута и имеют следующий смысл (Табл. 2.1).
Теперь добавим атрибуты всем классам, изображенным в окне диаграммы классов (Рис.1.8).
Рис. 1.8 Окно диаграммы классов – отображает все созданные классы и их атрибуты
Следующий этап – это установление взаимосвязей между классами нашей диаграммы. (Вспоминаем Лабораторную работу №1).
В этой лабораторной работе мы будем использовать два типа отношений (взаимосвязей):
l ассоциацию;
l обобщение.
Добавление на диаграмму ассоциации между двумя классами выполняется аналогично тому как это делалось на 1ой Лабораторной работе (Рис.2.1, 2.2) . Построим взаимосвязь между классами “Преподаватель” и “Учебный курс” (Рис.2.2).
Рис. 2.1 Окно диаграммы классов – отображает элемент специальной панели инструментов- “Ассоциация”
Но тогда ассоциация будет однонаправленной (Рис. 2.2), а нам нужно будет получить двунаправленное отношение “1” к “0..5”, т.е. один преподаватель может вести от 0 до 5 учебных курсов.
Вспомним из курса лекций:
Ассоциация– это структурное двунаправленное отношение, описывающее совокупность взаимоотношений между объектами. По сути дела ассоциация является сверткой бинарных отношений между объектами. Эту свертку может мысленно выполнить в своем сознании специалист (например, программист), который видит пиктограмму ассоциации на UML диаграмме.
Пометка единица (1) на левом конце линии ассоциации означает, что в двунаправленном отношении, наряду с многими, например, работниками участвует один работодатель. Единица и звездочка на правом конце линии означает "единица или больше" (1..*). Если один конец линии ассоциации помечен единицей (1), то пометка на другом конце линий называется кратностью ассоциации.
На линии ассоциации можно также задать кратность равную единице (1), можно указать диапазон кратности: ноль или единица (0..1), много (0..*). Разрешается также указывать кратность определенным числом (например 5). С помощью списков можно задавать и более сложные кратности. Например, список 0..1, 3..4, 6..* означает "любое число объектов кроме 2 и 5".
Рис. 2.2 Окно диаграммы классов – отображает однонаправленную взаимосвязь (отношение) двух классов “Преподаватель” и “Учебный курс”
Изменим свойства для даннойассоциации, предложенные средой по умолчанию. Это можно выполнить с помощью окна спецификации свойств ассоциации. Доступ к диалоговому окну спецификации свойств ассоциацииAssociationSpecification можно получить после выделения линии ассоциации на диаграмме классов (Рис. 2.3) или в браузере проекта и двойного щелчка на ней левой кнопки мыши (Рис. 2.4) .
Рис. 2.3Диалоговое окно спецификации свойств ассоциации
Первое, что мы делаем — убираем направленность отношения: во всплывающем меню ассоциации («Клик» правой кнопкой мыши) убираем галочку с пункта «Navigate» (Рис.2.4).
Рис. 2.4 Всплывающее меню свойств ассоциации
Вторым шагом нужно указать кратности для ассоциации: со стороны “Пользователя” 1, а со стороны “Учебного курса” диапацон кратности “0..5” (от 0 до 5).
Это можно сделать двумя способами:
l с помощью всплывающего меню ассоциации (см.выше) – выбрать в пункте Multiplicity (дословно “Сложность отношения”) нужную кратность (Рис. 2.5);
l в диалоговом окне свойств ассоциации (OpenSpecification - Рис.2.5) на вкладках RoleADetail и RoleBDetail выбрать кратности для обеих сторон ассоциации из выпадающего списка пункта Multiplicity.
Воспользуемся вторым способом (Рис. 2.6). У стороны “Учебного курса” в меню Multiplicity выберем пункт “один ко многим” (1..* или 1..n) и вместо n поставим “5”.
Рис. 2.5 Всплывающее меню свойств ассоциации
Рис. 2.6 Диалоговое окно свойств ассоциации
Полученная взаимосвязь (отношение) представлено на Рис.2.7.
Рис. 2.7Окно диаграммы классов – отображает взаимосвязь (отношение) двух классов “Преподаватель” и “Учебный курс”
Создадим аналогично взаимосвязь между классами “Студент” и “Учебный курс” (Рис.2.8)
Рис. 2.8Окно диаграммы классов – отображает взаимосвязь (отношение) двух классов “Студент” и “Учебный курс”
Заключительным этапом построения нашей диаграммы классов будет создание взаимосвязи типа “обобщение”(Generalization) между классами “Пользователя”, “Преподавателя” и “Студента”.
Вспомним из курса лекций:
Обобщение - это однонаправленное отношение, называемое "потомок/прародитель", в котором объект "потомок" может быть подставлен вместо объекта прародителя (родителя или предка). Потомок наследует структуру и поведение своего родителя. Стрелка всегда указывает на родителя.
В данном случае родитель – это “Пользователь”.
Добавление на диаграмму отношения обобщения между двумя классами выполняется следующим образом. На специальной панели инструментов необходимо нажать кнопку с изображением пиктограммы обобщения и отпустить левую кнопку мыши. Далее на диаграмме классов надо выделить первый элемент обобщения или потомок, от которого исходит стрелка, и, не отпуская нажатую левую кнопку мыши, переместить ее указатель ко второму элементу отношения или предку, к которому направлена стрелка. (Рис.3.1)
Рис. 3.1Окно диаграммы классов – Фрагмент простой концептуальной схемы базы данных компьютерной системы университета “Истерн”
ТРЕТЬЕ ЛАБОРАТОРНОЕ ЗАНЯТИЕ
Тема:
Построение с помощью программы RationalRoseUML диаграмм, изображающих логические схемы баз данных, на примере построения UML диаграммы, изображающей большой фрагмент концептуальной схемы базы данных АИС регистрации учебных курсов
Введение
Пример построения простой диаграммы классов был детально рассмотрен на втором лабораторном занятии. Поэтому некоторые шаги построения диаграммы классов данного лабораторного занятия будут рассмотрены вкратце.
На лабораторном занятии мы подробно рассмотрим добавление и изменение свойств атрибутов классов, а так же добавление операций классов.
ПЯТОЕ ЛАБОРАТОРНОЕ ЗАНЯТИЕ
Тема:
ШЕСТОЕ ЛАБОРАТОРНОЕ ЗАНЯТИЕ
Тема:
Простой пример генерации программного кода в среде IBM Rational Rose
Генерировать программный код на данном лабораторном занятии будем на примере задания пятой лабораторной работы — простейшего графического редактора. (Откройте созданный ранее проект (Рис. 1.1).) Рис. 1.1 Диаграмма классов – пример простого графического редактора Общая последовательность действий, которые необходимо выполнить для генерации программного кода в среде IBM Rational Rose, состоит из следующих этапов:
|
Рис. 3.2Окно выбора классов для генерации программного кода
Для просмотра и редактирования созданных файлов с текстом программного кода на языке ANSI C++ предназначен встроенный текстовый редактор, который можно открыть с помощью операции контекстного меню: ANSI C++ Browse Header_ (Язык ANSI C++ Просмотреть заголовочный файл) или ANSI C++ Browse Body_ (Язык ANSI C++ Просмотреть файл реализации) для выбранного класса в браузере проекта.
П