Объектно–ориентированная модель информационной подсистемы 'Трудоустройство'
Содержание
ВВЕДЕНИЕ
КРАТКАЯ
ХАРАКТЕРИСТИКА ПРЕДМЕТНОЙ ОБЛАСТИ
СОЗДАНИЕ
ДИАГРАММЫ ПРЕЦЕДЕНТОВ
СОЗДАНИЕ
ДИАГРАММЫ ПОСЛЕДОВАТЕЛЬНОСТИ
СОЗДАНИЕ
ДИАГРАММЫ СОТРУДНИЧЕСТВА
СОЗДАНИЕ
ДИАГРАММЫ КЛАССОВ
6 ДОБАВЛЕНИЕ
ДЕТАЛЕЙ К ОПИСАНИЯМ ОПЕРАЦИЙ И ОПРЕДЕЛЕНИЕ АТРИБУТОВ КЛАССОВ. ДОБАВЛЕНИЕ СВЯЗЕЙ
МЕЖДУ КЛАССАМИ
СОЗДАНИЕ
ДИАГРАММЫ СОСТОЯНИЙ ДЛЯ КЛАССОВ И ДИАГРАММЫ КОМПОНЕНТОВ
8 СОЗДАНИЕ
ДИАГРАММЫ РАЗМЕЩЕНИЯ
ГЕНЕРАЦИЯ
ПРОГРАММНОГО КОДА С++
ЗАКЛЮЧЕНИЕ3
БИБЛИОГРАФИЧЕСКИЙ
СПИСОК
Приложение А.
Листинг кода приложения на языке С++
ВВЕДЕНИЕ
Унифицированный
язык моделирования (UML, Unified Modeling Language
<#"511910.files/image001.gif">
Рисунок 2.1 - Диаграмма прецедентов
Для создания диаграммы прецедентов:
1. Запустим интегрированную среду разработки Rational Rose 2000.
2. Создадим новую диаграмму (Main) Use case:
- в браузере щелкнем на значке «+» рядом с представлением Use case,
чтобы открыть представление;
- дважды щелкнув на главной диаграмме, откроем её.
3. С помощью кнопки Use Case (вариант использования) панели инструментов
поместим на диаграмму новый вариант использования.
4. Назовем его «Подача заявки на работу».
. Повторив пункты 3 и 4, поместим на диаграмму остальные варианты
использования:
- Изменить заявку;
- Запрос в базу данных;
Обработать заявку;
Отклонить заявку;
6. С помощью кнопки Actor (действующее лицо) панели инструментов
поместим на диаграмму новое действующее лицо.
. Назовем его «Клиент».
8. Повторив пункты 6 и 7, поместим на диаграмму действующих лиц и
назовем их:
- Служба приема.
- Администратор.
9. Создадим абстрактный Вариант Использования «Backorder item»
(«Отклонить заказ»).
10. Добавим ассоциацию между действующим лицом «Клиент» и вариантом
использования «Подача заявки на работу».
11. Повторим пункт 10 для остальных действующих лиц.
12. Добавим связи расширения между вариантом использования «Отклонить
заявку» и вариантом использования «Обработать заявку»:
3 Создание диаграммы последовательности
Это диаграмма, на которой изображено упорядоченное во времени
взаимодействие объектов. На ней изображаются участвующие во взаимодействии
объекты и последовательность сообщений, которыми они обмениваются. Одно из
основных назначений данной диаграммы - отобразить последовательность действий
для части или целого варианта использования (use case).
Рисунок 3.1 - Диаграмма последовательности
Объект - это нечто, заключающее в себе некоторые данные и поведение.
Класс - это некая сущность, представляющая собой как бы черновик объекта;
определяет данные и поведение, которыми должен обладать объект.
На диаграмме приведены следующие объекты соответствующих классов:
- выбор варианта заявки - объект класса OrederForm;
- анкета заявки - объект класса Form - конкретной формы ввода данных о клиенте;
администратор - объект управляющего класса ADM;
- заявка №1234 - объект класса Claim;
- управляющий транзакциями - объект класса Transaction;
Для создания диаграммы последовательности были совершены следующие
действия:
1. Создаем диаграмму последовательности: на панели задач выбираем
Interaction Diagram, затем тип диаграммы: Sequence.
2. Добавляем на созданную диаграмму действующие лица и объекты с
помощью соответствующих кнопок панели инструментов.
. Добавляем сообщения на диаграмму с помощью кнопки Object Message
(Сообщение объекта).
. Выполняем соотнесение объектов с классами с помощью меню каждого
объекта Open Specification (Открыть спецификацию).
4 Создание диаграммы сотрудничества
На данной диаграмме экземпляры объектов изображаются в виде пиктограмм,
также как на диаграмме последовательности стрелки обозначают сообщения, однако
их временная последовательность указывается посредством нумерации сообщений.
Можно сказать, что диаграммы кооперации (сотрудничества) и последовательности
очень похожи, они несут одну и ту же информацию, отличаются они лишь
представлением информации.
Рисунок 4.1 - Диаграмма сотрудничества
Для создания диаграммы сотрудничества необходимо:
1. На панели задач выбираем Interaction Diagram, затем тип диаграммы:
Collaboration.
2. Добавляем действующее лицо - Клиент и используемые объекты:
- выбор варианта заявки ( класс - OrederForm);
- анкета (класс Form);
администратор (класс ADM);
заявка №1234 (класс Claim);
управляющий транзакцией (класс - Transaction);
3. Добавляем на диаграмму следующие сообщения, соотнесенные с операциями:
- Create() - создать новую форму для ввода данных о клиенте.
- Open() - открыть анкету для ввода данных о клиенте.
- Enter() - ввести данные о клиенте.
- Save() - нажать кнопку сохранить на форме.
- SaveForm() - послать запрос в БД на сохранение информации.
- Save in BD() -
сохранение записи в базе данных.
5 Создание диаграммы классов
Диаграмма классов по праву занимает одно из центральных мест не только в
UML, но и в объектно-ориентированном подходе вообще. Данная диаграмма включает
в себя большой набор понятий моделирования. Диаграмма классов описывает типы
объектов системы и различные статические отношения, которые существуют между
ними. Существуют два основных вида статических отношений, это ассоциации и
подтипы. На диаграммах классов также изображаются атрибуты классов, операции
классов и ограничения, которые накладываются на связи между объектами.
Рисунок 5.1 - Главная диаграмма классов
Рисунок 5.2 - Диаграмма классов.
Рисунок 5.3 - Стереотипы классов.
Граничные классы (boundary classes) - это классы,
которые расположены на границе системы и окружающей среды. Они включают все
формы, отчеты, интерфейсы с аппаратурой (такой, как принтеры или сканеры) и
интерфейсы с другими системами. В пакет «Boundaries» были добавлены следующие классы:
класс Form (анкета клиента) и класс OrederForm (выбор варианта заявки).
Рисунок 5.4 - Главная диаграмма класса пакета “Boundaries”
Классы сущности (entity classes) -
отражают основные понятия (абстракции) предметной области и, как правило,
содержат хранимую информацию. В данный пакет были добавлен класс Claim.
Рисунок 5.5 - Главная диаграмма класса пакета “Entities”
Управляющие классы (control classes) отвечают за координацию действий других классов.
Обычно у каждого варианта использования имеется один управляющий класс,
контролирующий последовательность событий этого варианта использования. В
данном проекте данную функцию выполняет класс Control, а также ControlTranz.
Рисунок 5.5 - Главная диаграмма класса пакета “Control”
Создание диаграммы классов:
. Создадим пакеты:
а) щелкнем правой кнопкой мыши на логическом представлении браузера;
б) в открывшемся меню выберите пункт New >Package;
в) назовем новый пакет Entities;
г) повторим пункты а - б и создадим пакеты Boundaries и Control.
. Создадим диаграмму классов для сценария AddNewForm:
а) щелкнем правой кнопкой мыши на логическом представлении браузера;
б) в открывшемся меню выберите пункт New >Class Diagram;
в) назовем её AddNewForm;
г) дважды щелкнув мышью на этой диаграмме в браузере, откроем ее;
д) перетащим из браузера на диаграмму классы OrederForm, Form, Claim,
ADM и Transaction;
Полученная диаграмма классов показана на рисунке 5.2.
. Добавим стереотипы к классам:
а) щелкнем правой кнопкой мыши на классе OrederForm диаграммы;
б) в открывшемся меню выберем пункт Open Specification;
в) в поле стереотипа выберем Boundary;
г) нажмем кнопку Apply и кнопку OK;
. Действуя аналогично добавим стереотипы к классам как показано на
рисунке 5.3.
. Объединим классы в пакеты:
а) в браузере перетащим класс OrederForm на пакет Boundaries;
б) перетащим класс Form
на пакет Boundaries;
в) перетащим классы ADM и
Transaction на пакет Control;
г) перетащим класс Claim
на пакет Entities.
. Добавим диаграммы классов к каждому пакету:
а) в браузере щелкнем правой кнопкой мыши на пакете Boundaries;
б) в открывшемся меню выберите пункт New >Class Diagram.
в) введем имя новой диаграммы Main;
г) откроем её;
д) перетащим на нее из браузера классы OrederForm и Form.
Главная диаграмма классов пакета Boundaries представлена на рисунке 5.4.
. Действуя аналогично добавим диаграммы классов к оставшимся пакетам. Их
главные диаграммы представлены соответственно на рисунках 5.5 и 5.6.
6 ДОБАВЛЕНИЕ
ДЕТАЛЕЙ К ОПИСАНИЯМ ОПЕРАЦИЙ И ОПРЕДЕЛЕНИЕ АТРИБУТОВ КЛАССОВ
Атрибут - это элемент информации, связанный с классом. Они содержатся
внутри класса, поэтому они скрыты от других классов. В связи с этим иногда
требуется указать, какие классы имеют право читать и изменять атрибуты. Это
свойство называется видимостью атрибута (attribute visibility). Для определения атрибутов и
операций классов было произведено обращение к потоку событий. В результате к
классам были добавлены дополнительные атрибуты и связи между классами (рисунок
6.1).
Рисунок 6.1 - Диаграмма классов для сценария «Составление заявки»
На данной стадии был создан новый класс FormItem с присвоенным ему стереотипом Entity и следующими
атрибутами:
§ ItemID: Integer;
§ IDescription: String.
И операциями:
§ Create ( ) : Boolean;
§ SetInfo (ID : Integer = 0) : Boolean.
Добавляем ассоциации:
а) нажимаем кнопку Unidirectional Association;
б) проводим ассоциацию от класса OrderForm к классу Form;
в) действуя аналогично, создаем ассоциации как показано на рисунке 6.2.
г) щелкнем правой кнопкой мыши на однонаправленной ассоциации между
классами OrderForm и Form со стороны класса OrderForm;
д) в открывшемся меню выберим пункт Multiplicity >Zero or One;
е) щелкнем правой кнопкой мыши на другом конце однонаправленной
ассоциации;
ж) в открывшемся меню выберите пункт Multiplicity >Zero or One;
з) действуя аналогично, добавим на диаграмму значения множественности для
остальных ассоциаций, как показано на рисунке 6.3.
Рисунок 6.2 - Добавление связей между классами.
7. СОЗДАНИЕ
ДИАГРАММЫ СОСТОЯНИЙ ДЛЯ КЛАССОВ И ДИАГРАММЫ КОМПОНЕНТОВ
Диаграммы состояний являются хорошо известным методом описания поведения
систем. Они изображают все возможные состояния, в которых может находиться
конкретный объект, а также изменения состояния объекта, которые происходят в
результате влияния некоторых событий на этот объект. В большинстве
объектно-ориентированных методов диаграммы состояний строятся для единственного
класса, чтобы показать динамику поведения единственного объекта.
Рисунок 7.1 - Диаграмма состояний
Создание диаграммы:
1. Найдем в браузере класс Order.
2. Щелкнем на классе правой кнопкой мыши и в открывшемся меню
укажим пункт New >Statechart Diagram. Назовем её “State”. Двойной щелчок на имени откроет диаграмму.
. Добавим начальное и конечное состояние на диаграмму:
. Выполним описание состояний на диаграмме:
Диаграмма компонентов отображает организацию компонентов и зависимости
между ними. Компонент - это физический элемент реализации (компоненты исходного
кода, бинарного кода, выполняемые компоненты) с четко определенным интерфейсом,
предназначенный для использования в качестве заменяемой части системы. Каждый
компонент представляет собой реализацию некоторых классов системы.
Рисунок 7.2 - Зависимость между пакетами
Построение диаграммы компонентов:
1. Создаем пакеты для компонентов: New->Package (Создать пакет) и присваиваем им названия
соответственно: Entities, Boundaries и Control.
2. Отображаем зависимости между созданными пакетами с помощью
кнопки Dependecy (Зависимость) панели инструментов:
от пакета Boundaries к пакету Control; от пакета Control к пакету Entities (рисунок 7.2).
3. Добавляем компоненты к пакетам с помощью кнопок Package
Specefication (Спецификация пакета) и Package Body (Тело пакета) панели
инструментов и аналогично отображаем зависимости:
4. Создаем диаграмму компонентов системы: New->Component Diagramm и выполняем размещение компонентов
на диаграмме компонентов.
. Помещаем на диаграмму компонентов спецификацию задачи ZakazClientExe и ZakazServerExe с помощью кнопки Task Specification
(Спецификация задачи) панели инструментов.
6. Выполняя соотнесение классов с компонентами, как показано на
рисунке 7.3, получаем диаграмму компонентов.
Рисунок 7.3 - Диаграмма компонентов
8. СОЗДАНИЕ
ДИАГРАММЫ РАЗМЕЩЕНИЯ
Диаграмма размещения отражает физические взаимосвязи между программными и
аппаратными компонентами разрабатываемой системы. Одним из существенных понятий
данного вида диаграмм является понятие узел. Узел представляет собой некоторый
тип вычислительного устройства, как правило, самостоятельную часть аппаратуры.
Рисунок 8.1 - Диаграмма размещения
Создание диаграммы размещения:
. Добавьте узлы к диаграмме