Постановка задачи (описание предметной области). — КиберПедия 

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

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

Постановка задачи (описание предметной области).

2017-11-27 947
Постановка задачи (описание предметной области). 0.00 из 5.00 0 оценок
Заказать работу

Постановка задачи (описание предметной области).

Магазин осуществляет продажу товаров клиенту путем оформления документов «Заказ». Директор магазина - Антон, принял решение автоматизировать документооборот продаж товара и пригласил для выполнения работ программиста Павла. Поговорив с Антоном, в соответствие с концепцией жизненного цикла (ЖЦ) программы Павел приступил к описанию бизнес процессов, сопровождающих продажу товара. Взяв за основу язык UML, он начал с построения контекстной диаграммы процессов- Use Case diagram. Диаграмма должна ответить на вопрос - «что должно делаться в системе и кто участник этих процессов».

Лабораторная работа 1. Создание диаграммы вариантов использования и действующих лиц.

Окончательный вид диаграммы показан на рис. 1.

Рис. 1 Диаграмма вариантов использования задачи о заказе товара.

 

 

Этапы выполнения упражнения.

1. Дважды щелкнув мышью на Главной диаграмме Вариантов Использования (Main) в браузере, откройте ее.

2.С помощью кнопки Use Case (Вариант использования) панели инструментов поместите на диаграмму новый вариант использования. Назовите его "Ввести новый заказ".

3. Повторив этапы 2 и 3, поместите на диаграмму остальные варианты использования:

Изменить существующий заказ

Напечатать инвентарную опись

Обновить инвентарную опись

Оформить заказ

Отклонить заказ

Выполнить поставку заказа

4. С помощью кнопки Actor (Действующее лицо) панели инструментов поместите на диаграмму новое действующее лицо.

5. Назовите его " Продавец ".

6. Повторив шаги 4 и 5, поместите на диаграмму остальных действующих лиц:

Управляющий магазином

Клерк магазина

Бухгалтерская система

7. Создание абстрактного варианта использования (не требующего дальнейшей декомпозиции).

Щелкните правой кнопкой мыши на варианте использования " Отклонить заказ " на диаграмме.

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

Установите флажок Abstract (Абстрактный), чтобы сделать этот вариант использования абстрактным.

Добавление ассоциаций

1. С помощью кнопки Unidirectional Association (Однонаправленная ассоциация) панели инструменте нарисуйте ассоциацию между действующим лицом Продавец и вариантом использования " Ввести заказ ".

2. Повторив шаг 1, поместите на диаграмму остальные ассоциации, согласно рис. 1.

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

С помощью кнопки Generalization (Обобщение) панели инструментов нарисуйте связь между вариантом использования " Отклонить заказ " и вариантом использования " Оформить заказ ". Стрелка должна быть направлена от первого варианта использования ко второму. Связь расширения означает, что вариант использования " Отклонить заказ " при необходимости дополняет функциональные возможности варианта использования " Оформить заказ ".

Щелкните правой кнопкой мыши на новой связи между вариантами использования " Отклонить заказ " и " Оформить заказ ".

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

В раскрывающемся списке стереотипов введите слово extends (расширение), затем нажмите ОК.

Надпись «extends» появится на линии данной связи.

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

Выделите в браузере вариант использования " Ввести новый заказ ".

В окне документации введите следующее описание: " Этот вариант использования дает клиенту возможность ввести новый заказ в систему".

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

Добавление описаний к действующему лицу

Выделите в браузере действующее лицо Продавец.

В окне документации введите следующее описание: "Продавец — это служащий, старающийся продать товар".

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

Лабораторная работа 2. Создание диаграммы Последовательности.

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

Этапы выполнения упражнения

Настройка программной среды

1. В меню модели выберите пункт Tools >- Options (Инструменты >- Параметры).

2. Перейдите на вкладку Diagram (Диаграмма).

3. Установите флажки Sequence numbering, Collaboration numbering и Focus of control.

4. Нажмите OK, чтобы выйти из окна параметров.

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

1. Найдитев браузере класс Заказ.

2. Щелкните на классе правой кнопкоймыши и в открывшемся меню укажите пункт New > Statechart Diagram (Создать диаграмму состояний).

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

1. Нажмите кнопку Start State (Начальное состояние) панели инструментов.

2. Поместите это состояние на диаграмму.

