- •Р.А. Файзрахманов, А.В. Архипов
- •ПРОЕКТИРОВАНИЕ АВТОМАТИЗИРОВАННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ НА ОСНОВЕ ОБЪЕКТНО ОРИЕНТИРОВАННОГО ПОДХОДА
- •4.3. Подведение итогов
- •4.4. Контрольные вопросы
- •4.5. Контрольные задачи и упражнения
- •5. ДИАГРАММА КЛАССОВ
- •5.1. Теоретическая часть
- •5.2. Реализация в Rational Rose
- •5.5. Контрольные задачи и упражнения
- •6.1. Теоретическая часть
- •6.2. Реализация в Rational Rose
- •6.3. Подведение итогов
- •6.4. Контрольные вопросы
- •6.5. Контрольная задача
- •7. ДИАГРАММА ПОСЛЕДОВАТЕЛЬНОСТЕЙ
- •7.1. Теоретическая часть
- •7.2. Реализация в Rational Rose
- •7.3. Подведение итогов
- •7.4. Контрольные вопросы
- •7.5. Контрольные задачи
- •8. ДИАГРАММА СОТРУДНИЧЕСТВА
- •8.1. Теоретическая часть
- •8.2. Реализация в Rational Rose
- •8.5. Контрольные задачи
- •9. ДИАГРАММА СОСТОЯНИЙ
- •9.1. Теоретическая часть
- •9.3. Подведение итогов
- •9.4. Контрольные вопросы
- •9.5. Контрольные задачи
- •10. ДИАГРАММА ДЕЯТЕЛЬНОСТЕЙ
- •10.1. Теоретическая часть
- •10.3. Подведение итогов
- •10.4. Контрольные вопросы
- •11. ДИАГРАММА КОМПОНЕНТОВ
- •11.1. Теоретическая часть
- •11.4. Контрольные вопросы
- •11.5. Контрольные задачи
- •12.3. Подведение итогов
- •12.4. Контрольные вопросы
- •12.5. Контрольная задача
- •13. ГЕНЕРАЦИЯ КОДА
- •13.1. Алгоритм получения исходного кода C++
- •13.2. Задания для самостоятельного выполнения
- •ЗАКЛЮЧЕНИЕ
- •СПИСОК ЛИТЕРАТУРЫ
- •ИСПОЛЬЗОВАНИЕ МОДУЛЯ «RATIONAL ROSE C++ ANALYZER» ДЛЯ ОБРАТНОГО ВОССТАНОВЛЕНИЯ МОДЕЛИ ПО ИСХОДНОМУ КОДУ
- •РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С ИСПОЛЬЗОВАНИЕМ UML
- •1. Разработка диаграммы прецедентов
- •2. Разработка диаграммы классов
- •3. Разработка диаграмм взаимодействия
- •4. Разработка диаграммы состояний
- •5. Разработка диаграммы деятельности
- •9. Разработка приложения
- •Контрольные вопросы
- •МОДЕЛЬ РАБОТЫ ПРЕДПРИЯТИЯ ОПТОВОЙ ТОРГОВЛИ. РАЗРАБОТКА АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ
- •ОГЛАВЛЕНИЕ
- •1. Деятельность и структура предприятия
- •2.1. Реализация продукции со склада
- •2.2. Возврат товара клиентом
- •2.3. Закупка продукции
- •3.1. Общие требования и принципы построения системы
- •3.2. Обеспечение связи офис - склад
- •3.3. Требования к персоналу
- •4. Диаграмма прецедентов
- •4.1. Реализация продукции со склада
- •5. Диаграмма классов
- •5.2. Контрагенты предприятия оптовой торговли
- •5.3. Продукция предприятия оптовой торговли
- •5.4. Заказ продукции
- •5.5. Накладная на получение товара
- •6. Диаграмма взаимодействия
- •12. Разработка приложения
- •ПРОЕКТИРОВАНИЕ АВТОМАТИЗИРОВАННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ НА ОСНОВЕ ОБЪЕКТНО ОРИЕНТИРОВАННОГО ПОДХОДА
5. Диаграмма классов
Прежде чем перейти к построению диаграммы классов, необходимо определить словарь предметной области. Источником в этом случае мо гут выступать спецификации описанных прецедентов. Так, например, в результате исследования спецификаций были выявлены следующие классы: предприятие, склад, клиент, продукт, менеджер, бухгалтер, логист, экспедитор, кладовщик, счет, накладная, план закупок и др.
Конечным результатом нашей работы будет являться создание программного кода системы управления складом, поэтому названия классов, атрибутов, операций и т.д., будем записывать с использова нием английского языка.
В общем случае из диаграммы классов можно получить про граммный текст для множества различных языков программирования. Мы будем ориентироваться на язык C++. В этом случае для каждого построенного класса необходимо создать конструктор, деструктор, а для каждого атрибута класса методы чтения (get) и установки атри бутов (set). Все эти функции являются стандартными и создаются ав томатически системой Rational Rose в том случае, даже если они явно не указаны. Поэтому при описании классов стандартные операции по чтению/записи атрибутов, а также конструкторы/деструкторы указы вать не будем. Автоматическая генерация методов get/set может быть отключена на закладке «C++» окна спецификации атрибутов (позиции
GenerateGetOperation, GenerateSetOperatiori).
5.1. Определение структуры предприятия
оптовой торговли
Начнем построение диаграмм классов с определения структуры нашего предприятия.
Наиболее общим классом, характеризующим предприятие, являет ся класс «Company» (предприятие). Данный класс содержит атрибуты:
-name (название предприятия);
-INN (ИНН);
-juridicalAddress (юридический адрес);
-postAddres (почтовый адрес);
-phoneNumber (телефонный номер);
-faxNumber (номер факса).
Предприятие структурно состоит из складов и офисов, послед ние, в свою очередь, состоят из отделов. Соответствующая диаграм ма классов представлена на рис. П3.5.
Рис. П3.5. Структура предприятия оптовой торговли
Помимо класса «Company» на диаграмме классов, изображенной на рис. П3.5, представлены классы: «Warehouse» (склад), «Office» (офис) и «Department» (отдел).
Перечисленные новые классы содержат атрибуты:
-name (название склада/офиса/отдела);
-address (фактический адрес склада/офиса);
-phoneNumber (основной телефонный номер склада/отдела).
Из диаграммы видно, что предприятие должно иметь как мини мум один склад и один офис, состоящий не менее чем из одного от дела. Диаграмма была построена с учетом того, что мы не подразде ляем склад на какие-либо отделы, в отличие от офиса.
Менеджер, бухгалтер, кладовщик и другие работники склада и офиса являются сотрудниками предприятия. Каждый сотрудник предприятия характеризуется фамилией, именем, отчеством, табель ным номером, датой рождения и другой ценной информацией. Все эти данные объединяются в классе «Employee» (сотрудник). Список атрибутов данного класса следующий:
-tblNumber (табельный номер);
-lastName (фамилия);
-fisrtName (имя);
-secondName (отчество);
-birthday (дата рождения);
-sex (пол);
-inDate (дата приема на работу);
-phoneNumber (номер телефона);
-eMail (адрес электронной почты).
Следующие два класса, которые будут добавлены в модель, на следуют структуру и поведение класса «Employee» и называются «WarehouseWorker» (работник склада) и «OfficeWorker» (работник офиса) (рис. П3.6). Данные классы содержат по одному атрибуту. Класс «WarehouseWorker» содержит атрибут булева типа «геsponsPerson» (материально ответственное лицо). В случае установки этого атрибута в истину экземпляр класса будет рассматриваться как материально ответственное лицо. Класс «OfficeWorker» содержит ат рибут «roomNumber» (номер комнаты), который отражает номер комнаты, занимаемой сотрудником офиса.
Рис. П3.6. Сотрудник предприятия
Работник склада работает на складе, а работник офиса, соответ ственно, в отделе офиса. Таким образом, мы можем построить от дельную диаграмму классов и отобразить на ней ассоциативные от ношения между классом «WarehouseWorker» и «Warehouse», классом «OfficeWorker» и «Department» (рис. П3.7).
Рис. П3.7. Отношения ассоциации
Теперь настало время определить такие классы, как «Manager» (ме неджер), «Accountant» (бухгалтер), «Storekeeper» (кладовщик) и т.п. Эти классы определяют конкретную роль сотрудника в системе и на пред приятии в целом. Все эти классы наследуют свою структуру от класса «QfficeWorker» либо от класса «WarehouseWorker» (рис. П3.8).
Рис. П3.8. Отношения наследования
Большинство сотрудников предприятия являются пользователя ми системы управления складом. Пользователь системы - это от дельный класс, содержащий информацию о регистрации пользовате ля в системе и об уровне его доступа к определенным операциям и объектам системы. Назовем этот класс «SystemUser».
1..П
Warehouse
%name : char* ^address : charx %phoneNumber : char’ %faxNumber: char*
Company
%name : char* fclNN : float
%juridicalAddress : char* %postAddress : charx %phoneNumber: charx 4bfaxNumber : charx
Employee
%tblNumber: int ^astName : char* ^firstName : char* ^secondName : char* ^birthday : charx %sex : int
^inDate : char* %phoneNumber: charx %e№il
1..n Offioe Црпате : charx ^address : charx
T
1..n
Department
%name : charx ^pphoneNumber: char’ %faxNumber : charx
T
1..n |
I |
WarehouseWorker |
1..n |
OfficeWorker |
|
%responsPerson : int |
ЦртоотNumber: char* |
I
X
Storekeeper |
Guardian |
Driver |
Director |
Manager |
Accountant |
Legist |
|
|
SystemUser |
0..1 |
|
|
|
|
|
|
|
|
|
|
|
|
^name : charx |
0..1 |
|
|
|
|
|
^password : charx |
|
|
|
|
|
|
0..1 %accessLevel ; int |
0..1 |
|
|
|
^registerO
Рис. П3.10. Структура предприятия и сотрудники
Класс содержит следующие атрибуты и операции:
-паше (уникальное имя пользователя системы);
-password (пароль пользователя системы);
-accessLevel (уровень доступа);
-register() (операция регистрации пользователя).
Данный класс ассоциативно связан с такими классами, как «Store' keeper», «Manager» и др. (рис. П3.9).