2. В поле Documentation (Описание) введите описание класса Payclerk - Payclerk вычисляет недельный заработок.
3. Выберите вкладку Operations (Операции).
4. Щелкните правой кнопкой мыши по списку операций.
5. В появившемся контекстно-зависимом меню выберите команду Insert (Добавить). В список будет добавлена новая операция.
6. Введите имя новой операции - calcPay.
7. Щелкните по кнопке OK, чтобы закрыть диалоговое окно настройки параметров класса.
Последовательность указания аргументов и типа возвращаемого значения для операции calcPay:
1. Щелкните по значку "+" слева от названия раздела Logical View в окне браузера.
2. Щелкните по значку "+" слева от названия класса Payclerk.
3. Дважды щелкните по операции calcPay, чтобы закрыть диалоговое окно настройки параметров операции.
4. В открывающемся списке Return Class (Возвращаемый класс) выберите Currency.
5. Выберите вкладку Detail (Детально).
6. Щелкните правой кнопкой мыши по списку аргументов.
7. В появившемся контекстно-зависимом меню выберите команду Insert. В список будет добавлен новый аргумент.
8. Введите имя нового аргумента - rate.
9. В открывающемся списке в колонке Туре (Тип) выберите Integer.
10. Щелкните по кнопке OK, чтобы закрыть диалоговое окно настройки параметров операции.
Для создания интерфейсного класса IPayroll:
1. Щелкните правой кнопкой мыши по названию раздела Logical View.
2. В появившемся контекстно-зависимом меню выберите команду New => Interface (Создать => Интерфейс). В список браузера будет добавлен новый класс со стереотипом интерфейс (Interface).
3. Введите имя нового интерфейсного класса - IPayroll.
Добавление интерфейсного класса на главную диаграмму классов предусматривает выполнение следующих действий:
1. Дважды щелкните по диаграмме Main в разделе Logical View (Логическое представление), чтобы открыть ее.
2. В списке браузера выберите класс IPayroll и перетащите его с помощью мыши на главную диаграмму классов.
Последовательность добавления операции к классу IPayroll:
1. Щелкните правой кнопкой мыши по классу IPayroll на главной диаграмме классов.
2. В появившемся контекстно-зависимом меню выберите команду New => Operation (Создать => Операция). К классу будет добавлена новая операция.
3. Введите имя операции и тип возвращаемого значения - calcPay(rate Integer):Currency (проверьте, что указали именно такой формат).
Для создания класса Payroll:
1. Щелкните правой кнопкой мыши по названию раздела Logical View.
2. В появившемся контекстно-зависимом меню выберите команду New => Class (Создать => Класс). В список браузера будет добавлен новый класс.
3. Введите имя нового класса - Payroll.
Этапы добавления класса Payroll на главную диаграмму классов:
1. Дважды щелкните по диаграмме Main в разделе Logical View, чтобы открыть ее.
2. В списке браузера выберите класс Payroll и перетащите его с помощью мыши на главную диаграмму классов.
Чтобы создать отношения реализации между классами IPayroll и Payroll:
1. Щелкните по кнопке Realize (Реализация) на панели инструментов.
2. Щелкните по классу Payroll на главной диаграмме классов и проведите линию связи к классу IPayroll.
Для создания отношения между классами Payroll и Payclerk:
1. Щелкните по кнопке Unidirectional Association (Однонаправленная ассоциативная связь) на панели инструментов.
2. Щелкните по классу Payroll на главной диаграмме классов и проведите линию связи к классу Payclerk.
Чтобы указать название роли:
1. Щелкните правой кнопкой мыши по линии ассоциативной связи рядом с классом Payclerk.
2. В появившемся контекстно-зависимом меню выберите команду Role Name (Название роли).
3. Введите название роли - myClerk.
Этапы объявления ассоциации скрытой:
1. Щелкните правой кнопкой мыши по линии ассоциативной связи рядом с классом Payclerk.
2. В появившемся контекстно-зависимом меню выберите команду Private (Скрытый).
Для указания мощности:
1. Щелкните правой кнопкой мыши по линии ассоциативной связи рядом с классом Payclerk.
2. В появившемся контекстно-зависимом меню выберите команду Multiplicity: 1 (Мощность: 1).
Установка параметров генерации кода для класса IPayroll с помощью программы Model Assistant Tool требует выполнения следующих действий:
1. В списке браузера щелкните правой кнопкой мыши по классу IPayroll или по диаграмме классов.
2. В появившемся контекстно-зависимом меню выберите команду Model Assistant.
3. Выберите класс IPayroll в списке программы Model Assistant.
4. В открывающемся списке Instancing (Способ создания экземпляров) выберите MultiUse (Многократное использование).
5. Щелкните по кнопке OK, чтобы закрыть окно Model Assistant.
Чтобы установить параметры генерации кода для класса Payroll с помощью программы Model Assistant Tool:
1. Щелкните правой кнопкой мыши по классу Payroll в списке браузера или по диаграмме классов.
2. В появившемся контекстно-зависимом меню выберите команду Model Assistant.
3. Выберите класс Payroll в списке программы Model Assistant.
4. В открывающемся списке Instancing (Способ создания экземпляров) выберите MultiUse (Многократное использование).
5. Щелкните по значку "+" слева от названия раздела Implements Classes (Реализует классы) в списке, чтобы открыть вложенный список.
6. Щелкните по значку "+" слева от названия класса IPayroll, чтобы открыть вложенный список.
7. Выберите операцию IPayroll_calcPay.
8. Установите переключатель Public (Общедоступный) в группе элементов Access (Доступ).
9. Щелкните по значку "+" слева от названия раздела Properties (Свойства) в списке, чтобы открыть вложенный список.
10. Щелкните по значку "+" слева от названия роли myClerk, чтобы открыть вложенный список.
11. Выберите роль myClerk.
12. Установите флажок New (Новый).
13. Щелкните по кнопке OK, чтобы закрыть окно Model Assistant.
Для создания компонента PayrollCalculator:
1. Щелкните правой кнопкой мыши по названию раздела Component View (Представление компонентов) в браузере.
2. В появившемся контекстно-зависимом меню выберите команду New => Component (Создать => Компонент). В список браузера будет добавлен новый компонент.
3. Введите имя нового компонента - PayrollCalculator.
Последовательность указания стереотипа для компонента PayrollCalculator:
1. Щелкните правой кнопкой мыши по компоненту PayrollCalculator в браузере.
2. В появившемся контекстно-зависимом меню выберите команду Open Specification (Открыть параметры).
3. В открывающемся списке Stereotype (Стереотип) выберите стереотип ActiveX DLL.
4. Щелкните по кнопке OK, чтобы закрыть диалоговое окно настройки параметров компонента.
Этапы добавления компонента на главную диаграмму компонентов:
1. Дважды щелкните по диаграмме Main (Главная диаграмма) в разделе Component View (Представление компонентов), чтобы ее открыть.
2. В списке браузера выберите компонент PayrollCalculator и перетащите его с помощью мыши на главную диаграмму компонентов.
Для связывания классов с компонентом PayrollCalculator:
1. Дважды щелкните по компоненту PayrollCalculator в списке браузера или по диаграмме компонентов, чтобы открыть диалоговое окно настройки параметров компонента.
2. Выберите вкладку Realize (Реализация).
3. Выберите класс IPayroll, щелкнув по нему мышью.
4. Нажмите и удерживайте клавишу Shift.
5. Щелкните мышью по классу Payroll.
6. Щелкните мышью по классу Payclerk.
7. Щелкните правой кнопкой мыши по списку классов.
8. В появившемся контекстно-зависимом меню выберите команду Assign (Присвоить).
9. Щелкните по кнопке OK, чтобы закрыть диалоговое окно настройки параметров компонента.
Последовательность генерации кода па языке Visual Basic:
1. Выберите компонент PayrollCalculator на диаграмме компонентов, щелкнув по нему мышью.
2. Выберите команду меню Tools => Visual Basic => Update code (Сервис => Visual Basic => Обновить код) для запуска мастера Code Update Tool.
3. Щелкните по кнопке Finish (Готово) в окне мастера Code Update Tool.
4. На экране появится диалоговое окно сохранения модели. Введите PayrollCalculator в поле ввода Filename (Имя файла) и щелкните по кнопке Save (Сохранить).
5. Будет создан проект для Visual Basic с формой, названной по умолчанию Form1. Мастер Code Update Tool сообщит, что форма не входит в вашу модель, и запросит подтверждение на удаление ее из проекта. Установите флажок рядом с формой Form1 в диалоговом окне Synchronize (Синхронизация) и щелкните по кнопке OK для продолжения генерации кода.
6. По завершении генерации кода появится диалоговое окно с итоговым отчетом. Щелкните по кнопке Close (Закрыть), чтобы закрыть окно мастера Code Update Tool.
Чтобы добавить код для метода класса Payclerk:
1. В программе Visual Basic перейдите к методу calcPay класса Payclerk.
2. Замените строку '## Your code goes here…' на CalcPay = rate * 40.
3. Перейдите к методу IPayroll_calcPay класса IPayroll.
4. Замените строку '## Your code goes here на IPayroll_calcPay = myClerk(l). calcPay(rate).
5. Выберите команду меню Project => PayrollCalculator Properties (Проект => Свойства PayrollCalculator).
6. В открывающемся списке Startup Object (Начальный объект) выберите (None).
7. Щелкните по кнопке OK, чтобы закрыть окно настройки параметров проекта.
8. Выберите команду меню File => Make PayrollCalculator.dll (Файл => Собрать PayrollCalculator.dll).
9. Щелкните по кнопке OK в диалоговом окне Make Project (Сборка проекта), чтобы сохранить созданную динамическую библиотеку.
10. Выберите команду меню File => Exit (Файл => Выход) для закрытия программы Visual Basic.
Повторное использование библиотеки ActiveX
В этом разделе полученная библиотека будет использоваться для другого приложения с учетом всех этапов анализа и проектирования, рекомендованных в книге. Задача состоит в следующем. Вам нужно создать приложение, которое будет выводить зарплату служащего. Пользователь приложения - управляющий. Вы должны работать с программной библиотекой, предоставленной отделом оплаты труда (то есть созданной ранее DLL). Начнем с новой пустой модели.
Последовательность создания диаграммы прецедентов:
1. Щелкните по значку "+" слева от названия раздела Use Case View (Представление прецедентов) в окне браузера.
2. Дважды щелкните по диаграмме Main (Главная диаграмма) в разделе Use Case View (Представление прецедентов), чтобы открыть ее.
3. Щелкните по кнопке Actor (Актер) на панели инструментов, а затем по диаграмме, чтобы поместить на нее актера.
4. Введите имя нового актера - Manager.
5. Щелкните правой кнопкой мыши по изображению актера на диаграмме.
6. В появившемся контекстно-зависимом меню выберите команду Options => Stereotype display => Icon (Параметры => Отображение стереотипа => Значок).
7. Щелкните по кнопке Use Case (Прецедент) на панели инструментов, а затем по диаграмме, чтобы поместить на нее прецедент.
8. Введите имя нового прецедента - Display Pay.
9. Щелкните по кнопке Unidirectional Association (Однонаправленная ассоциативная связь) на панели инструментов.
10. Щелкните по актеру Manager на диаграмме и проведите линию связи к прецеденту Display Pay.
Для создания диаграммы реализации прецедентов:
1. Щелкните правой кнопкой мыши по названию раздела Logical View (Логическое представление) в браузере.
2. В появившемся контекстно-зависимом меню выберите команду New => Use Case Diagram (Создать => Диаграмма прецедентов). В список браузера будет добавлена новая диаграмма.
3. Введите ее название - Realizations.
4. Дважды щелкните по диаграмме Realizations, чтобы открыть ее. Чтобы создать реализацию прецедента:
1. Щелкните по кнопке Use Case на панели инструментов, а затем по диаграмме, чтобы поместить на нее прецедент.
2. Дважды щелкните по прецеденту, чтобы открыть диалоговое окно настройки его параметров.
3. В поле ввода Name (Название) введите имя прецедента - Display Pay. Важно, чтобы вы указали название прецедента именно таким образом. В этом случае вы сообщите программе Rational Rose о необходимости использования другого пространства имен (namespace). Если ввести название прецедента непосредственно на диаграмме, программа сочтет, что это тот же прецедент Display Pay, что и в представлении прецедентов.
4. В открывающемся списке Stereotype (Стереотип) выберите стереотип use-case-realization (реализация прецедента).
5. Щелкните по кнопке OK, чтобы закрыть диалоговое окно настройки параметров.
6. На экране появится сообщение о том, что прецедент существует в нескольких пространствах имен. Это нормально. Щелкните по кнопке OK, чтобы закрыть сообщение.
7. Щелкните правой кнопкой мыши по прецеденту.
8. В появившемся контекстно-зависимом меню выберите команду Stereotype display => Icon (Отображение стереотипа => Значок).
Этапы создания диаграммы последовательности действий:
1. Щелкните правой кнопкой мыши по реализации прецедента Display Pay в списке браузера.
2. В появившемся контекстно-зависимом меню выберите команду New => Sequence Diagram (Создать => Диаграмма последовательности действий).
3. Введите название новой диаграммы - Display Pay for an Employee.
4. Дважды щелкните по созданной диаграмме последовательности действий, чтобы открыть ее.
Для добавления объектов и сообщений на диаграмму последовательности действий:
1. В списке браузера выберите актера Manager и перетащите его с помощью мыши на диаграмму последовательности действий.
2. Щелкните по кнопке Object (Объект) на панели инструментов, а затем по диаграмме последовательности действий, чтобы поместить на нее объект.
3. Введите имя объекта - aPayForm.
4. Щелкните по кнопке Object Message (Сообщение) на панели инструментов.
5. Щелкните по пунктирной линии для актера и проведите линию сообщения к пунктирной линии для объекта a Pay Form.
6. Ведите название сообщения - display pay for joe.
7. Щелкните по кнопке Object на панели инструментов, а затем по диаграмме последовательности действий, чтобы поместить на нее объект.
8. Введите имя объекта - Joe.
9. Щелкните по кнопке Object Message на панели инструментов.
10. Щелкните по пунктирной линии для объекта aPayForm и проведите линию сообщения к пунктирной линии для объекта Joe.
11. Введите название сообщения - get pay rate.
12. Щелкните по кнопке Object на панели инструментов, а затем по диаграмме последовательности действий, чтобы поместить на нее объект.
13. Введите имя объекта - aPayClerk.
14. Щелкните по пунктирной линии для объекта aPayForm и проведите линию сообщения к пунктирной линии для объекта aPayClerk.
15. Введите название сообщения - calculate pay for this rate.
16. Щелкните по кнопке Message to Self (Сообщение себе) на панели инструментов.
17. Щелкните по пунктирной линии для объекта aPayForm, чтобы добавить сообщение.
18. Введите название сообщения - display pay. Этапы создания классов PayrollForm и Employee:
1. Щелкните правой кнопкой мыши по названию раздела Logical View (Логическое представление) в браузере.
2. В появившемся контекстно-зависимом меню выберите команду New => Class (Создать => Класс).
3. Введите имя для нового класса - PayrollForm.
4. Щелкните правой кнопкой мыши по классу PayrollForm в браузере.
5. В появившемся контекстно-зависимом меню выберите команду Open Specification (Открыть параметры).
6. В открывающемся списке Stereotype выберите стереотип Form (Форма). Если вы не указали Visual Basic в качестве языка, используемого по умолчанию, данный стереотип будет недоступен. В таком случае можно либо пересоздать класс, установив перед этим язык, либо выбрать стереотип после привязки класса к компоненту с языком Visual Basic.
7. Щелкните по кнопке OK, чтобы закрыть окно настройки параметров класса.
8. Выберите класс PayrоlllForm в списке браузера и введите описание класса в окне Documentation (Описание) - this form displays the weekly pay of an employee.
9. Щелкните правой кнопкой мыши по названию раздела Logical View (Логическое представление)в браузере.
10. В появившемся контекстно-зависимом меню выберите команду New => Class (Создать => Класс).
11. Введите имя для нового класса - Employee.