3. Нажмите кнопку End State (Конечное состояние) панели инструментов.

4. Поместите это состояние на диаграмму.

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

1. Нажмите кнопку State (Состояние) панели инструментов.

2. Поместите это состояние на диаграмму.

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

 

1. Нажмите кнопку Transition(Переход) панели инструментов.

2. Щелкните мышью на начальном состоянии.

3. Проведите линию перехода к состоянию Инициализация.

4. Повторив шаги с первого по третий, создайте следующие переходы:

- От состояния Инициализация к состоянию Выполнение заказа приостановлено

- От состояния Выполнение заказа приостановлено к состоянию Выполнен

- От суперсостояния к состоянию Отменен

- От состояния Отменен к конечному состоянию

- От состояния Выполнен к конечному состоянию

5. На панели инструментов нажмите кнопку Transition to Self (Переход к себе).

6. Щелкните мышью на состоянии Выполнение заказа приостановлено

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

1. Дважды щелкнув мышью на переходеот состояния Инициализация к состоянию Выполнение заказа приостановлено, откройте окно спецификации перехода.

2. В поле Event (Событие) введите фразу Выполнить заказ.

3. Щелкнув на кнопке ОК, закройте окно спецификации.

4. Повторив шаги с первого по третий, добавьте событие Отменить заказ к переходу меж­ду суперсостоянием и состоянием Отменен.

5. Дважды щелкнув мышью на переходе от состояния Выполнение заказа приостановлено к со­стоянию Выполнен, откройте окно его спецификации.

6. В поле Event (Событие) введите фразу Добавить к заказу новую позицию.

7. Перейдите на вкладку Detail (Подробно).

8. В поле Guard Condition (Сторожевое Условие) введите Не осталось незаполненных позиций.

9. Щелкнув на кнопке ОК, закройте окно спецификации.

10. Дважды щелкните мышью на рефлексивном переходе (Transition to Self) состояния Выполне­ние заказа приостановлено.

11. В поле Event (Событие) введите фразу Добавить к заказу новую позицию.

12. Перейдите на вкладку Detail (Подробно).

13. В поле Guard Condition (Сторожевое Условие) введите Остаются незаполненные позиции.

14. Щелкнув на кнопке ОК, закройте окно спецификации.

 

 

Лабораторная работа 5. Построение диаграммы Активности для варианта использования «Выполнить поставку Заказа».

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

Описание варианта использования.

При оформлении заказа проверяют каждую содержащую­ся в нем позицию, чтобы убедиться в наличии соответствующих товаров на складе. После этого выписываются товары для реализации заказа. Во время выполнения этих процедур одновременно проверяется прохож­дение платежа. Если платеж прошел, и товары имеются на складе, то осуществляется их поставка. Если платеж прошел, но товары на складе отсутствуют, то заказ ставится в ожи­дание. Если платеж не прошел, то заказ аннулируется.

Создание диаграммы Классов

Объедините обнаруженные классы в пакеты. Создайте диаграмму Классов для отображения пакетов, диаграммы Классов, для представления классов в каждом пакете и диаграмму Классов для пред­ставления всех классов варианта использования "Ввести новый заказ".

Этапы выполнения упражнения

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

1. Щелкните правой кнопкой мыши на Логическом представлении браузера.

2. В открывшемся меню выберите пункт New > Package (Создать >Пакет).

3. Назовите новый пакет Сущности.

4. Повторив шаги 1—3, создайте пакеты Границы и Управление.

Создание Главной диаграммы Классов

1. Дважды щелкнув мышью на Главной диаграмме Классов, находящейся под Логическим представлени­ем браузера, откройте ее.

2. Перетащите пакет Сущности из браузера на диаграмму.

3. Перетащите пакеты Границы и Управление из браузера на диаграмму.

Главная диаграмма Классов должна выглядеть, как показано на рис. 7

 

 

Рис. 7 Главная диаграмма классов в логическом представлении браузера.

Создание диаграммы Классов для сценария "Ввести новый заказ" с отображением всех классов

1. Щелкните правой кнопкой мыши на Логическом представлении браузера.

2. В открывшемся меню выберите пункт New > Class Diagram (Создать > Диаграмма Классов).

3. Назовите новую диаграмму Классов: Ввод нового заказа.

