LH
охлаждается. Поэтому, при движении цилиндров вправо, внешний газ у наружной поверхности правого большого цилиндра будет охлаждаться, совершая работу по перемещению цилиндров. То есть, работа по перемещению цилиндров была совершена только за счёт внутренней энергии газа. Этот охлаждённый газ восстановит свою внутреннюю энергию за счёт тепла окружающего газа и может снова совершать работу. Получился клас-
сический вечный двигатель, работающий только за счёт охлаждения окружающей среды. Причём этот двигатель, как и "демон Андреева", не нарушают ни один физический закон.
Литература:
1. Сивухин Д. В. Общий курс физики. Т. 2. ФИЗМАТЛИТ. 2005 г.
Salikov Valentine A..
Scd, associate professor National University of O. Gonchar, Ukraine, c. Dnepr
Саликов Валентин Александрович
канд. техн. наук, доцент кафедры автоматизированных систем обработки информации национального университета им. О. Гончара,
Украина, г. Днепр
DESIGNING INFORMATION SYSTEMS FOR BLAST-FURNACE DEPARTMENT WITH POWERDESIGNER
ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ ДОМЕННОГО ЦЕХА С POWER
DESIGNER
Аннотация. Рассмотрено применение PowerDesigner при прямом проектировании (Forward Engineering) системы. На основе полученной бизнес-модели доменного цеха разработаны диаграмма UseCase и спецификации требований. Созданы классы UML и сгенерированы концептуальная, логическая и физическая модели данных. Получен SQL-скрипт базы данных доменного цеха
Ключевые слова: PowerDesigner, модель данных, доменный цех, бизнес-модель, UseCase, спецификация, классы UML, атрибуты, SQL- скрипт
PowerDesigner компании Sybase реализует объектно-ориентированную методологию на основе стандарта UML и предназначен для моделирования данных. В книге [1], сделавшей доступным PowerDesigner для русскоязычных читателей, обстоятельно рассмотрены вопросы обратного проектирования (Revers Engineering) систем от имеющейся в наличии базы данных (БД). Покажем, как использовать PowerDesigner при прямом (Forward Engineering) проектировании БД информационных систем (ИС) на основе бизнес-модели BPMN .
PowerDesigner можно эффективно использовать при создании ИС как на фазе анализа требований, так и на фазе проектирования систем [2]. Рассмотрим задачу создания ИС для доменного цеха металлургического комбината. Данный цех
производит горячее литье передельного чугуна для потребностей комбината или товарный чугун (литейный или специальный) для внешних заказчиков. Доменное производство является существенно ресурсо- и энергозатратным. В интересах заказчика ИС необходимо взять под контроль расходы сырья (руды, окатышей, агломерата, металлолома, флюсов, кокса) и энергоресурсов (электроэнергии, технической воды, горячего воздуха, природного газа, кислорода). Для создания ИС, отвечающей интересам заказчика, требуется изучить суть деятельности доменного цеха и отобразить её в виде бизнес-модели. Эта модель должна отображать не технологию выплавки чугуна, а те элементы деятельности цеха, сведения о которых представляют интерес для заказчика.
ti » S 02
eg
2 to ô a>
2 H hd ^ о
3
rt
№ «
о о
I—I H
О я
Q ,_,
К»
H
о та
а>
н «
Sc F
1
U1 ft (л
02 м
о <@
g I
en Ё го го о
S н
§ §
§ I
та H О ç
3 s
№ s
to о g^
02 О
s:
ï О РЧ
a
О/ ¡SO
¡S О
CS
Cl.'
I
m ¡S ¡S
о
О -s
m §
CÜ CÜ
s:
m g
§
О
Cl.' g
s:
' « Inclus iwe(OR)» Inclus ive(OR)3
0
1
о'
m se >!
>5. S*
P
a
bn
О
£
s:
r
S"
bn i
a
a ^
m
a §
rs ^
s:
3
*
to
.oo
to О
1 i
02 Ol
«Inclus ive(OR)» lnclusive(OR) 6
Ul
тельные компоненты для включения в состав шихты или доменной продувки. Полученная диаграмма может служить базой для разработки ведущей диаграммы UML - диаграммы вариантов использования (UseCase), управляющей всем процессом разработки [4]. Для создания этой диаграммы выделим из числа работников цеха тех, кто будет допущен к формированию и извлечению информации на рабочей станции (РС) нашей ИС - это начальник смены, мастер домны, сотрудники физико-химической лаборатории и оператор РС. Указанные субъекты становятся действующими лицами (actor) диаграммы, определяющей цели и задачи разработки ИС. Для формирования UseCase будем опираться на представления бизнес-модели на рис.1. В результате этого получим диаграмму UseCase на рис.2. Для завершения этой разработки все варианты использования необходимо специфицировать, т.е. определить содержание и формы представления информации каждого UseCase. Например, для варианта использования "Приготовить шихту" можно записать: "Состав шихты зависит от сорта выплавляемого чугуна или ограничивается наличием доступных сырьевых ресурсов.
В состав шихты может входить или железная руда, или окатыши, или агломерат, а также металлолом; топливом доменного процесса обычно является кокс (или древесный уголь, а также природный газ). Качество кокса отличается содержанием серы и зависит от поставщика; обычным компонентом шихты являются флюсы. В зависимости от состава рудных примесей в качестве флюса могут применяться известняк, песчаник, кремнезем и др.". В спецификации варианта использования "Получить продукты литья" можно записать: "Продуктами доменной плавки являются жидкий чугун (тонн), шлак (тонн), колошниковый газ (м3) и, после очистки, доменная пыль (тонн). Сортность чугуна зависит от содержания углерода (1-7%) и состава примесей - серы (<0,1%), марганца, фосфора, кремния (в %) и др. Часть шлака отправляется на гранулирование для последующего применения, остальной шлак - на золоотвал (обычно 40— 50%)". Аналогично нужно специфицировать остальные UseCase. Приведенные спецификации будут служить основой для конструирования
Лабор_шлак
Рисунок 2. Диаграмма вариантов использования для ИС доменного цеха. классов и определения их атрибутов.
После завершения специфицирования всех UseCase работы на фазе анализа
требований считаются выполненными и можно переходить к фазе проектирования. Прежде всего необходимо классифицировать всех участников доменного процесса по исполняемым ролям. Основные рабочие цеха - горновые, газовщики, водопроводчики и др.- это объекты класса Рабочий цеха. Вспомогательных работников - энергетиков, слесарей-ремонтников, лаборантов, специалистов КИП, др. - отнесем к классу Персонал цеха. Руководителей, мастеров и бригадиров
цеха отнесем к классу Управлперсон. Далее необходимо разработать диаграмму взаимодействия (кооперации) объектов. Для этого нужно извлекать из потоков событий всех UseCase на рис.2 объекты классов, посылающих или принимающих сообщения (message) других объектов. Выделенные объекты должны быть соотнесены с каким-либо классом. По соображениям удобства некоторые объекты могут быть неименованными (анонимными). На рис. 3 представлена полученная диаграмма.
14: Обнаружить( )15: Вып_ремонт( )
Рисунок 3. Диаграмма кооперации объектов классов доменного цеха
Все объекты и классы, появившиеся в результате построения этой диаграммы, зарегистрированы в браузере PowerDesigner обособленными группами. В составе всех классов, принимавших сообщения, имеются операции. После перетаскивания (drag&drop) пиктограмм классов на пустое рабочее поле вновь открытой диаграммы Class получают множество несвязанных классов с пустыми полями атрибутов. Далее требуется определить отношения ассоциаций между классами и задать атрибуты, отвечающие интересам заказчика. Например, для класса Чугун нужно задать: марка чугуна, содержание углерода и серы (%), количество литья (в тоннах), фамилию мастера,
принимавшего литье, и дату. PowerDesigner требует при формировании атрибутов задавать и типы данных из некоего списка предопределенных типов. Эти типы позднее будут уточнены для выбранного сервера. Полученная таким путем диаграмма классов приведена на рис. 4. Следующим шагом проекта будет запуск из меню Tools генератора CDM - концептуальной модели данных - и настройка его опций. PowerDesigner проверяет работу генератора (check model) и при обнаружении ошибок в модели выводит сообщения или предупреждения. Полученная модель CDM представлена
Ul
Шихта
+ Код_шихты : int
+ Рудн_матер : char
+ Кол_руд(тонн) : int
+ Топливо : char
+ Кол_топл(тонн) : int
+ Матер_флюса : char
+ Кол_фл юса(то н н ) : int
+ Мастер_домны : char
+ Дата_шихты : Date
+ Определить состав () : int
+ Загрузить () : int
Расход_ресурсов
+ Код_расход int
+ Электроэнергия_квт int
+ ГорячийВоздух_м3 int
+ Кислород_м3 int
+ Природн_газ_м3 int
+ Технич_вода_литр int
+ Нач_смены char
+ Дата_расхода Date
+ Регистрировать () : ini
Чугун
+ Код_чугун : int
+ Марка чугуна : char
+ Содерж_углерод_проц : float
+ Содерж_серы_проц : float
+ Кол_чугун_тонн : int
+ Мастер_домны : char
+ Дата_литья : Date
+ Определ_сорт () + Сделать анализ ()
int int
Шлак
+ Код_шлак : int
+ Шлак_гранулир_тонн : int
+ Шл а к_от вал_то н н : int
+ Дата_шлак : Date
+ Сделать анализ () int
+ Определить зольность () : int
+ Отделить_гранулир_шлак () : int
ЕЕ
Упр_персон
+ Код_упр_перс + Должность
int
char
char
Персон_цеха
+ Код_персон : int + ФИО_персон : char + Должн_персон : char
Рабочие_цеха
+ Код_рабоч : int
+ ФИО_рабоч char
+ Должн_рабоч : char
+ Дата_инструктажа : Date
+ Выдать_задания () : int
+ Контр_соблюд_ТБ () : int
Колошн_газ
+ Код_колошн : int
+ Средн_темпер_градС : int
+ Кол_колошн_м3 : int
+ Дата_газ : Date
+ Измерить () : int
V
Ai
1..*
Колошн_пыль
+ Код_пыли : int
+ Содерж_Fe : int
+ Кол_пыли_тонн : Float
+ Дата_пыли : Date
+ Очистить () : int
Журнал_пропуск
+ Код_проп : int
+ ФИО_проп : char
+ Дата_проп : Date
+ Причина : char
+ Нач_смены : char
+ Проверить () : int
Отказы_оборуд
+ Код_отказ
+ Отказ_оборуд
+ Дата_отказ
+ Бригадир
+ Принятые_меры
int
char
Date
char
char
+ Обнаружить () + Вып_ремонт () + Проверить ()
Рисунок 4. Диаграмма классов доменного цеха
на рис. 5. Как видим, линии ассоциаций приняли вид "гусиных лапок", пропали поля операций классов, а для всех данных символьного типа (Char) задана длина (1), что необходимо исправить вручную с учетом длины вводимых данных. Кроме того, в браузере PowerDesigner появились сущности с именами бывших классов. Прежде, чем запустить генератор логической модели данных LDM необходимо в каждой сущности CDM определить
первичный ключ, а в опциях генератора LDM обязательно включить проверку модели, т.к. этот генератор может выявить много ошибок. Основной результат работы генератора LDM - это выполнение миграции ключей в связанных сущностях и образование внешних ключей (Foreign Key) ^хему LDM опускаем).
Шихта
o Код_шихты
o Рудн_матер
o Кол_руд(тонн)
o Топливо
o Кол_топл(тонн)
o Матер_флюса
o Кол_флюса(тонн) Integer
o Дата_шихты Date & Time
Integer Characters (1) Integer Characters (1) Integer Characters (1)
Assoc
Чугун
o Код_чугун
o Марка чугуна
o Содерж_углерод_проц Float
o Содерж_серы_проц Float
o Кол_чугун_тонн
o Мастер_домны
VyO Дата_литья
Расход_ресурсов
o Код_расход Integer
o Электроэнергия_квт Integer
o ГорячийВоздух_м3 Integer
o Кислород_м3
o Природн_газ_м3
o Технич_вода_литр
o Нач_смены
o Дата_расхода
Integer Integer Integer Characters (1 ) Date & Time
/ Колошн_газ \
o Код_колошн Integer
o Средн_темпер_градС Integer
o Кол_колошн_м3 Integer
o Дата_газ Date & Time
V
v
ation_5
ssociation_6
Integer Characters (1)
Integer Characters (1) Date & Time
s Шлак N
o Код_шлак Integer
o Шлак_гранулир_тонн Integer
o Шл а к_от вал_тонн Integer
o Дата_шлак Date & Ti m e
Г л
Упр персон
o Код_упр_перс Integer
o Должность Charact
o ФИО Charact
V j
Association_1
Association
Association_3
Л
As -Ass
Персон_цеха o Код_персон Integer o ФИО_персон Characters (1) о Должн_персон Characters (1) j
ation_4 _12
sociati ociatio
JL
A
Колошн_ л пыль
o Код_пыли Integer
o Содерж_Fe Integer
o Кол_пыли_тонн Float
o Дата_пыли Date & Ti m e
Отказы_оборуд o Код_отказ Integer
o Отказ_оборуд Characters (1) o Дата_отказ Date & Time o Бригадир Characters (1)
o Принятые_меры Characters (1)
Рабочие_цеха о Код_рабоч Integer
o ФИО_рабоч Characters (1)
o Должн_рабоч Characters (1)
o Дата_инструктажа Date & Time
Журнал_пропуск o Код_проп Integer o ФИО_проп Characters (1) o Дата_проп Date & Time o Причина Characters (1)
Рисунок 5. Концептуальная модель данных доменного цеха
1
+ ФИО
A
1 1
Associ a
На заключительном шаге проектирования необходимо создать физическую модель данных с помощью генератора FDM. При настройке опций этого генератора обязателен выбор сервера для организации базы данных (БД) и приведение типов данных модели в соответствие с выбранным сервером. Сгенерированная модель данных приведена на рис. 6. В данной модели воплощены все цели, предусмотренные вариантами использования (рис.2): предусмотрены регистрация состава шихты, продуктов литья, расхода ресурсов, отказов оборудования и др. Теперь можно из меню Database запустить генератор из пункта Generate Database и получить SQL- скрипт для развертывания БД на сервере. Приводим для примера небольшой
фрагмент этого скрипта: go if exists (select 1 from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = 'F') where r.fkeyid = object_id(Шихта') and o.name = 'FK_ШИХТА_ASS0CIATI_УПРПЕРС0') alter table Шихта drop constraint
FK_ШИХТА_ASS0CIATI_УПРПЕРС0 go
Выполнение операций на сервере и разработка приложений клиента составляют содержание этапа реализации ИС и здесь не рассматриваются. Как видим, PowerDesigner является эффективным инструментом быстрой разработки систем путем Forward Engineering как на фазе анализа требований, так и на фазе проектирования ИС.
Шихта
Код_шихты int <pk>
Код_упр_перс int <fk>
Рудн_матер char(20)
Кол_руд(тонн) int
Топливо char(20)
Кол_топл(тонн) int
Матер_флюса char(20)
Кол_флюса(тонн) int
Дата_шихты datetime
1..*
Чугун
Код_чугун int <pk>
Код_упр_перс int <fk>
Марка чугуна char(20)
Содерж_углерод_проц float
Содерж_серы_проц float
Кол_чугун_тонн int
Мастер_домны char(20)
Дата_литья datetime
Расход_ресурсов
Код_расход int <pk>
Код_упр_перс int <fk>
Электроэнергия_квт int
ГорячийВоздух_м3 int
Кислород_м3 int
Природн_газ_м3 int
Технич_вода_литр int
Нач_смены char(20)
1..*
Шлак
Код_шлак int <pk>
Код_упр_перс int <fk>
Шлак_гранулир_тонн int
Шлак_отвал_тонн int
Дата_шлак datetime
ï
Колошн_ газ
Код_колошн int <pk>
Код_упр_перс int <fk>
Средн_темпер_градС int
Кол_колошн_м3 int
Дата_газ datetime
Упр_персон Код_упр_перс int <pk
Должность char(20) ФИО char(20)
Персон_цеха
Код_персон int <pk>
Код_упр_перс int <fk>
ФИО_персон char(20)
Должн_персон char(20)
Рабочие_цеха
Код_рабоч
Код_упр_перс
ФИО_рабоч
Должн_рабоч
Дата_инструктажа
int int
char(20) char(20) datetime
<pk> <fk>
Колошн_пыль
Код_пыли int <pk>
Код_упр_перс int <fk>
Содерж_Fe int
Кол_пыли_тонн fl oat
Дата_пыли datetime
Отказы_оборуд
Код_отказ int <pk>
Код_упр_перс int <fk>
Отказ_оборуд char(20)
Дата_отказ datetime
Бригадир char(20)
Принятые_меры char(20)
Журнал_пропуск
Код_проп int <pk>
Код_упр_перс int <fk>
ФИО_проп char(20)
Дата_проп datetime
Причина char(20)
Рисунок 6. Физическая модель данных доменного цеха для MS SQL Server
Литература
1. Анна Нартова. PowerDesigner 15. Моделирование данных. - Издательство "Лори", 2012
2. Salikov V.A. Analysis and specify requirement at information systems with Power Designer // Eastern European Scientific Journal (Gesellschaftswissenschalten): Düsseldorf (Germany): Auris Verlag, 2016, № 5.
3. Саликов В.А. Проектирование информационных систем по технологии Rational Rose. Учеб-
ное пособие для дипломников. Издатель: LAP LAMBERT Academic Publishing, Saarbrücken, Deutschland, 2016- 128 c.: ил.
4. Якобсон А, Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения.- Питер, 2002
5. Business Process Modeling. PowerDesigner. Document ID: DC38088-01-1510-01. Sybase, Inc. Dublin, 2009.