4. Дважды щелкнув мышью на этой диаграмме в браузере, откройте ее.

5. Перетащите из браузера все классы (Выбор_заказа, Заказ_деталей, упр_заказами, Заказ, Упр_транзакциями.

Рис. 8 Представление пакетов и классов

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

1. В браузере щелкните правой кнопкой мыши на пакете Границы.

2. В открывшемся меню выберите пункт New > Class Diagram (Создать > Диаграмма Классов).

3. Введите имя новой диаграммы — Main (Главная).

4. Дважды щелкнув мышью на этой диаграмме, откройте ее.

5. Перетащите на нее из браузера классы выбор_заказа и заказ_деталей.

6. Закройте диаграмму.

В браузере щелкните правой кнопкой мыши на пакете Сущности.

8. В открывшемся меню выберите пункт New > Class Diagram (Создать > Диаграмма Классов).

9. Введите имя новой диаграммы — Main (Главная).

10. Дважды щелкнув мышью на этой диаграмме, откройте ее.

11. Перетащите на нее из браузера класс Заказ.

12. Закройте диаграмму

13. В браузере щелкните правой кнопкой мыши на пакете Управление

14. В открывшемся меню выберите пункт New > Class Diagram (Создать > Диаграмма Классов).

15. Введите имя новой диаграммы — Main (Главная).

16. Дважды щелкнув мышью на этой диаграмме, откройте ее.

17. Перетащите на нее из браузера классы Упр_заказами и Упр_транзакциями

18. Закройте диаграмму

 

Постановка проблемы

Для определения атрибутов классов был проанализирован поток событий. В результате к классу Заказ диаграммы Классов были добавлены атрибуты Номер заказа и Имя клиента. Так как в одном заказе можно ука­зать большое количество товаров и у каждого из них имеются свои собственные данные и поведение, было решено моделировать товары как самостоятельные классы, а не как атрибуты класса Заказ.

Этапы выполнения упражнения

Настройка

1. В меню модели выберите пункт Тооls > Options (Инструменты >Параметры).

2. Перейдите на вкладку Diagram.

3. Убедитесь, что флажок Show visibility (Показать видимость) установлен.

4. Убедитесь, что флажок Show stereotyps (Показать стереотипы) установлен.

5. Убедитесь, что флажок Show operation signatures (Показать сигнатуры операций) установлен.

6. Убедитесь, что флажки Show all attributes (Показать все атрибуты) и Show all operations (Пока­зать вое операции) установлены.

7. Убедитесь, что флажки Suppress attributes (Подавить атрибуты) и Suppress operations (Подавить операции) сброшены.

8. Перейдите на вкладку Notation (Нотация).

9. Убедитесь, что флажок Visibility as icons (Отображать пиктограммы) сброшен.

Добавление нового класса

1. Найдите в браузере диаграмму Классов варианта использования "Ввести новый заказ".

2. Дважды щелкнув мышью на диаграмме,откройте ее.

3. Нажмите кнопку С1аss панели инструментов.

4. Щелкните мышью внутри диаграммы, чтобыпоместить туда новый класс.

5. Назовите его Позиц_заказа.

6. Назначьте этому классу стереотипEntity.

7. В браузере перетащите класс в пакет Сущности.

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

1. Щелкните правой кнопкой мыши на классе Заказ.

2. В открывшемся меню выберите пункт New Attribute (Создать атрибут),

3. Введите новый атрибут:

OrderNumber: Integer

4. Нажмите клавишу Enter

5. Введите следующий атрибут:

CustomerName: String.

6. Повторив шаги 4 и 5, добавьте атрибуты:

OrderDate: Date

OrderFillDate: Date

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

7. Щелкните правой кнопкой мыши наклассе Позиц_заказа.

8. В открывшемся меню выберитепункт New Attribute (Создать атрибут).

9. Введите новый атрибут:

ItemID: Integer.

10. НажмитеклавишуEnter.

11. Введите следующий атрибут:

ItemDescription: String.

 

Добавление операций к классу Позиц_заказа

1. Щелкнитеправой кнопкой мыши на классе Позиц_заказа.

2. В открывшемсяменю выберите пункт New Opration (Создать операцию).

3. Введите новуюоперацию:

Создать()

4. Нажмитеклавишу Enter.

5. Введите следующую операцию:

Взять_информацию()

6. Нажмитеклавишу Enter.

7. Введите операцию:

Дать_информацию()

Создать(): Воо1еаn

4. Отредактируйте операцию Взять_информацию:

Взять_информацию (OrderNum: Integer, Customer: String, OrderDate: Date, FillDate: Date): Boolean

5. Отредактируйте операцию Дать_информацию;

Дать_информацию(): String

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

1. Используя браузер или диаграмму Классов, введите следующие сигнатуры операций класса Заказ_деталей:

Открыть(): Boolean

Сохранить заказ(): Boolean

2. Используя браузер или диаграмму Классов, введите сигнатуру операций класса Выбор_заказа:

Создать():Воо1еаn

3. Используя браузер или диаграмму Классов,введите сигнатуру операций класса Упр_заказами:

Сохранить заказ (OrderID: Integer):Воо1еаn

4. Используя браузер или диаграмму Классов, введите сигнатуры операций класса Упр_транзакциями:

Сохранить заказ (OrderID: Integer): Boolean

Сохранить информацию (): Integer

Лабораторная 8. Описание связей между классами

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

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

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

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

Добавим связи к классам, принимающим участие в варианте использования "Ввести новый заказ".

Этапы выполнения упражнения

Настройка

1. Найдите в браузере диаграмму Классов "Ввод нового заказа",

2. Дважды щелкнув на диаграмме, откройте ее.

3. Проверьте, имеется ли в панели инструментов диаграммы кнопка Unidirectional Association (Однонап­равленная ассоциация). Если ее нет, продолжите настройку, выполнив шаги 4 и 5. Если есть, присту­пайте к выполнению самого упражнения.

4. Щелкните правой кнопкой мыши на панели инструментов диаграммы и в открывшемся меню выберите пункт Customize(Настроить),

5. Добавьтена панель кнопку Creates A Unidirectional Association (Создать однонаправленную ассоциа­цию).

Добавление ассоциаций

1. Нажмите кнопку Unidirectional Association панели инструментов.

2. Проведите ассоциацию от класса выбор_заказа к классу заказ_деталей.

3. Повторите шаги 1 и 2, создав ассоциации:

• От класса заказ_деталей к классу упр_заказами

От класса упр_заказами к классу Заказ

• Откласса упр_заказами к классу упр_транзакциями

• От класса упр_транзакциями к классу Заказ

От класса упр_транзакциями к классу Позиц_заказа

От класса Заказ к классу Позиц_заказа

4. Щелкните правой кнопкой мыши на однонаправленной ассоциации между классами выбор_заказа и заказ_деталей класса выбор_заказа.

5. В открывшемся меню выберите пункт Multiplicity > Zero or One (Множественность >- Нуль или один),

6. Щелкните правой кнопкой мыши на другом конце однонаправленной ассоциации.

7. В открывшемся меню выберите пункт Multiplicity > Zero or One (Множественность > Нуль или один),

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

 

Рис. 10 Ассоциации сценария "Ввести новый заказ"

 

 

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

1. Нажмитекнопку Connection (Связь) панели инструментов.

2. Щелкните мышью на процессоре "Сервер базы данных".

3. Проведите линию связи к процессору "Сервер приложения".

4. Повторив шаги 1 — 3, добавьте следующиесвязи;

- От процессора "Сервер приложения" к процессору "Клиентская рабочая станция №1"

- От процессора "Сервер приложения" к процессору "Клиентская рабочая станция №2"

- От процессора "Сервер приложения" к устройству "Принтер"

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

1. Щелкните правой кнопкой мыши на процессоре "Сервер приложения" в браузере.

2. В открывшемся меню выберите пункт New > Process (Создать > Процесс),

3. Введите имя процесса — OrderServerExe.

4. Повторив шаги 1 —- 3, добавьте процессы:

- Процесс OrderclientExe на процессоре "Клиентская рабочая станция №1"

- Процесс ATMClientExe на процессоре "Клиентская рабочая станция №2"

Заключение.

В результате выполнения лабораторных работ обучающийся должен понять последовательность работ при проектировании информационной системы и освоить программную среду Rational Rose. Начинать надо с Use Case диаграммы, остальные диаграммы должны служить декомпозицией вариантов использования первой диаграммы. Логические и физические разделы модели Rose с помощью кодогенерации преобразуются в программный код Delphi. Изменения в модели Rose, путем нажатия нескольких кнопок, сразу соответствующим образом изменяют программный код. Тем самым проиллюстрировано основная идея CASE технологий- автоматизированная поддержка информационной системы на всех этапах ее жизненного цикла.

 

Рекомендуемая литература

1 У.Боггс, М. Богс UML и Rational Rose. Из-во «ЛОРИ», 2000 г., 580 с

 

2. М. Фаулер, К. Скотт UML в кратком изложении. Применение стандартного языка объектного моделирования: Пер. с англ. – М.: Мир, 1999.- 191 с.,с ил.

 

Приложение А. Таблица законов кодогенерации из Rose в Delphi

 

Элемент модели: Category

Наименование св-ва Описание
ClassDiagram The name of diagram to add classes to when reverse engineering. Defaults to "Overview". If "", then no diagram is created.

Элемент модели: Class

Наименование св-ва Описание
Kind One of "", "class" (default), "interface", "dispinterface", "object". The class stereotype is also set to "Interface" if the kind is "interface" or "dispinterface".

Элемент модели: ProcedureType

Наименование св-ва Описание
<<Stereotype>> Delphi Procedure Types are modelled in Rose as classes with a stereotype "ProcType"
ProcedureType_ofObject True or False (default), true if procedure type references a method of an instance object.

 

Элемент модели: Component

Наименование св-ва Описание
ComponentKind One of "unit", "library", "program", or "package". Library or program components describe as projects, package components are ignored (their referenced units are in the RDL view anyway).

 

Элемент модели: Attribute

Наименование св-ва Описание
Published True or False (default). If the attribute is public and published is true, then the attribute gets generated to code in a published visibility section.

Элемент модели: Role

Наименование св-ва Описание
Published True or False (default). If the role is public and published is true, then the role gets generated to code in a published visibility section.
Array_Range If not "" (default), then the role is generated to code as an array with the specified range. If "", then the role's cardinality is used to determine it the role is an array.

Элемент модели: Operation

Наименование св-ва Описание
Published True or False (default). If the operation is public and published is true, then the operation gets generated to code in a published visibility section.
Operation_Abstract True or False (default). If true, then the operation is generated to code with an "abstract" directive.
Operation_Binding One of "" (default), "virtual", "dynamic", "override", "reintroduce". If not "", then the operation is generated to code with the specified binding.
Operation_CallingConvention One of "" (default), "register", "pascal", "cdecl", "stdcall", "safecall". If not "", then the operation is generated to code with the specified calling convention.
Operation_Message "" (default) or a message expression. If not "", then the operation is generated to code with a "message" directive having the specified value.
Operation_Overload True or False (default). If true, then the operation is generated to code with a "overload" directive.
Operation_Kind The kind of the operation. One of "procedure" (default), "function", "constructor", "destructor", "class procedure", "class function".

Элемент модели: Property

Наименование св-ва Описание
<<stereotype>> Delphi properties are modelled in rose as operations with a stereotype of "Property".
Published True or False (default). If the property is public and published is true, then the property gets generated to code in a published visibility section.
Property_Index "" (default) or index expression. If not "", then the property is generated to code with a "index" specifier having the specified value.
Property_Read "" (default) or read expression. If not "", then the property is generated to code with a "read" specifier having the specified value.
Property_ReadOnly True or False (default). If true,then the property is generated to code with a "readonly" specifier..
Property_Write "" (default) or write expression. If not "", then the property is generated to code with a "write" specifier having the specified value.
Property_WriteOnly True or False (default). If true,then the property is generated to code with a "writeonly" specifier.
Property_Stored "" (default) or storage expression. If not "", then the property is generated to code with a "stored" specifier having the specified value.
Property_DefaultSpecifier One of "" (default), "nodefault", or "default". If not "", then the property is generated to code with a default value specifier. If "default", the value is obtained from the Property_DefaultValue model property.
Property_DefaultValue "" (default) or constant expression. The value used for the "default" specifier.
Property_Implements "" (default) or implements expression. If not "", then the property is generated to code with a "implements" specifier having the specified value.
Property_IsDefaultProperty True or False (default). If true, then the property is generated to code with a "default" property directive. Only relevant for array properties.

Элемент модели: Parameter

Наименование св-ва Описание
Mode One of "" (default), "const", "var", "out". If not "", then the parameter is generated to code with the specified mode.

 

Приложение Б. Модели кодогенерации при настройке по типу Default

 

Type SampleClass1 = class (BaseClass, SampleInterface) {...} end;  
type SampleClass2 = class private AnAttribute: Integer; ARole: SupplierClass1; Public procedure AnOperation (arg: Integer); property AProperty: Integer index 2 read AnAttribute write AnOperation; end; Property specifiers are stored in the code generation properties of the associated rose operation.  
type SampleClass3 = class private ArrayRole1: array of SupplierClass2; ArrayRole2: array [1..10] of SupplierClass5; ArrayRole3: array [SampleRange] of SupplierClass3; ArrayRole4: TItems; end; ArrayRole3 range 'SampleRange' is stored in the Array_Range code gen property. To specify your own collection type, instead of using arrays, add a ':' and the collection type to the role name.
type SampleRecord = record attr1: Integer; attr2: Real; end;
type SampleEnum = (value1, value2, value3);
type ProcedureTypeSample = function(arg: Integer): Integer; A procedure type maps to a Rose class, with a ProcType stereotype, and a single operation 'signature' which represents the procedure type signature
type SampleRange = 1..10; A subrange is represented as a Rose class with 'Range' stereotype, and 2 attributes named Low and High. The initial value of these attributes are the low and high values of the range
type TOldType = class end;   type SampleTypeId1 = TOldType; type SampleTypeId2 = Integer; A type id is represented as a Rose class with a 'TypeId' stereotype. If the type being renamed is a standard delphi type (such as Integer) an attribute is used to model this type. Otherwise, an inheritance relationship is used.
type SampleClassRef = class of TObject;   type SamplePointer = ^TOtherType;   type SampleFile = file of Integer;   type SampleArray = array of array of Integer; Delphi pointer types, class references, array types, set types, and file types are represented as Rose classes with stereotypes. If the delphi type references another user-defined type, this is shown with a dependency. If the delphi type references a basic delphi type (Integer) or is complex (i.e. nested arrays) the reference is modeled with an attribute.
Unit SampleUnit;   interface   type SampleClass1 = class {…} end;   implementation end; A unit maps to a component and a category. Its member classes are the component’s assigned classes.
       

 

Приложение В Результаты кодогенерации проекта в Delphi.

 

Модуль NewProect.dpr (Корневая папка)

program NewProject;

uses

OrderClientExe in 'OrderClientExe.pas',

OrderServerExe in 'OrderServerExe.pas',

OrderDetail_ in 'Baundary\OrderDetail_.pas',

OrderOptions_ in 'Baundary\OrderOptions_.pas',

TransactionMgr_ in 'Control\TransactionMgr_.pas',

OrderMgr_ in 'Control\OrderMgr_.pas',

Order_ in 'Entity\Order_.pas',

OrderItem_ in 'Entity\OrderItem_.pas';

 

begin

end.

Модуль OrderDetail_.pas (Папка Baundary)

unit OrderDetail;

interface

uses

OrderMgr;

var theOderMgr: OderMgr;

procedure Open;

procedure SubmitinfoXX;

procedure Save;

 

implementation

procedure Open;

begin

end;

procedure SubmitinfoXX;

begin

end;

 

Модуль OrderOptions_.pas (Папка Baundary)

 

unit OrderOptions_;

interface

uses

OrderDetail_;

type

OderOptions = class;

OderOptions = class

public

theOrderDetail: OrderDetail;

procedure Create;

end;

implementation

procedure OderOptions.Create;

begin

end;

end.

 

Модуль OrderMgr_.pas (Папка Control)

 

unit OrderMgr;

interface

uses

Order,

TransactionMgr;

type

OderMgr = class;

OderMgr = class

public

theOrderCollection: array of Order;

theTransactionMgr: TransactionMgr;

procedure SaveOrder;

end;

implementation

procedure OderMgr.SaveOrder;

begin

end;

 

end.

 

Модуль TransactionMgr _.pas (Папка Control)

 

unit TransactionMgr;

interface

uses

Order,

OrderItem;

var theOrderCollection: array of Order;

var theOrderItemCollection: array of OrderItem;

procedure SaveOrder;

procedure CommitXX;

implementation

procedure SaveOrder;

begin

end;

procedure CommitXX;

begin

end;

end.

 

Модуль Order_.pas (Папка Entity)

unit Order_;

interface

uses

OrderItem_;

type

Order = class;

Order = class

public

theOrderItemCollection: array of OrderItem;

procedure Create;

procedure SetInfo;

procedure GetInfo;

end;

implementation

procedure Order.Create;

begin

end;

procedure Order.SetInfo;

begin

end;

procedure Order.GetInfo;

begin

end;

end.

 

Модуль OrderItem_.pas (Папка Entity)

 

unit OrderItem_;

interface

type

OrderItem = class;

OrderItem = class

public

procedure GetInfo;

procedure Create;

procedure SetInfo;

end;

implementation

procedure OrderItem.GetInfo;

begin

end;

procedure OrderItem.Create;

begin

end;

procedure OrderItem.SetInfo;

begin

end;

end.

 

Модуль OrderClientExe.pas (Корневая папка)

 

unit OrderClientExe;

interface

implementation

end.

 

Модуль OrderServerExe.pas (Корневая папка)

 

unit OrderServerExe;

interface

implementation

end.

 

Постановка задачи (описание предметной области).

Магазин осуществляет продажу товаров клиенту путем оформления документов «Заказ». Директор магазина - Антон, принял решение автоматизировать документооборот продаж товара и пригласил для выполнения работ программиста Павла. Поговорив с Антоном, в соответствие с концепцией жизненного цикла (ЖЦ) программы Павел приступил к описанию бизнес процессов, сопровождающих продажу товара. Взяв за основу язык UML, он начал с построения контекстной диаграммы процессов- Use Case diagram. Диаграмма должна ответить на вопрос - «что должно делаться в системе и кто участник этих процессов».

Лабораторная работа 1. Создание диаграммы вариантов использования и действующих лиц.

Окончательный вид диаграммы показан на рис. 1.

Рис. 1 Диаграмма вариантов использования задачи о заказе товара.

 

 

Этапы выполнения упражнения.

1. Дважды щелкнув мышью на Главной диаграмме Вариантов Использования (Main) в браузере, откройте ее.

2.С помощью кнопки Use Case (Вариант использования) панели инструментов поместите на диаграмму новый вариант использования. Назовите его "Ввести новый заказ".

3. Повторив этапы 2 и 3, поместите на диаграмму остальные варианты использования:

Изменить существующий заказ

Напечатать инвентарную опись

Обновить инвентарную опись

Оформить заказ

Отклонить заказ

Выполнить поставку заказа

4. С помощью кнопки Actor (Действующее лицо) панели инструментов поместите на диаграмму новое действующее лицо.

5. Назовите его " Продавец ".

6. Повторив шаги 4 и 5, поместите на диаграмму остальных действующих лиц:

Управляющий магазином

Клерк магазина

Бухгалтерская система

7. Создание абстрактного варианта использования (не требующего дальнейшей декомпозиции).

Щелкните правой кнопкой мыши на варианте использования " Отклонить заказ " на диаграмме.

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

Установите флажок Abstract (Абстрактный), чтобы сделать этот вариант использования абстрактным.

Добавление ассоциаций

1. С помощью кнопки Unidirectional Association (Однонаправленная ассоциация) панели инструменте нарисуйте ассоциацию между действующим лицом Продавец и вариантом использования " Ввести заказ ".

2. Повторив шаг 1, поместите на диаграмму остальные ассоциации, согласно рис. 1.

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

С помощью кнопки Generalization (Обобщение) панели инструментов нарисуйте связь между вариантом использования " Отклонить заказ " и вариантом использования " Оформить заказ ". Стрелка должна быть направлена от первого варианта использования ко второму. Связь расширения означает, что вариант использования " Отклонить заказ " при необходимости дополняет функциональные возможности варианта использования " Оформить заказ ".

Щелкните правой кнопкой мыши на новой связи между вариантами использования " Отклонить заказ " и " Оформить заказ ".

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

В раскрывающемся списке стереотипов введите слово extends (расширение), затем нажмите ОК.

Надпись «extends» появится на линии данной связи.

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

Выделите в браузере вариант использования " Ввести новый заказ ".

В окне документации введите следующее описание: " Этот вариант использования дает клиенту возможность ввести новый заказ в систему".

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


Поделиться с друзьями:

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.346 с.