Erwin курсовая работа

Электронный учебник ‘Программа Erwin’

Введение

В современных условиях создание сложных программных
приложений невозможно без использования систем автоматизированного
конструирования ПО (CASE-систем). CASE-системы существенно сокращают сроки и
затраты разработки, оказывая помощь инженеру в проведении рутинных операций,
облегчая его работу на самых разных этапах жизненного цикла разработки.

Программный продукт EкWin Data Modeler (ранее
называвшийся AllFusion Process Modeler) — средство реализации CASE-технологий.

Erwin позволяет проводить описание, анализ и
моделирование модели данных — построитель мета-моделей данных. Занимает одно из
лидирующих мест в своём сегменте рынка. В настоящее время выпускается компанией
Computer Associates. Распространяется на коммерческой основе.

Erwin включает три стандартные методологии: IDEF0
(функциональное моделирование), DFD (моделирование потоков данных) и IDEF3
(моделирование потоков работ). Эти методологии по-своему уникальны. Каждая из
них может быть выполнена отдельно с помощью BPwin, но их совокупность заключённая
в модель даёт аналитику полную картину предметной области клиента.

Впервые программа BPwin была разработана компанией Logic
Works.

Название сложилось из сокращения BP (business process) — и суффикса win,
отражавшего ориентацию на графические операционные системы.

В 1998 году компания Logic Works была поглощена фирмой
Platinum Technology. Та в свою очередь, всего через год, в 1999 году была
куплена Computer Associates.

Значительного успеха на рынке достигла версия программы BPwin
4.0, которая была выпущена на рубеже XX и XXI веков.

Последняя версия программного обеспечения получила название
CA ERwin Process Modeler 7.3 и вошла в объединённый пакет CA ERwin Modeling
Suite.

В России от версии к версии издаются книги по работе с программой
и CASE-технологиям. Примером могут стать книги Фараонова[1], Культина[2] и
Маклакова[3].

Основным недостатком является отсутствие развития функционала,
позволяющего переносить спроектированные процессы в среду исполнения.

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

Задача курсового проекта — должна включать разработать
электронный учебник «Программа Erwin», позволяющий получить теоретические навыки,
освоить программу на примерах и пройти тестирование.

Электронный учебник состоит из следующих разделов:

—     теоретическая часть: включает в себя материал, необходимый
для освоения программы Erwin;

—       практическая часть: включающая пять лабораторных
работ;

—       эмуляция, которая позволяет на наглядных примерах
изучить возможности программы. Эмуляция включает два примера работы.

К программе нужно оформить пояснительную записку, включающую
в себя описание программы, обоснование данной темы, а так же разделы теория и
практика, содержащие HTML документы и раздел эмуляция.

Требования к программе:

—       в программе необходимо использовать
дополнительные компоненты из библиотеки скинов Alphaskins (sbutton, slable, sTreeView, и другие);

—     для эффекта открытия предусмотреть необычное
появление основных форм;

—       для улучшения чтения информации
предусмотреть размещение компонента Webbrowser с отображением HTML — файлов;

—       выполнить имитацию работы в программе Erwin.

В качестве основного языка программирования использовать Delphi. Для представления
теоретического и практического материала использовалась программа из пакета MS Office — FrontPage2007.

2.
Вычислительная система

 

.1
Программные средства

программа интерфейс
вычислительный пользователь

Заданием по курсовому проекту было разработать программу на
языке программирования Delphi. Программа рассматривалась в рамках изучения
курса «Технология разработки программного продукта».

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

Для реализации тестирования существуют свои компоненты.
Основное достоинство создания учебника в html — это отсутствие
необходимости подгона размеров страниц под разрешение экрана. Минусом является
небольшой выбор компонентов;

В программе будут использоваться следующие основные
компоненты: sButton, sRadioGroup, sEdit, image, sTreeView, Timer, WebBrowser, sPanel, sSpeedButton, sMemo, MainMenu.

Для лучшего оформления интерфейса использовалась библиотека
скинов Alphaskins.

2.2
Технические средства

Для тестирования можно использовать две формы построения,
это:

—        открытая форма, когда по условию задания
пользователь должен дать произвольный ответ на вопрос;

—       закрытая форма, когда пользователю предлагается
на выбор несколько вариантов ответов.

Отличие этих форм заключается в использование различных
компонентов в среде Delphi. Выбор типа и вида тестового задания определяется, прежде всего,
целями, в соответствии с которыми проводится тестирование, характером
материала, усвоение которого необходимо выявить, возрастными особенностями
испытуемых. Немаловажное значение играет ресурсное обеспечение, а также запас
времени, которым располагает разработчик.

Виды тестирования:

—        множественный выбор — пользователю
необходимо выбрать один или несколько правильных ответов из приведенного
списка;

—       альтернативный выбор — пользователь должен
ответить «да» или «нет»;

—       установление соответствия — пользователю
предлагается установить соответствие элементов двух списков;

—       выбор картинок — пользователь должен
выбрать одну из нескольких изображений;

—       свободное изложение — пользователь должен
самостоятельно сформулировать ответ;

—       дополнение — пользователь должен
сформулировать ответы с учетом предусмотренных в задании ограничений.

В курсовом проекте используется стандартное тестирование. В
нем пользователю предлагается выбрать один из трех ответов.

При окончании прохождения теста пользователю выводиться
оценка, а так же количество правильных ответов из возможных. При выборе
правильного ответа в sRadioGroup переменная целого типа увеличивается на единицу.
При нажатия на кнопку «далее» происходит смена вопроса и значения в sRadioGroup. Тестирование
реализуется с помощью оператора условного перехода IF и оператора выбора case.

Минимальные системные требования подобраны для Windows XP. Для нормальной работы
программы на жёстком диске необходимо 150 МБ свободного пространства. Для
программного продукта необходимо 128 МБ ОЗУ, потому что в программе содержится
большое количество графических изображений и текстовых документов. Поскольку в
программе присутствуют графические файлы, то необходима видеокарта с размером
ОЗУ 32 МБ

2.3
Аппаратно-программный комплекс

Минимальные системные требования:

—        IntelPentiumIV33 МГц и выше;

—       Microsoft
Windows 98, 2000, XP, Windows Vista, Windows 7;

—       64 МБ ОЗУ (рекомендуется 128 МБ);

—       150 МБ места на жестком диске;

—       монитор;

—       мышь, клавиатура.

3.
Алгоритм задачи

 

.1
Вызов и загрузка

Инсталляция программы, инсталляция с дистрибутива, происходит
в каталог C:Program FilesЭУК Erwin. Путь можно изменить в
процессе инсталяции. Исполняемым файлом программы является файл ychebbnik.exe. При инсталляции
программы создается программная группа «ychebbnik.exe» в меню «Пуск».

Шаги установки программы:

1)       Запустить установочный файл (Setup.exe).Запускается окно
мастера установки программы (Рисунок 1);

Рисунок 1 — Окно «МАСТЕР УСТАНОВКИ ПРОГРАММЫ»

2)       Далее будет предложено прочитать информацию (Рисунок
2)

Рисунок 2 — Окно «ИНФОРМАЦИЯ»

3)       В строке «КАТАЛОГ УСТАНОВКИ» указать путь установки
программы (Рисунок 3)

Рисунок 3 — Окно «КАТАЛОГ УСТАНОВКИ»

4)       Подтверждение установки (Рисунок 4)

Рисунок 4-Окно «ПОДТВЕРЖДЕНИЕ УСТАНОВКИ»

5)       Далее появится обычное окно установки (Рисунок 5)

Рисунок 5 — Окно установки

6)       Окно завершения установки (Рисунок 6)

Рисунок 6-Окно завершение установки

3.2
Интерфейс пользователя

Основные требования к организации интерфейса:

—        Простота.
Пользователь должен быстро понимать работу программы. Большое количество
графики и элементов, требующих больших объемов машинной памяти, может привести
к «зависанию» компьютеров пользователей.

—       Гибкость. Программа
должна иметь не менее одного перехода на другие формы.

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

Меню программы представляет собой главную форму со
структурой:

—        ТЕОРИЯ;

—       ЭМУЛЯЦИЯ;

—       ПРАКТИКА;

При выборе пункта главного меню закрывается основная форма и
запускается форма согласно выбранному действию.

При выборе пункта «Теория» становится активной форма, на
которой расположены TreeView, Webbrowser. Пункты TreeView Содержат ссылки на Html-документы, находящиеся в
папке stranici и открывающиеся в WebBrowser.

При выборе пункта «Эмуляция» открывается форма с
изображениями, которые показывают работу в программе Erwin.

3.3
Система помощи

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

Загрузка справки начинается с главной формы. Всплывающие
подсказки доступны как на главной форме, так и в других разделах.

3.4
Логическая структура

Разрабатываемая программа позволяет постоянно контролировать
действия пользователя.

При запуске программы активируется форма заставки. При выборе
действия (продолжить работу с программой? Да / Нет), открывается форма
регистрации где пользователю предлагается войти под уже существующим именем или
зарегистрироваться. после запускается главная форма, на которой присутствуют
пункты:

—     ТЕОРИЯ;

—       ЭМУЛЯЦИЯ;

—       ПРАКТИКА;

Так же организовано верхнее меню состоящая из трех
подпунктов:

—     ФАЙЛ;

—       СПРАВКА;

—       ВЫХОД.

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

При выборе пункта Теория становится активной форма, на
которой расположены TreeView, Webbrowser. Пункты TreeView Содержат ссылки на Html-документы, находящиеся в
папке теория и открывающиеся в WebBrowser.

При выборе пункта ЭМУЛЯЦИЯ открывается форма с изображениями,
которые показывают работу в программе Erwin.

При выборе пункта ПРАКТИКА появляется новая форма и
становится активным компонент TreeView, в котором содержатся ссылки на практические
работы, переходы к эмуляциям а также тестирование.

Пункт верхнего меню ФАЙЛ позволяет переходить на те же формы,
что и пункты основного меню главной формы.

Пункт верхнего меню справка вызывает две дополнительные
формы:

—     О ПРОГРАММЕ. Содержит краткую информацию о
разработанной программе;

—       О РАЗРАБОТЧИКЕ. Предоставляет информацию о
создателе программы.

Пункт верхнего меню ВЫХОД закрывает программу.

3.5
Физическая структура

Программа состоит из пятнадцати модулей (Таблица 1):

Таблица 1 — Модули программы

Наименование
модуля

Функциональное
назначение

Zastavka.pas

Заставка
программа

registr.pas

Регистрация
пользователя

Glavnaya.pas

Главная форма
программы

Teoria.pas

Форма «Теория»

Practika.pas

Форма
«Практика»

test.pas

Форма
«Тестирование»

Test_1.pas

Форма
«Тестирование»

Test_2.pas

Форма
«Тестирование»

Test_3.pas

Форма
«Тестирование»

Test_4.pas

Форма
«Тестирование»

Imyl.pas

Форма
«Эмуляция»

Imyl1.pas

Форма
«Эмуляция»

Imyl2.pas

Форма
«Эмуляция»

O_program.pas

Форма «О
программе»

Spravka.pas

Форма «О
разработчике»

4.
Описание программы

После запуска exe-файла на экране появляется заставка программы
(Рисунок 1), которая по выбору действия либо сменяется формой регистрации
(Рисунок 2), либо программа завершается. После регистрации открывается главная
форма (Рисунок 3). На главной форме расположены три кнопки переходов, а так же
верхнее меню.

Рисунок 1 — Форма заставки

Рисунок 2 — форма регистрации

Рисунок 3 — главная форма

Раздел Теория представляет собой компонент TreeView, содержащий ссылки на html-файл, открывающийся в WebBrowser (Рисунок 4).

Рисунок 4 — Форма ТЕОРИЯ

Раздел Практика представляет собой компонент TreeView, с
помощью которого можно открыть в WebBrowser практические задания (Рисунок 5),
перейти к тестированию или же к эмуляции.

Рисунок 5 — Форма ПРАКТИКА

Раздел Эмуляция (Рисунок 6) включает в себя 11 картинок с
компонентами Delphi, которые позволяют создать имитацию работы программы Erwin.

Подраздел Тестирование вызывается из раздела практика,
содержит в себе пять тестов по программе Erwin. Каждый тест включает в
себя пять вопросов. (Рисунок 7).

Рисунок 6 — Форма Эмуляция

Рисунок 7 — форма Тестирование (ответ на вопрос)

5.
Применение программы

Разработанная программа не требует установки на компьютер.
Программу можно запустить с СD-диска, либо скопировать папку «Электронный учебник «Erwin».

Запустить программу можно файлом ychebbnik.exe.

На все формы программы, кроме справочной информации можно
попасть с любой формы при помощи верхнего меню.

На формы О ПРОГРАММЕ (Рисунок 8) и СПРАВКА (Рисунок 9) можно
попасть только из главного меню.

Рисунок 8 — Форма О ПРОГРАММЕ

Рисунок 9 — Форма АВТОРСТВО

6.
Тестирование и отладка

При разработке программы было выявлено и исправлено большое
количество ошибок. В основном ошибки были в подгонке программы под разрешение
экрана. Так же были синтаксические ошибки и ошибки при подсчете результата
тестирования.

На тестирование и отладку ушло 40% времени от общего времени
разработки программного продукта.

Основные ошибки при тестирование программы представлены в
Таблице 2

Таблица 2 — Основные ошибки

Ошибка

Исправление

Неправильно
отображалась последовательность шагов в эмуляции

Были исправлены
последовательности открытия и скрытия панелей с изображениями

Не отображались
html-файлы в Webbrouser

Исправлен путь
к html-файлу

Неправильно
отображались действия компонентов TreeView

была исправлена
ошибка в указании индекса строки компонента TreeView

Заключение

В ходе курсового проекта был разработан Электронный учебник
«Программа Erwin»

В процессе создания программы использовались приложения:

—   Erwin 4, Erwin 7;

—       Microsoft Office FrontPage 2007;

—       Microsoft Office Word 2007;

Разработанная программа обладает следующими свойствами:

—     предоставляет теоретический материал по программе Erwin в виде текстовой
информации;

—       содержит практические работы;

—       позволяет проверить свои знания в виде
тестирования;

—       наглядно демонстрирует работы программы Erwin.

Выполнены требования, поставленные перед разработкой:

—      в программе определен способ необычного появления
формы на экран (эффект появления);

—       в программе использовалось большое
количество различных компонентов;

—       реализовано подключение HTML файлов;

—       имитация работы в программе Erwin реализована в разделе
Эмуляция.

Список
литературы

1. Фаронов
В.В. «Программирование баз данных в Delphi 6». — СПб.:, 2003. — 520 с.

2.       Культин
Н.Б. «Основы программирования в Delphi 7». — СПб.: БХВ-Петербург, 2004. — 597 с.

.        С.В.
Маклаков «BPwin и ERwin. CASE — средства разработки информационных систем»
Диалог-МИФИ 2000 г. — 256 стр.

Приложение А

(обязательное)

Текст программы

var

zastavka: Tzastavka;:integer;ychebnik, Unit5;

{$R *.dfm}Tzastavka.sButton2Click (Sender:
TObject);\Закрытие программы;;

Tzastavka.sButton1Click (Sender: TObject);\Переход к регистрации. Hide;. Show;

end;

var: Tregistr;, v:string; f:text;:
TIniFile;:string;Unit6, ychebnik;

{$R *.dfm}Tregistr.sButton1Click (Sender:
TObject);\проверка имени и пароля при входеpass:string;(sedit1.
Text=») or (sedit2. Text=») then begin (‘Введите нормальные данные’); exit; end;

{reg:=sedit1. Text;:=sedit1. Text;(f,
‘registr.txt’);(f);not eof(f) do begin}:=ini. ReadString (sedit1. Text,
‘login’, ‘error123′);nick=’error123’ then begin(‘Ошибка входа!’); exit; end:=ini. ReadString (sedit1. Text,
‘pass’, ‘error123’);pass<>sedit2. Text then begin(‘Ошибка входа!’); exit;
end:=sedit1. Text;. Hide;.show;. Timer2. Enabled:=true;;Tregistr.sButton3Click
(Sender: TObject);\выход из программыmessagedlg (‘Вы действительно хотите выйти?’,
mtConfirmation, mbOKCancel, 0)=1 then begin; registr. Close; glavnaya.
Close;;;Tregistr.sButton2Click (Sender: TObject);\регистрация нового пользователя(sedit1.
Text=») or (sedit2. Text=») then begin(‘Некорректный ввод!’); exit; end;:=sedit1.text;.writestring (nick,
‘login’, nick);.writestring (nick, ‘pass’, sedit2. Text);

showmessage (‘Вы зарегестрированны’);

end;

procedure Tregistr. FormCreate (Sender:
TObject);:=Tinifile. Create (getcurrentdir+’users.ini’);

end;

var: Tglavnaya;, jg:integer;practic, Unit3,
Unit4, Unit5, Unit6, Unit15, Unit14;

{$R *.dfm}Tglavnaya.N7Click (Sender: TObject);\выход из программыmessagedlg (‘Вы действительно хотите выйти?’,
mtConfirmation, mbOKCancel, 0)=1 then;;Tglavnaya.sButton2Click (Sender:
TObject);\вход в разделы теория, эмуляция, практикаimage3.
Visible=false then begin. Visible:=true;. Visible:=false;.
Visible:=false;:=2;;;Tglavnaya.sButton4Click (Sender: TObject);\ переход к теорииimage2.
Visible=true then begin. Enabled:=true;image3. Visible=true then begin.
Enabled:=true;image4. Visible=true then begin. Enabled:=true;;;Tglavnaya.sButton1Click
(Sender: TObject); \ показ картинки теория

image2. Visible=false then begin. Visible:=true;.
Visible:=false;. Visible:=false;:=1;;;Tglavnaya.sButton3Click (Sender:
TObject); \ переход к эмуляции

image4. Visible=false then begin. Visible:=true;.
Visible:=false;. Visible:=false;:=3;;;Tglavnaya. FormCreate (Sender: TObject);

: Integer);.font. Size:=14;;Tglavnaya.sButton2MouseMove
(Sender: TObject; Shift: TShiftState; X, \ увеличение текста кнопки:
Integer);.font. Size:=14;;Tglavnaya.sButton3MouseMove (Sender: TObject; Shift:
TShiftState; X, \ увеличение текста кнопки:
Integer);.font. Size:=14;;Tglavnaya.sButton4MouseMove (Sender: TObject; Shift:
TShiftState; X, \ увеличение текста кнопки:
Integer);.font. Size:=14;;Tglavnaya.sButton1MouseLeave (Sender: TObject); \ уменьшение текста кнопки.font.
Size:=10;;Tglavnaya.sButton2MouseLeave (Sender: TObject); \ уменьшение текста кнопки.font.
Size:=10;;Tglavnaya.sButton3MouseLeave (Sender: TObject); \ уменьшение текста кнопки.font.
Size:=10;;

Tglavnaya.sButton4MouseLeave (Sender: TObject);
\ уменьшение текста кнопки.font.
Size:=10;;Tglavnaya. FormClose (Sender: TObject; var Action: TCloseAction); \ закрытие формы.
Close;;Tglavnaya. Timer2Timer (Sender: TObject); \ появление формы.
Enabled:=false;:=AlphaBlendValue+5;AlphaBlendValue>250 then Timer2.
Enabled:=false;;Tglavnaya. FormActivate (Sender: TObject); \ исчезновение формы

{timer2. Enabled:=true;}:=0;;Tglavnaya.N2Click
(Sender: TObject); \ переход к форме теория. Show;.
Hide;;Tglavnaya.N3Click (Sender: TObject); \ переход к форме практика. Show;.
Hide;;Tglavnaya.N4Click (Sender: TObject); \ переход к форме эмуляция. Show;.
Hide;;Tglavnaya.N6Click (Sender: TObject); \ открытие формы справка_program.show;;Tglavnaya. Timer1Timer (Sender:
TObject); \ переход к форме практика. Hide;.
Show;.timer1. Enabled:=true;. Enabled:=false;:=AlphaBlendValue-5;AlphaBlendValue<5
then. Enabled:=false;;Tglavnaya. Timer3Timer (Sender: TObject); \ появление формы теория. Hide;.
Show;.timer1. Enabled:=true;.
Enabled:=false;:=AlphaBlendValue-5;AlphaBlendValue<5 then.
Enabled:=false;;Tglavnaya. Timer4Timer (Sender: TObject); \ переход к форме эмуляция

begin. Enabled:=false;

AlphaBlendValue:=AlphaBlendValue-5;AlphaBlendValue<5
then. Hide;. AlphaBlendValue:=0;.timer1. Enabled:=true;. Show;.
Enabled:=false;;;Tglavnaya.N8Click (Sender: TObject); \ переход к форме справка

begin.show;;

var: Tteoria;:byte;

ychebnik, practic, Unit6;

{$R *.dfm}Tteoria.N6Click (Sender: TObject); \ закрытие программыmessagedlg (‘Вы действительно хотите выйти?’,
mtConfirmation, mbOKCancel, 0)=1 then;. Close;. Close;;Tteoria.N5Click (Sender:
TObject); \ переход на главную.
Enabled:=true;;Tteoria.sTreeView1Click (Sender: TObject); \ выбор действияstreeview1.
Items. Item[0].Selected then webbrowser1. Navigate
(GetCurrentDir+’straniciteoriaindbd.htm’);streeview1. Items.
Item[1].Selected then webbrowser1. Navigate
(GetCurrentDir+’straniciteoriaizobr.htm’);streeview1. Items.
Item[2].Selected then webbrowser1. Navigate
(GetCurrentDir+’straniciteorianachrab.htm’);streeview1. Items.
Item[3].Selected then webbrowser1. Navigate (GetCurrentDir+’straniciteoriaparam.htm’);streeview1.
Items. Item[4].Selected then webbrowser1. Navigate
(GetCurrentDir+’straniciteoriapreodraz.htm’);streeview1. Items.
Item[5].Selected then webbrowser1. Navigate
(GetCurrentDir+’straniciteoriapunktmenu.htm’);;Tteoria.N2Click (Sender:
TObject); \ переход к форме эмуляция.
Enabled:=true;;Tteoria.N3Click (Sender: TObject); \ переход к форме практика.
Enabled:=true;;Tteoria. Timer1Timer (Sender: TObject); \ появление формы.
Enabled:=false;:=AlphaBlendValue+5;AlphaBlendValue>250 then Timer1.
Enabled:=false;;Tteoria. Timer2Timer (Sender: TObject); \ исчезновение формы.
Enabled:=false;:=AlphaBlendValue-5;AlphaBlendValue<5 thent=1 then. Hide;.
AlphaBlendValue:=0;. Enabled:=false;. Timer2. Enabled:=true;. Show;;;;Tteoria.
FormCreate (Sender: TObject);:=0;;Tteoria. Timer3Timer (Sender: TObject); \ переход к форме практика. Hide;.
Show;.timer1. Enabled:=true;.
Enabled:=false;:=AlphaBlendValue-5;AlphaBlendValue<5 then.
Enabled:=false;;Tteoria. Timer4Timer (Sender: TObject); \ переход к форме эмуляция.
Enabled:=false;:=AlphaBlendValue-5;AlphaBlendValue<5 then. Hide;.timer1.
Enabled:=true;. AlphaBlendValue:=0;. Show;.timer1. Enabled:=true;.
Enabled:=false;;;

end.

var: Tpractika;:integer; k, p, n, t:
Integer;ychebnik, Unit3, test1, test2, test3, test4, test5, Unit4, Unit6,,
Unit13, Unit15;

{$R *.dfm}Tpractika.N8Click (Sender: TObject); \
выход из программыmessagedlg (‘Вы действительно хотите выйти?’,
mtConfirmation, mbOKCancel, 0)=1 then;. Close;;Tpractika. Timer1Timer (Sender:
TObject); \ переход к форме теория.
Enabled:=false;:=AlphaBlendValue+5;AlphaBlendValue>250 then Timer1.
Enabled:=false;;Tpractika. FormCreate (Sender: TObject);.
Left:=-160;:=1;:=1;:=1;. Enabled:=false;. Enabled:=false;.
AlphaBlendValue:=0;;Tpractika. FormActivate (Sender: TObject);

{timer1. Enabled:=True;};Tpractika.N7Click
(Sender: TObject); \ переход к форме теория.
Enabled:=true;:=1;;Tpractika. FormClose (Sender: TObject; var Action:
TCloseAction);.close;. Close;Tpractika. Tmr1Timer (Sender: TObject); \ выезд панели. Left:=pnl1.
Left+1;:=k+1;k=310 then begin. Enabled:=False;. Enabled:=False;;. Left:=Panel1.
Left+1;:=k+1;k=136 then begin. Enabled:=False;.
Enabled:=False;;;Tpractika.timer2Timer (Sender: TObject); \ исчезновение панели. Left:=pnl1.
Left-1;:=k-1;k=0 then. Enabled:=False;. Enabled:=False;;. Left:=Panel1.
Left-1;:=k-1;k=0 then. Enabled:=False;. Enabled:=False;;;Tpractika. Image1Click
(Sender: TObject); \ действие панели:=n+1;(n mod
2=0) then. Enabled:=False;. Enabled:=True;;(n mod 2<>0) then.
Enabled:=True;. Enabled:=False;;tmr1. Enabled=true then begin image1.
Visible:=true; image2. Visible:=false; endbegin image2.visible:=true; image1.
Visible:=false; end; end;;Tpractika. Image2Click (Sender: TObject); \ действие панели:=n+1;(n mod
2=0) then. Enabled:=False;. Enabled:=True;;(n mod 2<>0) then.
Enabled:=True;. Enabled:=False;;tmr1. Enabled=true then begin image1.
Visible:=true; image2. Visible:=false; endbegin image2.visible:=true; image1.
Visible:=false; end; end;;

Tpractika. Timer3Timer (Sender: TObject); \ исчезновение формы.
Enabled:=false;:=AlphaBlendValue-5;AlphaBlendValue<5 thent=1 then. Hide;.
AlphaBlendValue:=0;. Enabled:=false;. Timer2. Enabled:=true;.
Show;;;Tpractika.sTreeView1Click (Sender: TObject); \ выбор действияstreeview1.
Items. Item[1].Selected then begin practika. Hide; imyl1.show; end;streeview1.
Items. Item[2].Selected then begin practika. Hide; test.show; end;streeview1.
Items. Item[3].Selected then webbrowser1. Navigate
(GetCurrentDir+’stranicipracticlab1.htm’);streeview1. Items.
Item[5].Selected then begin practika. Hide; imyl2.show; end;streeview1. Items.
Item[6].Selected then begin practika. Hide; test_1.show; end;streeview1. Items.
Item[7].Selected then webbrowser1. Navigate (GetCurrentDir+’stranicipracticlab2.htm’);streeview1.
Items. Item[9].Selected then begin practika. Hide; test_2.show; end;streeview1.
Items. Item[10].Selected then webbrowser1. Navigate
(GetCurrentDir+’stranicipracticlab3.htm’);streeview1. Items.
Item[12].Selected then begin practika. Hide; test_3.show; end;streeview1.
Items. Item[13].Selected then webbrowser1. Navigate
(GetCurrentDir+’stranicipracticlab4.htm’);streeview1. Items.
Item[15].Selected then begin practika. Hide; test_4.show; end;streeview1.
Items. Item[16].Selected then webbrowser1. Navigate
(GetCurrentDir+’stranicipracticlab5.htm’);;Tpractika.N2Click (Sender:
TObject); \ переход к форме теория.
Enabled:=true;Tpractika.N3Click (Sender: TObject); \ переход к форме эмуляция.
Enabled:=true;Tpractika.N4Click (Sender: TObject); \ переход к форме на главную.
Enabled:=true;;

Tpractika. Timer4Timer (Sender: TObject); \ переход к форме эмуляция. Hide;.
Show;.timer1. Enabled:=true;.
Enabled:=false;:=AlphaBlendValue-5;AlphaBlendValue<5 then.
Enabled:=false;;Tpractika. Timer5Timer (Sender: TObject); \ переход к форме теория. Hide;.
Show;.timer1. Enabled:=true;.
Enabled:=false;:=AlphaBlendValue-5;AlphaBlendValue<5 then. Enabled:=false;

end;.

var: Timyl;:integer; k, p, n, t:
Integer;ychebnik, Unit7, Unit13, Unit4, practic, Unit14, Unit15;

{$R *.dfm}Timyl.N3Click (Sender: TObject); \
переход на форму практика. Enabled:=true;:=2;;Timyl.sButton1Click (Sender:
TObject); \ появление формы. Hide;.show;. AlphaBlendValue:=255;;Timyl.N4Click
(Sender: TObject); \ выходmessagedlg (‘Вы действительно хотите выйти?’,
mtConfirmation, mbOKCancel, 0)=1 then;. Close;. Close;;Timyl.sButton2Click
(Sender: TObject); \ переход к эмуляции. Hide;.show;;Timyl.N5Click (Sender:
TObject); \ переход на форму главная. Enabled:=true;:=2;;Timyl.N6Click
(Sender: TObject);. Enabled:=true;;Timyl. Timer1Timer (Sender: TObject); \
скрытие формы. Enabled:=false;:=AlphaBlendValue+5;AlphaBlendValue>250 then
Timer1. Enabled:=false;;Timyl. Timer2Timer (Sender: TObject);.
Enabled:=false;:=AlphaBlendValue-5;AlphaBlendValue<5 thent=2 then. Hide;.
AlphaBlendValue:=0;. Enabled:=false;. Timer2. Enabled:=true;.
Show;;;;Timyl.N7Click (Sender: TObject); \ переход на форму теория.
Enabled:=true;;Timyl. Timer3Timer (Sender: TObject); \ переход на форму
практика. Hide;. Show;.timer1. Enabled:=true;.
Enabled:=false;:=AlphaBlendValue-5;AlphaBlendValue<5 then.
Enabled:=false;;Timyl. Timer4Timer (Sender: TObject); \ переход на форму
теория

{teoria. AlphaBlendValue:=0;. Hide;.timer1.
Enabled:=true;. Show;}. Enabled:=false;:=AlphaBlendValue-5;AlphaBlendValue<5
then. Hide;. AlphaBlendValue:=0;.timer1. Enabled:=true;. Show;.
Enabled:=false;;;Timyl.N1Click (Sender: TObject);.show;;Timyl.sButton1MouseMove
(Sender: TObject; Shift: TShiftState; X, \ увеличение текста: Integer);.font.
Size:=14;;Timyl.sButton1MouseLeave (Sender: TObject); \ уменьшение текста.font.
Size:=10;;Timyl.sButton2MouseLeave (Sender: TObject); уменьшение текста.font.
Size:=10;;Timyl.sButton2MouseMove (Sender: TObject; Shift: TShiftState; X, \
увеличение текста: Integer);.font. Size:=14;

end;.

var: Timyl1;ychebnik, practic, Unit6, Unit4;

{$R *.dfm}Timyl1.N10Click (Sender: TObject);
\выходmessagedlg (‘Вы действительно хотите выйти?’,
mtConfirmation, mbOKCancel, 0)=1 then;;Timyl1.N9Click (Sender: TObject); \
переход на форму практика. Enabled:=true;:=1;;Timyl1. Button1Click (Sender:
TObject); \ эмуляцияradiobutton2. Checked=true then begin. Visible:=false;.
Visible:=true;;;Timyl1. RadioButton2Click (Sender: TObject); \ эмуляция

begin. Caption:=’Создание новой модели’;

end;Timyl1. RadioButton1Click (Sender: TObject);
\ эмуляция. Caption:=’открытие модели’;;Timyl1.
RadioButton3Click (Sender: TObject); \ эмуляция. Visible:=false;.
Visible:=false;;Timyl1. RadioButton4Click (Sender: TObject); \ эмуляция. Visible:=false;.
Visible:=true;;Timyl1. RadioButton5Click (Sender: TObject); \ эмуляция.
Visible:=true;. Visible:=false;;Timyl1. Button3Click (Sender: TObject); \
эмуляцияradiobutton5. Checked=true then begin. Visible:=false;.
Visible:=true;;;Timyl1. FormCreate (Sender: TObject); \ эмуляция.
Visible:=false;. Visible:=false;;Timyl1. Timer1Timer (Sender: TObject);
\переход на форму эмуляция:=AlphaBlendValue-5;AlphaBlendValue<5 thent=1
then. AlphaBlendValue:=0;. Timer2. Enabled:=true;. Show;. Hide;. Enabled:=false;;;;Timyl1.N6Click
(Sender: TObject); \ переход на главную форму. Enabled:=true;:=1;;Timyl1.
Timer2Timer (Sender: TObject);

:=AlphaBlendValue-5;AlphaBlendValue<5 then
begin. Hide;. AlphaBlendValue:=0;.timer1. Enabled:=true;. Show;.
Enabled:=false;;;Timyl1.N5Click (Sender: TObject); \ переход на практику.
Hide;. Show;. Timer1. Enabled:=true;;Timyl1.N4Click (Sender: TObject); \
переход на теорию. Enabled:=true;;Timyl1.N3Click (Sender: TObject);.
Enabled:=true;;Timyl1. Timer3Timer (Sender: TObject);:=AlphaBlendValue-5;AlphaBlendValue<5
then begin. Hide;.timer1. Enabled:=true;. Show;.timer1. Enabled:=true;.
Enabled:=false;;;Timyl1. Image9Click (Sender: TObject); \ эмуляция.
Visible:=false;. Visible:=true;. Clear;. Lines. Add (‘создание новой
модели’);

end;Timyl1. Image10Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;. Clear;. Lines. Add (‘открытие модели’);

end;

procedure Timyl1. Image11Click (Sender: TObject);
\ эмуляция. Visible:=false;. Visible:=true;

memo1. Clear;. Lines. Add (‘отправка на печать’);

end;Timyl1. Image17Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;. Clear;. Lines. Add (‘уменьшение масштаба’);

end;

procedure Timyl1. Image18Click (Sender: TObject);
\ эмуляция. Visible:=false;. Visible:=true;. Clear;. Lines. Add (‘увеличение масштаба’);

end;

procedure Timyl1. Image43Click (Sender: TObject);
\ эмуляция. Visible:=false;. Visible:=true;. Clear;. Lines. Add (‘выбор шрифта’);;Timyl1.
Image42Click (Sender: TObject); \ эмуляция. Visible:=false;. Visible:=true;.
Clear;. Lines.
Add (‘выбор размера
шрифта’);

end;Timyl1. Image23Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;. Clear;. Lines. Add (‘жирный текст’);;Timyl1.
Image24Click (Sender: TObject); \ эмуляция. Visible:=false;. Visible:=true;.
Clear;. Lines. Add(‘Курсив’);;Timyl1. Image25Click (Sender: TObject); \ эмуляция.
Visible:=false; memo1. Visible:=true;. Clear;. Lines. Add (‘подчеркнутый текст’);;Timyl1.
Image30Click (Sender: TObject); \ эмуляция. Visible:=false;. Visible:=true;.
Clear;. Lines. Add(‘сущность’);;Timyl1. Image35Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;

memo1. Clear;. Lines. Add (‘объект рисования прямоугольник’);

end;Timyl1. Image36Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;

memo1. Clear;. Lines. Add (‘позволяет рисовать
прямоугольник со скругленными углами’);

end;Timyl1. Image37Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;. Clear;. Lines. Add(‘овал’);;Timyl1.
Image38Click (Sender: TObject); \ эмуляция. Visible:=false;. Visible:=true;.
Clear;. Lines. Add(‘линия’);;Timyl1. Image39Click (Sender: TObject); \ эмуляция.
Visible:=false;. Visible:=true;. Clear;. Lines. Add(‘кривая’);;Timyl1.
Image40Click (Sender: TObject); \ эмуляция. Visible:=false;. Visible:=true;.
Clear;. Lines. Add(‘многоугольник’);;Timyl1. Image41Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;. Clear;. Lines. Add (‘написание текста’);

end;

procedure Timyl1. Image12Click (Sender: TObject);
\ эмуляция. Visible:=false;. Visible:=true;. Clear;. Lines. Add (‘ диалога Report
Browser для генерации отчетов’);;

Timyl1. Image14Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;

memo1. Clear;. Lines. Add (‘Изменение уровня просмотра
модели: уровень сущностей’);

end;

Timyl1. Image15Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;

memo1. Clear;. Lines. Add (‘Изменение уровня просмотра
модели: уровень атрибутов’);

end;

Timyl1. Image16Click (Sender: TObject); \ эмуляция.
Visible:=false;. Visible:=true;

memo1. Clear;. Lines. Add (‘Изменение уровня просмотра
модели: уровень определений’);

end;

Timyl1. Image19Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;

memo1. Clear;. Lines. Add (‘изменение масштаба просмотра
модели’);

end;

Timyl1. Image20Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;

memo1. Clear;. Lines. Add (‘изменение масштаба просмотра
модели’);

end;

Timyl1. Image21Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;

memo1. Clear;. Lines. Add (‘Создание и переключение между
подмножествами модели — Subject Area’);

end;

Timyl1. Image22Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;. Clear;. Lines. Add (‘выбор типа модели’);

end;

Timyl1. Image26Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;

memo1. Clear;. Lines. Add (‘позволяет изменять цвет
текста’);

end;

Timyl1. Image28Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;

memo1. Clear;. Lines. Add (‘позволяет заливать фигуры
цветом’);

end;

Timyl1. Image27Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;

memo1. Clear;. Lines. Add (‘позволяет задавать цвет
линий’);

end;

Timyl1. Image31Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;

memo1. Clear;. Lines. Add (‘создает категорию между
сущностями. для ее использования нужно щелкнуть сначало по одной затем по
второй сущности’);

end;

Timyl1. Image32Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;. Clear;. Lines. Add (‘идентифицирующая
связь’);

end;

procedure Timyl1. Image33Click (Sender: TObject);
\ эмуляция. Visible:=false;. Visible:=true;

memo1. Clear;. Lines. Add (‘связь многие ко многим’);

end;

Timyl1. Image34Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;. Clear;. Lines. Add (‘неидентифицирующая
связь’);

end;

procedure Timyl1. Button5Click (Sender: TObject);
\ эмуляция. Enabled:=true;:=1;

end;

var: Timyl2;:string;ychebnik, Unit6;

{$R *.dfm}Timyl2. Button1Click (Sender: TObject);
\ эмуляцияradiobutton1. Checked=true then. Visible:=false;.
Visible:=true;begin. Visible:=true;. Caption:=(‘Нажмите Create’);. Caption:=(‘a
new model’);;;

Timyl2. FormCreate (Sender: TObject); \ эмуляция.
Visible:=false;. Visible:=false;. Visible:=false;. Visible:=false;.
Visible:=false;;

Timyl2. RadioButton3Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=false;;

Timyl2. RadioButton4Click (Sender: TObject); \
эмуляция. Visible:=true;. Visible:=false;;

Timyl2. RadioButton5Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;;

Timyl2. Button2Click (Sender: TObject); \
эмуляцияradiobutton5. Checked=true then. Visible:=false;. Visible:=true;;;

Timyl2. Image10Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;

;

Timyl2. Edit1Enter (Sender: TObject); \ эмуляция.
Text:=edit1. Text;;

Timyl2. Edit1MouseMove (Sender: TObject; Shift:
TShiftState; X, \ эмуляция: Integer);edit1. Text=’сущность1′ then begin.
Visible:=true;. Visible:=true;. Visible:=true;. Caption:=’теперь 2 раза’;

label6. Caption:=’щелкните по самой’;

label7. Caption:=’Сущности’;;;

Timyl2.sPanel4Click (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=false;;

Timyl2. Image14DblClick (Sender: TObject); \
эмуляция. Visible:=false;. Visible:=true;;

Timyl2. Button3Click (Sender: TObject); \
эмуляция. Visible:=true;. Visible:=true;. Visible:=true;. Visible:=false;.
Caption:=’в поле Atribute
name’;. Caption:=’введите имя атрибута’;. Caption:=’и нажмите ОК’;;

Timyl2. Button4Click (Sender: TObject); \
эмуляция:=edit2. Text;. Visible:=false;. Visible:=true;. Text:=x;;

Timyl2. Button5Click (Sender: TObject); \
эмуляция. Hide;.show;. Timer2. Enabled:=true;;

Timyl2. Button6Click (Sender: TObject); \
эмуляция. Hide;.show;. Timer1. Enabled:=true;;: Ttest;, l, s:integer;ychebnik,
practic, Unit5;

{$R *.dfm}Ttest.sButton1Click (Sender: TObject);
\ тестирование. Height:=577;. Width:=910;. Visible:=false;. Visible:=false;.
Visible:=false;. Visible:=true;. Align:=alclient;;

Ttest. FormCreate (Sender: TObject); \
тестирование:=0; l:=0; s:=1;. Height:=257;. Width:=463;. Visible:=false;.
Visible:=false;. Visible:=false;. Visible:=false;. Visible:=false;.
Visible:=false;. Visible:=true;. Visible:=true;. Visible:=true;;

Ttest.sButton3Click (Sender: TObject); \
тестированиеradiogroup1. ItemIndex=0 then begin:=k+1;(‘Правильный ответ’,
mtconfirmation, [mbOk], 0); endbegin:=l+1;(‘Неправильный ответ’, mtconfirmation, [mbOk], 0); end;.
Caption:=inttostr(k);. Caption:=inttostr(l);. Visible:=true;. Align:=alclient;.
Visible:=false;;

Ttest.sButton4Click (Sender: TObject); \
тестированиеscheckbox2. Checked=true then begin:=k+1;(‘Правильный ответ’,
mtconfirmation, [mbOk], 0); endbegin:=l+1;(‘Неправильный ответ’, mtconfirmation, [mbOk], 0);
end;.caption:=inttostr(k);. Caption:=inttostr(l);. Visible:=false;.
Visible:=true;. Align:=alclient;;

Ttest.sButton5Click (Sender: TObject); \ тестированиеscheckbox5.
Checked=true then begin:=k+1;(‘Правильный ответ’, mtconfirmation, [mbOk], 0); endbegin:=l+1;(‘Неправильный ответ’,
mtconfirmation, [mbOk], 0); end;. Caption:=inttostr(k);. Caption:=inttostr(l);.
Visible:=false;. Visible:=true;. Align:=alclient;;

Ttest.sButton6Click (Sender: TObject); \
тестирование

sradiobutton3. Checked=true then begin:=k+1;(‘Правильный ответ’,
mtconfirmation, [mbOk], 0); endbegin:=l+1;(‘Неправильный ответ’, mtconfirmation, [mbOk], 0); end;.
Caption:=inttostr(k);. Caption:=inttostr(l);. Visible:=false;. Visible:=true;.
Align:=alclient;;

Ttest.sButton7Click (Sender: TObject); \
тестированиеla:string;scheckbox10. Checked=true then begin:=k+1;(‘Правильный ответ’,
mtconfirmation, [mbOk], 0); endbegin:=l+1;(‘Неправильный ответ’, mtconfirmation, [mbOk], 0); end;.
Caption:=inttostr(k);. Caption:=inttostr(l);. Caption:=inttostr(k);.
Caption:=inttostr(s);. Visible:=false;. Visible:=true;.
Align:=alclient;:=nick;. Caption:=’Здравствуйте ‘+la;;

Ttest.sButton9Click (Sender: TObject); \
тестирование. Hide;.show;. Timer2. Enabled:=true;

;

Ttest.sButton8Click (Sender: TObject); \
тестирование. Visible:=false;. Visible:=true;:=s+1;:=0; l:=0;;

Ttest.sButton10Click (Sender: TObject); \
тестирование. Hide;.show;. Timer1. Enabled:=true;;

Ttest.sButton2Click (Sender: TObject); \
тестирование. Hide;.show;. Timer1. Enabled:=true;;_1: Ttest_1;, l,
m:integer;ychebnik, Unit5, practic;

{$R *.dfm}Ttest_1.sButton1Click (Sender:
TObject); \ тестирование_1. Height:=477;_1. Width:=852;. Visible:=true;.
Align:=alclient;. Visible:=false;. Visible:=false;;

Ttest_1. FormCreate (Sender: TObject); \
тестирование. Visible:=false;. Visible:=false;. Visible:=false;.
Visible:=false;. Visible:=false;. Visible:=false;:=0;:=0;:=1;;

Ttest_1.sButton3Click (Sender: TObject); \
тестированиеradiogroup1. ItemIndex=0 then begin(‘Правильный ответ’, mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’,
mtconfirmation, [mbOk], 0);:=l+1;;. Visible:=false;. Visible:=true;.
Align:=alclient;. Caption:=inttostr(k);. Caption:=inttostr(l);;

Ttest_1.sButton4Click (Sender: TObject); \
тестированиеradiobutton3. Checked=true then begin(‘Правильный ответ’,
mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’, mtconfirmation, [mbOk], 0);:=l+1;;.
Visible:=false;. Visible:=true;. Align:=alclient;. Caption:=inttostr(k);.
Caption:=inttostr(l);

;

Ttest_1.sButton5Click (Sender: TObject); \
тестированиеcheckbox2. Checked=true then begin(‘Правильный ответ’, mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’, mtconfirmation,
[mbOk], 0);:=l+1;;. Visible:=false;. Visible:=true;. Align:=alclient;.
Caption:=inttostr(k);. Caption:=inttostr(l);;

Ttest_1.sButton6Click (Sender: TObject); \
тестированиеradiogroup2. ItemIndex=0 then begin(‘Правильный ответ’, mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’,
mtconfirmation, [mbOk], 0);:=l+1;;. Visible:=false;. Visible:=true;.
Align:=alclient;. Caption:=inttostr(k);. Caption:=inttostr(l);;

Ttest_1.sButton8Click (Sender: TObject); \
тестированиеla:string;radiobutton4. Checked=true then begin(‘Правильный ответ’,
mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’, mtconfirmation, [mbOk], 0);:=l+1;;.
Visible:=false;. Visible:=true;. Align:=alclient;. Caption:=inttostr(k);.
Caption:=inttostr(l);. Caption:=inttostr(m);k<=2 then label35. Caption:=’Неудовлетворительно’;k=3 then
label35. Caption:=’Удовлетворительно’;k=4 then label35. Caption:=’Хорошо’;k=5 then
label35. Caption:=’Отлично’;:=nick;. Caption:=la;;Ttest_1.sButton9Click (Sender:
TObject); \ тестирование:=0;:=0;. Visible:=false;. Visible:=true;.
Align:=alclient;:=m+1;;

Ttest_1.sButton10Click (Sender: TObject); \
тестирование_1. Hide;.show;. Timer2. Enabled:=true;;

Ttest_1.sButton7Click (Sender: TObject); \
тестирование_1. Hide;.show;. Timer1. Enabled:=true;;

Ttest_1.sButton2Click (Sender: TObject); \
тестирование_1. Hide;.show;. Timer1. Enabled:=true;;_2: Ttest_2;k, l,
s:integer;practic, ychebnik, Unit3, Unit5;

{$R *.dfm}Ttest_2. FormCreate (Sender: TObject);.
Visible:=false;. Visible:=false;. Visible:=false;. Visible:=false;.
Visible:=false;. Visible:=false;_2. Height:=209;_2.
Width:=358;:=0;:=0;:=1;:=registr.sEdit1. Text;;Ttest_2.sButton7Click (Sender:
TObject); \ тестирование. Visible:=true;. Visible:=false;. Visible:=false;.
Visible:=true;. Align:=alclient;_2. Width:=700;_2. Height:=389;;

procedure Ttest_2.sButton1Click (Sender:
TObject); \ тестированиеradiogroup1. ItemIndex=0 then begin(‘Правильный ответ’,
mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’, mtconfirmation, [mbOk], 0);:=l+1;;.
Caption:=inttostr(k);. Caption:=inttostr(l);. Visible:=false;. Visible:=true;.
Align:=alclient;

;

Ttest_2.sButton2Click (Sender: TObject); \
тестированиеradiobutton2. Checked=true then begin(‘Правильный ответ’,
mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’, mtconfirmation, [mbOk], 0);:=l+1;;.
Caption:=inttostr(k);. Caption:=inttostr(l);. Visible:=false;. Visible:=true;.
Align:=alclient;;

Ttest_2.sButton3Click (Sender: TObject); \
тестированиеcheckbox1. Checked=true then begin(‘Правильный ответ’, mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’,
mtconfirmation, [mbOk], 0);:=l+1;;. Caption:=inttostr(k);.
Caption:=inttostr(l);. Visible:=false;. Visible:=true;. Align:=alclient;;

Ttest_2.sButton4Click (Sender: TObject); \
тестированиеradiogroup2. ItemIndex=1 then begin(‘Правильный ответ’, mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’,
mtconfirmation, [mbOk], 0);:=l+1;;. Caption:=inttostr(k);.
Caption:=inttostr(l);. Visible:=false;. Visible:=true;. Align:=alclient;;

Ttest_2.sButton5Click (Sender: TObject); \
тестированиеla:string;radiobutton5. Checked=true then begin(‘Правильный ответ’,
mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’, mtconfirmation, [mbOk], 0);:=l+1;;.
Caption:=reg;. Caption:=inttostr(k);. Caption:=inttostr(l);k<=2 then
label33. Caption:=’Неудовлетворительно’;k=3 then label33. Caption:=’Удовлетворительно’;k=4 then
label33. Caption:=’Хорошо’;k=5 then label33. Caption:=’Отлично’;.
Caption:=inttostr(s);:=nick;.caption:=la;. Visible:=false;. Visible:=true;.
Align:=alclient;;

Ttest_2.sButton6Click (Sender: TObject); \
тестирование. Visible:=false;. Visible:=true;. Align:=alclient;:=s+1;;

Ttest_2.sButton9Click (Sender: TObject); \
переход на форму практика_2. Hide;.show;. Timer1. Enabled:=true;

;

Ttest_2.sButton10Click (Sender: TObject); \
переход на главную форму_2. Hide;.show;. Timer2. Enabled:=true;;

Ttest_2.sButton8Click (Sender: TObject);_2.
Hide;.show;. Timer1. Enabled:=true;;_3: Ttest_3;k, l, s:integer;test3, practic,
ychebnik, Unit5;

{$R *.dfm}Ttest_3. FormCreate (Sender: TObject);.
Visible:=false;. Visible:=false;. Visible:=false;. Visible:=false;.
Visible:=false;. Visible:=false;_2. Height:=209;_2. Width:=358;:=0;:=0;:=1;;

Ttest_3.sButton1Click (Sender: TObject); \
тестирование. Visible:=true;. Visible:=false;. Visible:=false;. Visible:=true;.
Align:=alclient;_3. Width:=700;_3. Height:=389;;

Ttest_3.sButton3Click (Sender: TObject); \
тестированиеradiogroup1. ItemIndex=0 then begin(‘Правильный ответ’, mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’,
mtconfirmation, [mbOk], 0);:=l+1;;. Caption:=inttostr(k);.
Caption:=inttostr(l);. Visible:=false;. Visible:=true;. Align:=alclient;;

Ttest_3.sButton5Click (Sender: TObject); \
тестированиеcheckbox1. Checked=true then begin(‘Правильный ответ’, mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’,
mtconfirmation, [mbOk], 0);:=l+1;;. Caption:=inttostr(k);.
Caption:=inttostr(l);. Visible:=false;. Visible:=true;. Align:=alclient;;

Ttest_3.sButton6Click (Sender: TObject); \
тестированиеradiobutton7. Checked=true then begin(‘Правильный ответ’,
mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’, mtconfirmation, [mbOk], 0);:=l+1;;.
Caption:=inttostr(k);. Caption:=inttostr(l);. Visible:=false;. Visible:=true;.
Align:=alclient;;

Ttest_3.sButton7Click (Sender: TObject); \
тестированиеla:string;radiobutton12. Checked=true then begin(‘Правильный ответ’,
mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’, mtconfirmation, [mbOk], 0);:=l+1;;.
Caption:=inttostr(k);. Caption:=inttostr(l);k<=2 then label36. Caption:=’Неудовлетворительно’;k=3 then
label36. Caption:=’Удовлетворительно’;k=4 then label36. Caption:=’Хорошо’;k=5 then
label36. Caption:=’Отлично’;. Caption:=inttostr(s);. Visible:=false;. Visible:=true;.
Align:=alclient;:=nick;. Caption:=’Здравствуйте’ +la;;

Ttest_3.sButton8Click (Sender: TObject); \
тестирование. Visible:=false;. Visible:=true;. Align:=alclient;:=s+1;;

Ttest_3.sButton9Click (Sender: TObject); \
переход на практику_3. Hide;.show;. Timer1. Enabled:=true;;

Ttest_3.sButton10Click (Sender: TObject); \
переход на главную_3. Hide;.show;. Timer2. Enabled:=true;;

Ttest_3.sButton2Click (Sender: TObject);_3.
Hide;.show;. Timer1. Enabled:=true;;_4: Ttest_4;k, l, s:integer;test3, practic,
ychebnik, Unit5;

{$R *.dfm}Ttest_4. FormCreate (Sender: TObject); \
тестирование. Visible:=false;. Visible:=false;. Visible:=false;.
Visible:=false;. Visible:=false;. Visible:=false;_2. Height:=209;_2.
Width:=358;:=0;:=0;:=1;;

Ttest_4.sButton1Click (Sender: TObject); \
тестирование. Visible:=true;. Visible:=false;. Visible:=false;. Visible:=true;.
Align:=alclient;_4. Width:=700;_4. Height:=389;;

Ttest_4.sButton3Click (Sender: TObject); \
тестированиеradiogroup1. ItemIndex=0 then begin(‘Правильный ответ’, mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’,
mtconfirmation, [mbOk], 0);:=l+1;;. Caption:=inttostr(k);.
Caption:=inttostr(l);. Visible:=false;. Visible:=true;. Align:=alclient;;

procedure Ttest_4.sButton4Click (Sender:
TObject); \ тестированиеradiobutton2. Checked=true then begin(‘Правильный ответ’,
mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’, mtconfirmation, [mbOk], 0);:=l+1;;.
Caption:=inttostr(k);. Caption:=inttostr(l);. Visible:=false;. Visible:=true;.
Align:=alclient;;

Ttest_4.sButton5Click (Sender: TObject); \
тестированиеcheckbox2. Checked=true then begin(‘Правильный ответ’, mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’, mtconfirmation,
[mbOk], 0);:=l+1;;. Caption:=inttostr(k);. Caption:=inttostr(l);.
Visible:=false;. Visible:=true;. Align:=alclient;;

Ttest_4.sButton6Click (Sender: TObject); \
тестированиеradiogroup2. ItemIndex=1 then begin(‘Правильный ответ’, mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’,
mtconfirmation, [mbOk], 0);:=l+1;;. Caption:=inttostr(k);.
Caption:=inttostr(l);. Visible:=false;. Visible:=true;. Align:=alclient;;

Ttest_4.sButton7Click (Sender: TObject); \
тестированиеla:string;radiobutton4. Checked=true then begin(‘Правильный ответ’,
mtconfirmation, [mbOk], 0);:=k+1; end(‘Неправильный ответ’, mtconfirmation, [mbOk], 0);:=l+1;;.
Caption:=inttostr(k);. Caption:=inttostr(l);k<=2 then label35. Caption:=’Неудовлетворительно’;k=3 then
label35. Caption:=’Удовлетворительно’;k=4 then label35. Caption:=’Хорошо’;k=5 then
label35. Caption:=’Отлично’;. Caption:=inttostr(s);:=nick;. Caption:=’Здравствуйте’ + la;.
Visible:=false;. Visible:=true;. Align:=alclient;;

Ttest_4.sButton8Click (Sender: TObject); \ тестирование.
Visible:=false;. Visible:=true;. Align:=alclient;:=s+1;;

Ttest_4.sButton9Click (Sender: TObject); \
переход на практику_4. Hide;.show;. Timer1. Enabled:=true;;

Ttest_4.sButton10Click (Sender: TObject); \
переход на главную_4. Hide;.show; glavnaya. Timer2. Enabled:=true;;

Ttest_4.sButton2Click (Sender: TObject);_4.
Hide;.show;. Timer1. Enabled:=true;;

end.

6. Моделирование в ERwin

Место ERwin в информационном моделировании
Процесс построения информационной модели состоит из следующих шагов:

  • определение сущностей;
  • определение зависимостей между сущностями;
  • задание первичных и альтернативных ключей;
  • определение атрибутов сущностей;
  • приведение модели к требуемому уровню нормальной формы;
  • переход к физическому описанию модели: назначение соответствий имя сущности — имя таблицы, атрибут сущности — атрибут таблицы; задание триггеров, процедур и ограничений;
  • генерация базы данных.

ERwin создает визуальное представление (модель данных) для решаемой задачи. Это представление может использоваться для детального анализа, уточнения и распространения как части документации, необходимой в цикле разработки. Однако ERwin далеко не только инструмент для рисования. ERwin автоматически создает базу данных (таблицы, индексы, хранимые процедуры, триггеры для обеспечения ссылочной целостности и другие объекты, необходимые для управления данными).

Отображение логического и физического уровня модели данных в ERwin

В ERwin существуют два уровня представления и моделирования — логический и физический. Логический уровень означает прямое отображение фактов из реальной жизни. Например, люди, столы, отделы, собаки и компьютеры являются реальными объектами. Они именуются на естественном языке, с любыми разделителями слов (пробелы, запятые и т.д.). На логическом уровне не рассматривается использование конкретной СУБД, не определяются типы данных (например, целое или вещественное число) и не определяются индексы для таблиц.
Целевая СУБД, имена объектов и типы данных, индексы составляют второй (физический) уровень модели ERwin.
ERwin предоставляет возможности создавать и управлять этими двумя различными уровнями представления одной диаграммы (модели), равно как и иметь много вариантов отображения на каждом уровне.

Компоненты диаграммы ERwin и основные виды представлений диаграммы

Диаграмма ERwin строится из трех основных блоков — сущностей, атрибутов и связей. Если рассматривать диаграмму как графическое представление правил предметной области, то сущности являются существительными, а связи — глаголами.
Выбор между логическим и физическим уровнем отображения осуществляется через линейку инструментов или меню. Внутри каждого из этих уровней есть следующие режимы отображения:

  • Режим «сущности» — внутри прямоугольников отображается имя сущности (для логической модели) или имя таблицы (для физического представления модели); служит для удобства обзора большой диаграммы или размещения прямоугольников сущностей на диаграмме.
  • Режим «определение сущности» служит для презентации диаграммы другим людям.
  • Режим «атрибуты». При переходе от предметной области к модели требуется вводить информацию о том, что составляет сущность. Эта информация вводится путем задания атрибутов (на физическом уровне — колонок таблиц). В этом режиме прямоугольник-сущность делится линией на две части — в верхней части отображаются атрибуты (колонки), составляющие первичный ключ, а в нижней — остальные атрибуты. Этот режим является основным при проектировании на логическом и физическом уровнях.
  • Режим «первичные ключи» — внутри прямоугольников — сущностей показываются только атрибуты/колонки, составляющие первичный ключ.
  • Режим «пиктограммы». Для презентационных целей каждой таблице может быть поставлена в соответствие пиктограмма (bitmap).
  • Режим «показ глагольной фразы». На дугах связей показываются глагольные фразы, связывающие сущности (для логического уровня) или имена внешних ключей (для физического уровня).

Диаграмма может занимать более чем один экран и более чем один лист при печати. Для обзора модели предусмотрены, кроме прокруток экрана, режимы уменьшения/увеличения изображения, отображение всей модели, отображение выделенной части модели.

Инструменты для создания модели в ERwin

Основные инструменты создания модели доступны как из меню, так и через окно инструментов. С их помощью создаются независимые и зависимые сущности, идентифицирующие и неидентифицирующие связи, полные и неполные категории, неспецифические связи и текстовые элементы.
Нажатием мыши над сущностью производится вход в один из многочисленных редакторов ERwin:

  • редакторы, связанные с сущностью в целом (определение сущности, дополнительная информация, триггеры, индексы, характеристики таблицы, хранимые процедуры, связанные с таблицей);
  • редакторы атрибутов (определение атрибутов, колонки таблицы в физическом представлении модели, репозитарий средства 4GL, например, расширенные атрибуты в PowerBuilder ).

Идентификация сущностей. Сущности в ERwin

На диаграмме сущность изображается прямоугольником. В зависимости от режима представления диаграммы прямоугольник может содержать имя сущности, ее описание, список ее атрибутов и другие сведения.
Горизонтальная линия прямоугольника разделяет атрибуты сущности на два набора — атрибуты, составляющие первичный ключ в верхней части и прочие (не входящие в первичных ключ) в нижней части.
Сущность представляет собой множество реальных или абстрактных объектов, например, люди, места, события, факты, которые имеют общие характеристики. Сущность — это логическое понятие. Сущности соответствует таблица в реальной СУБД. В ERwin сущность визуально представляет три основных вида информации:

  • атрибуты, составляющие первичный ключ;
  • неключевые атрибуты;
  • тип сущности (независимая/зависимая).

Первичный ключ — это атрибут или набор атрибутов, уникально идентифицирующий экземпляр сущности. Если несколько наборов атрибутов могут уникально идентифицировать сущность, то выбор одного из них осуществляется разработчиком на основании анализа предметной области.
Для каждого первичного ключа ERwin создает при генерации структуры БД уникальный индекс.
Экземпляры независимой сущности могут быть уникально идентифицированы без определения ее связей с другими сущностями; зависимая сущность, наоборот, не может быть уникально идентифицирована без определения ее связей с другими сущностями. Зависимая сущность отображается в ERwin прямоугольником с закругленными углами.

Связи (relationships) в ERwin

Связь — это функциональная зависимость между двумя сущностями (в частности, возможна связь сущности с самой собой). Например, важно знать фамилию сотрудника, и не менее важно знать, в каком отделе он работает. Таким образом, между сущностями «отдел» и «сотрудник» существует связь «состоит из» (отдел состоит из сотрудников). Связь — это понятие логического уровня, которому соответствует внешний ключ на физическом уровне. В ERwin связи представлены пятью основными элементами информации:

  • тип связи (идентифицирующая, неидентифицирующая, полная/неполная категория, неспецифическая связь);
  • родительская сущность;
  • дочерняя (зависимая) сущность;
  • мощность связи (cardinality);
  • допустимость пустых (null) значений.

Связь называется идентифицирующей, если экземпляр дочерней сущности идентифицируется через ее связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в первичный ключ дочерней сущности. Дочерняя сущность при идентифицирующей связи всегда является зависимой.
Связь называется неидентифицирующей, если экземпляр дочерней сущности идентифицируется иначе, чем через связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в состав неключевых атрибутов дочерней сущности.
Для определения связей ERwin выбирается тип связи, затем мышью указывается родительская и дочерняя сущность. Идентифицирующая связь изображается сплошной линией; неидентифицирующая — пунктирной линией. Линии заканчиваются точкой со стороны дочерней сущности.
При определении связи происходит миграция атрибутов первичного ключа родительской сущности в соответствующую область атрибутов дочерней сущности. Поэтому такие атрибуты не вводятся вручную.
Атрибуты первичного ключа родительской сущности по умолчанию мигрируют со своими именами. ERwin позволяет ввести для них роли, т.е. новые имена, под которыми мигрирующие атрибуты будут представлены в дочерней сущности. В случае неоднократной миграции атрибута такое переименование необходимо. Например, сущность «посредническая сделка» имеет атрибут «код предприятия-продавца» и «код предприятия-покупателя». В данном случае первичный ключ сущности «предприятие» («код предприятия») имеет две роли в дочерней сущности.
На физическом уровне имя роли — это имя колонки внешнего ключа в дочерней таблице.
Мощность связи представляет собой отношение количества экземпляров родительской сущности к соответствующему количеству экземпляров дочерней сущности. Для любой связи, кроме неспецифической, эта связь записывается как 1:n.
ERwin в соответствии с методологией IDEF1X предоставляет 4 варианта для n, которые изображаются дополнительным символом у дочерней сущности: ноль, один или больше (по умолчанию); ноль или один; ровно N, где N — конкретное число.
Допустимость пустых (NULL) значений в неидентифицирующих связей ERwin изображает пустым ромбиком на дуге связи со стороны родительской сущности.
Обозначения мощности соответственно ноль, один или больше, один или больше, ноль или один в нотации IE приведены на рис. 1.

Рис.1. Обозначения мощности связи в нотации IE

Имя связи на логическом уровне представляет собой «глагол», связывающий сущности. Физическое имя связи (которое может отличаться от логического) для ERwin означает имя ограничения (constraint) или индекса.

Графическое редактирование модели

Все объекты модели ERwin могут редактироваться средствами, принятыми в Windows — группировка, копирование, удаление, перемещение, использование системного буфера. Установка цветов и шрифтов осуществляется в удобных диалогах.
Компоненты модели, представленные текстом (имена сущностей, атрибутов, текстовые элементы) могут редактироваться непосредственно на экране.

Альтернативные ключи

Альтернативный ключ — это атрибут (или группа атрибутов), несовпадающий с первичным ключом и уникально идентифицирующий экземпляр сущности. Например, для сущности служащий (идентификатор служащего, фамилия. имя, отчество) группа атрибутов «фамилия», «имя», «отчество» может являться альтернативным ключом (в предположении, что на предприятии не работают полные тезки).
Для альтернативного ключа, как и для первичного, ERwin автоматически создает индексы при генерации БД.

Инвертированные индексы

Атрибуты, составляющие альтернативный ключ, однозначно (уникально) идентифицируют экземпляры сущности. В ERwin можно также составлять группы атрибутов, которые не идентифицируют уникально экземпляры сущности, но часто используются для доступа к данным. Для каждой такой группы атрибутов ERwin создает неуникальные индексы.
Одни и те же атрибуты сущности могут входить в несколько различных групп ключей.

Унификация атрибутов

Зависимая сущность может наследовать один и тот же внешний ключ от более чем одной родительской сущности, или от одной и той же родительской сущности через несколько связей. Если не введены различные роли для такого множественного наследования, ERwin считает, что в зависимой сущности атрибуты внешнего ключа появляются только один раз.
Унификация — это объединение двух или более групп атрибутов внешних ключей в один внешний ключ (группу атрибутов), в предположении, что значения одноименных атрибутов в дочерней сущности всегда одинаковы.
Рассмотрим пример: сущность «сотрудник» имеет первичный ключ «код сотрудника» и связан идентифицирующей связью с сущностями «супруга» и «дети». При этом происходит миграция первичного ключа в зависимые сущности. В свою очередь, сущность «супруга» связана неидентифицирующей связью с сущностью «дети». Имеются два пути миграции ключа, однако в сущности «дети» атрибут «код сотрудника» появляется один раз в качестве элемента первичного ключа.
Существуют случаи, когда унификация атрибутов дает неверный с точки зрения предметной области результат. Для отмены унификации для атрибутов вводятся имена ролей.

Связи категоризации

Некоторые сущности определяют целую категорию объектов одного типа. В ERwin в таком случае создается сущность для определения категории и для каждого элемента категории, а затем вводится для них связь категоризации. Родительская сущность категории называется супертипом, а дочерние — подтипом.
Например, сущность «сотрудник» может содержать данные как о штатных работниках, так и о временно нанятых. Первые и вторые имеют различные, частично пересекающиеся наборы атрибутов (минимальное пересечение подтипов составляет первичный ключ). Общая часть этих атрибутов, включая первичный ключ, помещается в сущность-супертип «сотрудник».
Различная часть (например, данные почасовой оплаты для временных работников и данные о зарплате и отпуске для штатных работников) помещается в сущности-подтипы.
В сущности-супертипе вводится атрибут-дискриминатор, позволяющий различать конкретные экземпляры сущности — подтипа.
В зависимости от того, все ли возможные сущности-подтипы включены в модель, категорийная связь является полной или неполной. Продолжая пример, если супертип может содержать данные об уволенных сотрудниках, то эта связь — неполной категоризации, так как для него не существует записи в сущностях — подтипах.
В ERwin полная категория изображается окружностью с двумя подчеркиваниями, а неполная — окружностью с одним подчеркиванием.

Реализация ссылочной целостности с помощью ERwin

Ссылочная целостность — это обеспечение требования, чтобы значения внешнего ключа экземпляра дочерней сущности соответствовали значениям первичного ключа в родительской сущности. Ссылочная целостность может контролироваться при всех операциях, изменяющих данные (INSERT/UPDATE/DELETE). Средства контроля ссылочной целостности в ERwin включают автоматическую генерацию триггеров и использование механизмов декларативной ссылочной целостности (для тех СУБД, которые поддерживают данные механизмы).
Для каждой связи на логическом уровне могут быть заданы требования по обработке операций INSERT/UPDATE/DELETE для родительской и дочерней сущности. ERwin представляет следующие варианты обработки этих событий:

  • отсутствие проверки;
  • проверка допустимости;
  • запрет операции;
  • каскадное выполнение операции (DELETE/UPDATE);
  • установка пустого (NULL-значения) или заданного значения по умолчанию.

В соответствии с выбранным вариантом ERwin автоматически создает необходимые триггеры на диалекте SQL целевой СУБД. При этом ERwin пользуется библиотекой шаблонов триггеров, которые можно модифицировать.
При генерации структуры базы данных триггеры, обеспечивающие ссылочную целостность могут быть переопределены на трех уровнях:

  1. Могут быть переопределены триггеры, обеспечивающие правила для всей модели.
  2. Могут быть переопределены триггеры, указанные для конкретной связи.
  3. Могут быть переопределены триггеры, указанные для конкретной таблицы.

Тип переопределения указывается разработчиком при генерации схемы базы данных (рис. 6- соответственно RI Type Override, Relationship Override, Entity Override).

Хранение информации в модели ERwin

Обычно модели ERwin сохраняются на диск в виде файла. Имеется возможность хранить модель в целевой СУБД. Для этого с помощью самого ERwin в целевой СУБД создается метабаза ERwin. В этой базе данных сохраняется информация модели. В частном случае базой данных могут быть и dBase-файлы, с которыми ERwin работает через ODBC.

Пример разработки модели в ERwin

Рассмотрим цикл разработки на примере, приведенном в статье Кодда [1].
Коротко напомним содержательную сторону задачи. Ведется учет служащих. Для каждого служащего хранится информация о детях и о списке занимавшихся этим служащим должностей. Для должностей хранится информация по установленным должностным окладам.
Сначала создадим логический уровень модели. Для этого зададим режим отображения сущностей (Display/Entity Level). Создадим при помощи линейки инструментов сущности «служащий», «дети», «история работы», «история зарплаты». Будем именовать сущности на русском языке.
Выбрав каждую сущность, зададим для нее подробное описание на русском языке в редакторе «Entity Definition». Это описание появится в отчетах ERwin и может быть отображено на диаграмме.
Укажем связи между сущностями. Например, «служащий» связан идентифицирующей связью «является родителем» с сущностью «дети». Описание связи вводится в редакторе «Editor/Relationship».
Результат работы отображен на диаграмме ERwin (рис. 2).

Рис. 2. Диаграмма уровня сущности

Теперь перейдем в режим задания атрибутов (Display/Atribute Level). В редакторе «Entity/Attribute» зададим на русском языке имена ключевых и неключевых атрибутов. Заметим, что для дочерней сущности «дети» ключевой атрибут «номер служащего» не указывается вручную. ERwin обеспечивает его миграцию из родительской сущности. То же происходит с другими дочерними сущностями.
Для атрибута «имя» сущности «служащий» укажем, что он является альтернативным ключом (будем считать, что у всех служащих уникальные имена/фамилии). Для этого после имени атрибута поместим указатель AK1 в скобках.
Результат работы отображен на диаграмме ERwin (рис. 3) в нотации IDEF1X.

Рис. 3. Диаграмма уровня атрибутов в нотации IDEF1X

Вид той же диаграммы в нотации IE (Information Engineering) показан на рис.4.

Рис. 4. Диаграмма уровня атрибутов в нотации IE

Так как имена атрибутов и сущностей задавались нами на русском языке, для перехода к физическому уровню модели следует поставить им в соответствие идентификаторы таблиц, колонок и ограничений, удовлетворяющие правилам целевой СУБД (обычно это означает использование латинских букв, цифр и некоторых специальных символов).
В редакторе «Database Schema» указываем для каждой сущности соответствующее имя таблицы. Затем в редакторе «Attribute Definition» задаем имена колонок таблиц, соответствующие атрибутам сущностей. ERwin и здесь обеспечивает миграцию имен колонок в подчиненные таблицы.
На этом этапе можно воспользоваться и редактором «Extended Attributes» для определения расширенных атрибутов PowerBuilder (формата отображения, маски редактирования, правила контроля, выравнивания, заголовков и комментариев).
В редакторе «Relationship Definitions» указывается физическое имя связи, которое соответствует имени ограничения (constraint), создаваемого ERwin в базе данных.
Теперь все готово к созданию БД и нужно выбрать целевую СУБД (если этого не было сделано раньше). Выберем, например, Sybase System 10.
В редакторе SYBASE Database Schema задаем типы данных для колонок таблиц.
Диалог, в котором происходит выбор типа данных, приведен на рис.5.

Рис. 5. Определение физической модели

Теперь можно перейти к созданию базы данных. Для этого выполняется команда «Sybase schema generation». ERwin построит пакет SQL-предложений генерации базы данных. На рис.6 показан диалог выбора параметров генерации пакета для генерации БД. На рисунке видно, что может быть задан фильтр (генерация не всех таблиц), пакет SQL-предложений можно просмотреть (preview), распечатать, сохранить в файл (report), выполнить генерацию (generate).

Рис. 6. Выбор параметров генерации базы данных

7. Расширенные функции ERwin

Обратное проектирование (Reverse engineering)

Обратное проектирование, то есть восстановление информационной модели по существующей базе данных, используется при выборе оптимальной платформы (rightsizing) для существующей настольной (desktop) базы данных или базы данных на mainframe, а также при расширении (или модификации) существующей структуры, которая была построена без необходимой сопроводительной документации. После завершения процесса восстановления модели ERwin автоматически «раскладывает» таблицы на диаграмме. Теперь можно выполнять модификации уже с использованием логической схемы — добавлять сущности, атрибуты, комментарии, связи и т.д. По завершении изменений одна команда — синхронизировать модель с базой данных — актуализирует все проведенные изменения.
Построение модели может быть выполнено как на основании данных каталога базы данных, так и на основании пакета операторов SQL, с помощью которого была создана база данных.

Синхронизация с базой данных

В процессе разработки информационной системы может возникнуть ситуация, когда структура базы данных и информационная модель не соответствуют друг другу. ERwin предоставляет возможность привести их в соответствие.
Для этого предусмотрена функция синхронизации с базой данных. После подключения к СУБД предлагается список несоответствий между существующей структурой данных и моделью. Например, если в базе данных создана новая таблица, то ERwin предложит провести включение ее в модель. Если в модель добавлена новая таблица, ERwin предложит создать ее в реальной базе данных. Аналогично, при добавлении колонок в базе данных или в модели ERwin предлагает провести соответствующие операции по синхронизации. Процедура выбора синхронизируемых таблиц показана на рис.7.

Рис. 7. Выбор синхронизируемых таблиц

ERwin «знает» о таких особенностях хранения данных в отдельных СУБД, как сегменты (в Sybase) и табличное пространство (в Oracle). Информация о физическом размещении может быть включена в модель и использована при прямом и обратном проектировании.

Интерфейсы к СУБД

ERwin поддерживает прямой интерфейс с основными СУБД: DB2 версии 2 и 3, Informix версий 5.1, 6.0, 7.1, Ingres, NetWare SQL, ORACLE версий 6 и 7, Progress, Rdb версий 4 и 6, SQL/400 версий 2 и 3, SQLBase версий 5 и 6, SQL Server версий 4 и 6, Sybase версии 4.2, Sybase System 10 и 11, Watcom SQL. Отметим, что поддерживаются как самые современные, так и предыдущие версии основных СУБД (рис.8).

Рис. 8. Выбор СУБД для создания модели

ERwin поддерживает также настольные (desktop) СУБД: Microsoft Access, FoxPro, Clipper, dBASE III, dBASE IV и Paradox.
Проектирование на физическом уровне выполняется в терминах той базы данных, которую предполагается использовать в системе. Важно, что ERwin «известны» соответствия между возможностями СУБД различных производителей, вследствие чего возможно преобразование физической схемы, спроектированной для одной СУБД, в другую.
Для создания физической структуры БД может быть запрошена генерация DDL-скрипта (data definition language). При этом используется диалект SQL для выбранного типа и версии сервера. Хотя сгенерированный код не нуждается в модификации, имеется возможность его сохранить в файл или распечатать.

Поддержка средств 4GL

ERwin выпускается в нескольких различных редакциях, ориентированных на наиболее распространенные средства разработки 4GL. В числе поддерживаемых средств — PowerBuidler фирмы Powersoft, SQL Windows фирмы Gupta, Visual Basic фирмы Microsoft, Oracle*CASE фирмы Oracle.
Средства двунаправленного взаимодействия ERwin с базой данных обеспечивают управление информацией, ориентированной как на серверную, так и на клиентскую часть. Например, для PowerBuilder можно просматривать/редактировать расширенные атрибуты в редакторах ERwin.
Ориентация ERwin на средства 4GL позволяет задать для будущих приложений большинство параметров, непосредственно связанных с базой данных, уже на стадии проектирования информационной модели.
Покажем принципы организации такого взаимодействия на примере PowerBuilder.
PowerBuilder создает в базе данных несколько внутренних таблиц для хранения своего репозитария (расширенных атрибутов для datawindow). Использование расширенных атрибутов гарантирует сохранение стиля отображения одних и тех же колонок базы данных для всех приложений, создаваемых рабочей группой. В расширенных атрибутах задаются такие параметры, как формат отображения, стиль редактирования, выражение проверки на корректность, начальное значение, выравнивание, ширина и высота элемента отображения, метка для формы редактирования, заголовок для табличного отображения.
Для расширенных атрибутов допустимы те же операции синхронизации, что и для всей модели, то есть описания могут быть загружены в базу данных и, наоборот, созданные из среды PowerBuilder описания расширенных атрибутов могут быть загружены из базы данных в ERwin для модификации.
Пример определения расширенных атрибутов показан на рис.9.

Рис. 9. Задание расширенных атрибутов PowerBuilder

Функция ERwin по генерации DataWindow позволяет сгенерировать прототипы окон данных будущего приложения уже на стадии создания информационной модели. Для создания Data Windows предлагается Wizard, с помощью которого указывается стиль окна и выбранные колонки таблиц.


С этим файлом связано 4 файл(ов). Среди них: Задания студентам на производственную практику.docx, bibliofond.ru_898050.rtf, Презентация Стратегия государственной политики в области защиты , Разработка структуры программы и модульное программирование.docx.
Показать все связанные файлы


Подборка по базе: Практическая работа №3 часть 3.doc, Макуха Тема 12.4 часть 2.docx, страховое 2022 часть1.pdf, Немецкий часть -2.docx, Немецкий часть -2.docx, 353546.Практическая часть контрольная.docx, 2 часть.doc, 1 часть.doc, Письменная работа №1 Английский язык Часть 2.docx, Лекция №4. Интеллектуальные информационные системы, часть 1.docx


Содержание

Введение 5

1.Теоретическая часть 7

1.1 Понятие «программное обеспечение» 7

1.2Особенности технологии разработки программного обеспечения 7

1.3Этапы разработки программного обеспечения 8

1.4 Сравнительный анализ ПО для разработки информационной системы 12

2Практическая часть 17

2.1 Проектирование ПО с помощью ERwin Data Modeler 17

2.1.1 Описание сущностей 17

2.1.2 Формирование связей между сущностями 25

Заключение 27

Список использованных источников 29

Приложение А 30

Введение

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

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

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

Для решения простейших задач по систематизированию информационной системы необходимо знать средства и возможности специализированных программ.

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

В настоящее время существует множество различных программ для систематизирования информационных систем и баз данных, например, Silverrun, BPwin и ERwin Data Modeler.

В данной курсовой работе будут проанализированы распространенные программы для систематизирования ИС, будут определены достоинства и недостатки каждой из них, после анализа будет выбрана одна программа, подходящая для данного проекта.

Тема данной курсовой работы: «Проектирование информационной системы Отель с помощью программы ERwin Data Modeler».

Предметом деятельности отеля является автоматизация учета управлением.

Целью курсового проекта является определение и формирование сущностей и атрибутов в программе ERwin Data Modeler.

Задачи курсового проекта:

  • анализ и сбор данных, необходимых для проектирования ИС;
  • проектирование ИС с помощью выбранной программы.
  1. Теоретическая часть

1.1 Понятие «программное обеспечение»

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

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

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

    1. Особенности технологии разработки программного обеспечения

Под технологией разработки программного обеспечения (сокращенно ТРПО) понимается совокупность обобщенных и систематизированных знаний, или наука об оптимальных способах (приемах) проведения процесса разработки программного обеспечения, обеспечивающего в заданных условиях получение программной про­дукции с заданными свойствами.

ТРПО предс­тавляет собой инженерный подход к разработке программных средств ЭВМ, охватывающий методологию программирования, проблемы обеспечения надежности программ, оценки рабочих характеристик и качества проектов.

ТРПО должна удовлетворять основным ниже перечисленным требованиям:

  • необходима стандартизация языков проектирования программ, оформления и испытания программных модулей, а также гарантии их качества;
  • вести постоянный контроль и обеспечение качества программ;
  • программы не должны содержать непроверенных путей и ситуаций функционирования, которые приводят к неожиданным результатам;
  • пользователю или покупателю программ необходимо дать четкое представление о возможностях данной программы и технологических условиях эксплуатации, при которых гаран­тируются определенные функции и качества;
  • необходимо вести аккуратное документирование всех этапов разработки; доступ к этой информации должен быть открытым, простым и автоматизированным;
  • работа пользователя должна обеспечиваться развитой информационно-справочной системой;
  • должна быть простой в освоении, с автоматически включаемыми средствами подсказки.
    1. Этапы разработки программного обеспечения

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

Рассмотрим каждую стадию общепризнанной методологии разработки ПО, чтобы оценить их высокую значимость для достижения поставленной перед исполнителями цели.

1. Анализ требований.

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

Результатом проведенного анализа становится формирование основного регламента, на который будет опираться исполнитель в своей работе — технического задания (ТЗ) на разработку программного обеспечения. ТЗ должно полностью описывать поставленные перед разработчиком задачи и охарактеризовать конечную цель проекта в понимании заказчика.

2. Проектирование.

Следующий ключевой этап в разработке ПО — стадия проектирования, то есть моделирования теоретической основы будущего продукта. Самые современные средства программирования позволяют частично объединить этапы проектирования и кодирования, то есть технической реализации проекта, будучи основанными на объектно-ориентированном подходе, но полноценное планирование требует более тщательного и скрупулезного моделирования. Одной из составных частей этапа проектирования, к примеру, является выбор инструментальных средств и операционной системы, которых сегодня на рынке присутствует очень большое количество.

В рамках данного этапа стороны должны осуществить:

    • оценку результатов проведенного первоначально анализа и выявленных ограничений;
    • поиск критических участков проекта;
    • формирование окончательной архитектуры создаваемой системы;
    • анализ необходимости использования программных модулей или готовых решений сторонних разработчиков;
    • проектирование основных элементов продукта — модели базы данных, процессов и кода;
    • выбор среды программирование и инструментов разработки, утверждение интерфейса программы, включая элементы графического отображения данных;
    • определение основных требований к безопасности разрабатываемого ПО.

3. Кодирование.

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

Успех реализации любого проекта напрямую зависит от качества предварительного анализа и оценки конкурирующих решений, с которыми создаваемой программе предстоит «бороться» за право называться лучшей в своей нише. От грамотного подхода к этапу кодирования зависит эффективность работы компании, заказавшей разработку.

Кодирование может происходить параллельно со следующим этапом разработки — тестированием ПО, что помогает вносить изменения непосредственно по ходу написания кода.

4. Тестирование и отладка.

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

Процесс тестирования позволяет смоделировать ситуации, при которых программный продукт перестает функционировать. Отдел отладки затем локализует и исправляет обнаруженные ошибки кода. Эти два этапа занимают не меньше 30% затрачиваемого на весь проект времени, так как от их качественного исполнения зависит судьба программного обеспечения.

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

5. Внедрение.

Процедура внедрения программного обеспечения в эксплуатацию является завершающей стадией разработки и нередко происходит совместно с отладкой системы. Как правило, ввод в эксплуатацию ПО осуществляется в три этапа:

    • первоначальная загрузка данных;
    • постепенное накопление информации;
    • вывод на проектную мощность созданного ПО.

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

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

6. Заключение.

Неотъемлемой частью завершающего этапа разработки программного обеспечения также является последующая техническая поддержка созданного продукта в процессе его эксплуатации на предприятии заказчика. Грамотно организованная служба технической поддержки зачастую становится ключевым фактором при выборе исполнителя в рамках достижения поставленной цели.

1.4 Сравнительный анализ ПО для разработки информационной системы

Для разработки информационной системы существуют специальные программные продукты. Кратко рассмотрим некоторые из них. Первая программа – это BPwin.

BPwin – это программный продукт, разработанный компанией ltd.Logic Works. BPwin поддерживает функциональное моделирование, моделирование потока работ и потока данных.

BPwin является достаточно развитым средством моделирования, позволяющим проводить анализ, документирование и улучшение бизнес процессов. С его помощью можно моделировать действия в процессах, определять их порядок и необходимые ресурсы. Модели BPwin создают структуру, необходимую для понимания бизнес процессов, выявления управляющих событий и порядка взаимодействия элементов процесса между собой.

BPwin обладает следующим преимуществами:

  • простой графический интерфейс, который легко воспринимается и позволяет выполнять настройки под пользователя;
  • представление дополнительной информации – за счет применения UDP свойств (настраиваемые пользователем свойства) есть возможность собирать дополнительную информацию по процессам, представлять ее в моделях и включать в отчеты. Отчеты могут представляться в общедоступных форматах Microsoft Word или Microsoft Excel;
  • контроль корректности моделей – за счет встроенных средств BPwin осуществляет контроль некорректных связей и представления элементов моделей;
  • встроенный генератор отчетов, с помощью которого можно создать шаблон необходимого отчета и применять этот шаблон для любых моделей BPwin. Отчеты могут представляться в форматах HTML, RTF, TXT, PDF.

У программного продукта BPWin можно также отметить следующие недостатки:

  • отсутствие стандартных объектов для описания бизнес процессов;
  • довольно узкие возможности для проведения экономического анализа;

Следующей рассматриваемой программой будет CASE-средство SilverRUN.

CASE-средство SilverRUN американской фирмы Silverrun Technologies, Inc. (ранее Computer Systems Advisers, Inc.) используется для анализа и проектирования ИС бизнес-класса и ориентировано в большей степени на спиральную модель ЖЦ. SilverRUN, обеспечивает автоматизацию проведения проектных работ в соответствии с методологией DATARUN.

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

У Silverrun можно отметить следующие преимущества:

  • функционирование на различных платформах: MS Windows, OS/2 Presentation Manager, Sun Solaris и Macintosh с возможностью прозрачного обмена проектными данными между ними;
  • широкая сфера применения;
  • высокая гибкость;
  • возможность поставки интерфейсов с различными СУБД и средствами разработки приложений;
  • возможность наращивания среды проектирования по мере необходимости;
  • возможность разработки всей ИС целиком (функциональные спецификации, логику процессов, интерфейс с пользователем и базу данных), оставаясь в одной технологической среде.

Недостатками программы Silverrun будет следующее:

  • отсутствие жесткого взаимного контроля между компонентами различных моделей
  • сложность освоения продукта.

Третьим рассматриваемым программным продуктом будет ERwin Data Modeler.

ERwin Data Modeler — CASE-средство, которое позволяет создавать, документировать и сопровождать базы данных, хранилища и витрины данных. Модели данных помогают визуализировать структуру данных, обеспечивая эффективный процесс организации, управления и администрирования таких аспектов деятельности предприятия, как уровень сложности данных, технологий баз данных и среды развертывания.

Стоит отметить, что в программном обеспечении предусмотрены инструменты, позволяющие вносить коррективы в пакеты информации на корпоративном уровне. Также особого внимания заслуживает возможность отображения сложных структур данных.

Преимущества ERwin Data Modeler:

    • поддержка однопользовательских СУБД — позволяет использовать для персональных систем современные технологии, что значительно упрощает переход от настольных систем к системам в технологии клиент-сервер.
    • возможность обратного проектирования, что позволяет документировать и вносить изменения в существующие информационные системы;
    • существенное повышение скорости разработки за счет мощного редактора диаграмм и автоматической генерации базы данных;
    • отсутствие необходимости ручной подготовки SQL-предложений для создания базы данных;
    • возможность легкого внесения изменения в модель при разработке и расширении системы;
    • возможность автоматической подготовки отчетов по базе данных, соответствующих реальной структуре БД;
    • повышение эффективности разработки прикладного программного обеспечения за счет использования удобных в работе диаграмм;

Недостатки ERwin Data Modeler:

    • отсутствие версии на русском языке;
    • отсутствие развития функциональности, позволяющей переносить спроектированные процессы в среду исполнения;
    • сложность программы.

Проведя анализ описанных выше программ, я пришла к выводу, что для моего проекта подойдет программа ERwin Data Modeler , потому что у нее увеличенная продуктивность благодаря удобной в использовании графической среде, которая упрощает проектирование баз данных и автоматизирует многие трудоемкие задачи. Также у данной программы эффективное общение между администраторами баз данных и разработчиками благодаря совместному и повторному использованию моделей, а также графическому отображению громоздких и сложных массивов корпоративных данных в удобном для понимания и сопровождения формате.

  1. Практическая часть

2.1 Проектирование ПО с помощью ERwin Data Modeler

2.1.1 Описание сущностей

Для создания программного обеспечения необходимо открыть ERwin Data Modeler. Через кнопку File выбрать New (новый документ) и откроется окно с выбором модели (рисунок 1). Выбираем пункт Logical/Physical и нажимаем кнопку ОК.

Рисунок 1 – Меню выбора модели
Далее на панели инструментов находим кнопку Entity для добавления сущности. В самом верхнем поле пишем наименование будущей сущности – «Персонал». Нижние поля предназначены для наименования атрибутов нашей сущности.

При нажатии на нижние поля появляется отдельное окно, где будем прописывать атрибуты сущностей. Для этого необходимо нажать кнопку New, затем выбрать тип данных и ввести название данного атрибута в поле Attribute Name (рисунок 2) и нажимаем ОК.

Рисунок 2 – Добавление полей для сущности «Персонал»
По аналогии с предыдущим описанием создания сущности и ее атрибутов, создаем и заполняем следующие сущности:

  • персонал – отображает информацию о сотрудниках гостиницы;
  • должности – отображает информацию о должностях персонала;
  • клиенты – отображает информацию о клиентах;
  • номера – отображает информацию о номерах в гостинице;
  • категории номеров – отображает информацию о ценовых категориях и комфортабельности номеров;
  • учет работы – отображает информацию по работе гостиницы.

Т а б л и ц а 1 — Сущность «Персонал»

Имя поля Тип данных Примечание
1 2 3
Код сотрудника Number Primary Key (Первичный ключ)
Фамилия String
Имя String
Отчество String
Дата рождения Datetime
Код должности Number
Название должности String
Код категории номера Number

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

Рисунок 3 – Сущность «Персонал»

Т а б л и ц а 2 – Сущность «Должности»

Имя поля Тип данных Примечание
Код должности Number Primary Key (Первичный ключ)
Название должности String

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

Рисунок 4 – Сущность «Должности»
Т а б л и ц а 3 – Сущность «Клиенты»

Имя поля Тип данных Примечание
1 2 3
Код клиента Number Primary Key (Первичный ключ)
Фамилия String

Продолжение таблицы 3

1 2 3
Имя String
Отчество String
Дата рождения Datetime
Город String
Улица String
Дом String
Остальное String указываются оставшиеся данные адреса (корпус, квартира и т.п.)
Серия паспорта String
Номер паспорта String

В таблице сущности «Клиенты» атрибут «Код клиента» выбрано ключевым, так как оно однозначно определяет значения данных в строке и никак не может повториться.

Рисунок 5 – Сущность «Клиенты»

Т а б л и ц а 4 – Сущность «Номера»

Имя поля Тип данных Примечание
Код номера Number Primary Key (Первичный ключ)
Название категории String
Стоимость проживания за сутки String

В таблице сущности «Номера» атрибут «Код номера» выбрано ключевым, так как оно однозначно определяет значения данных в строке и никак не может повториться.

Рисунок 6 – Сущность «Номера»
Т а б л и ц а 5 – Сущность «Категории номеров»

Имя поля Тип данных Примечание
Код категории номера Number Primary Key (Первичный ключ)
Название String
Количество номеров Number

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

Рисунок 7 – Сущность «Категория номеров»
Т а б л и ц а 6 – Сущность «Учет работы»

Имя поля Тип данных Примечание
1 2 3
Код операции Number Primary Key (Первичный ключ)
Дата заселения Datetime
Дата выселения Datetime
Количество дней Number
Стоимость за сутки String
Стоимость проживания String

В таблице сущности «Учет работы» атрибут «Код опреации» выбрано ключевым, так как оно однозначно определяет значения данных в строке и никак не может повториться.

Рисунок 8 – Сущность «Учет работы»

2.1.2 Формирование связей между сущностями

В ERwin поддерживает следующие основные типы связей: идентифицирующая, неидентифицирующая, полная категория, неполная категория, «многие-ко-многим».

Мы будем использовать идентифицирующую связь (или один ко многим), так как дочерняя сущность идентифицируется через ее связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, входят в первичный ключ дочерней сущности. Дочерняя сущность является зависимой от родительской сущности.

В ПО «Гостиница» определены следующие отношения между сущностями:

Т а б л и ц а 7 — Классификация связей

Родительская таблица (РТ) Дочерняя таблица (ДТ) Ключ РТ Ключ ДТ Вид связи
Клиенты Учет работы Код клиента Код клиента И
Номера Учет работы Код номера Код комнаты И
Категория номеров Номера Код категории номера Код категории номера И
Категория номеров Персонал Код категории номера Код категории номера И
Должности Персонал Код должности Код должности И

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

Для сущностей «Клиенты» — «Учет работы» — один и тот же человек может заселиться в гостиницу несколько раз.

Для сущностей «Номера» — «Учет работы» в один номер в разное время могут заселяться разные люди.

Рисунок 9 – «Формирование связей между сущностями»

Заключение

В рамках данной работы были поставлены такие задачи, как анализ и сбор данных, необходимых для проектирования, и, соответственно, проектирование ИС с помощью выбранной программы. Для этого был изучен материал по таким программным продуктам, как Silverrun, BPwin и ERwin Data Modeler.

Был проведен подробный анализ по самим программам, достоинствам и недостаткам каждой из них. В результате анализа была выбрана программа для проектирования ERwin Data Modeler.

В ходе работы с программой ERwin Data Modeler была спроектирована информационная система «Отель». Были созданы и заполнены сущности и атрибуты системы, а также были построены связи между сущностями.

Модель данных состоит из логической и физической моделей, отображающих требования к информации и бизнес-правила. Собранные требования к информации и бизнес-правила должны быть проанализированы и исследованы.

В ERwin модель данных включает как логическую, так и физическую модели. ERwin реализует подход ER и позволяет создавать объекты логических и физических моделей для представления требований к информации и бизнес-правил. Объекты логической модели включают сущности, атрибуты и отношения. К объектам физической модели относятся таблицы, столбцы и ограничения целостности связей.

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

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

Область определения задает набор значений атрибута. Логические области определения могут быть простыми типами данных, такими как числа или строки. Они так же могут быть сложными типами данных, определяемыми пользователем, которые приспособлены для удовлетворения специфических требований корпорации.

Значения атрибута могут быть требуемыми или необязательными. Если значение требуемое, атрибут не может иметь пустых значений. Атрибут должен иметь имя и описание. При именовании атрибутов рекомендуется использовать стандарт именования в форме объект/ модификатор/ класс. Каждый атрибут должен включать хорошее описание, использующее терминологию бизнеса для определения сущности атрибута, а не того, как он будет использоваться.

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

В данном курсовом проекте была кратко изложена основная информация, необходимая для проектирования информационной системы с помощью CASE-средства ERwin Data Modeler, которая является актуальной на сегодняшний день, так как информационные системы и программы для их проектирования в технологическом мире играют немаловажную роль.

Список использованных источников

  1. [электронный ресурс] – URL: https://ru.intechcore.com/stages-software-development/ (дата обращения 11.02.2022г.);
  2. [электронный ресурс] – URL: https://vscode.ru/articles/tehnologiya-razrabotki-po.html (дата обращения 15.02.2022г.) ;
  3. [электронный ресурс] – URL: https://studfile.net/preview/1444541/page:17/ (дата обращения 16.02.2022г.);
  4. [электронный ресурс] – URL: https://www.interface.ru/home.asp?artId=101 (дата обращения 16.02.2022г.);
  5. [электронный ресурс] – URL: https://os-helper.ru/soft/erwin-data-modeler.html (дата обращения 16.02.2022г.);
  6. [электронный ресурс] – URL: http://www.rusnauka.com/16_NPM_2007/Informatica/22152.doc.htm (дата обращения 01.03.2022г.);
  7. [электронный ресурс] – URL: https://www.interface.ru/home.asp?artId=3437 (дата обращения 01.03.2022г.)

Приложение А

Основная форма сущностей и связей информационной системы Отель

Информационная
модель в нотации IDEF1X

Для
представления информационной модели
данных используется CASE-средство ERWin. С
его помощью при проектировании модели
информационной системы «Служба занятости»
была создана физическо-логическая
модель базы данных, представленная на
рисунках (рис. 8, 9).

Рис. 8
— Модель данных в нотации IDEF1X (логический
уровень)

Рис. 9
— Модель данных в нотации IDEF1X (физический
уровень)

База
данных представлена в виде сущностей,
их атрибутов и связей между ними. Каждая
сущность представляет множество подобных
объектов, называемых экземплярами.
Каждый экземпляр индивидуален и должен
отличаться от всех остальных. Атрибут
выражает определенное свойство объекта.
С точки зрения физической модели базы
данных сущности соответствует таблица
(например, «Работодатель», «Картотека»),
экземпляру сущности – строка в таблице,
а атрибуту – колонка таблицы. В результате
проектирования было выделено шесть
сущностей.

Связь
на диаграмме отображает логическую
зависимость одной сущности от другой.
В IDEF1X различают зависимые и независимые
сущности. Тип сущности определяется ее
связью с другими сущностями. Идентифицирующая
связь устанавливается между независимой
(родительский конец связи) и зависимой
(дочерний конец связи) сущностями.
Экземпляр зависимой сущности определяется
только через отношение к родительской
сущности. Зависимая сущность изображается
на диаграмме прямоугольником со
скругленными углами.

На
нашей диаграмме зависимыми сущностями
являются: «Консультационный отдел».
Родительскими для нее являются сущности
«Работодатель» и «Трудоустраиваемый»
соответственно.

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

Для
того, чтобы однозначно идентифицировать
экземпляр сущности используется
первичный ключ (атрибут или группа
атрибутов). Атрибуты первичного ключа
на диаграмме не требуют специального
обозначения — это те атрибуты, которые
находятся в списке атрибутов выше
горизонтальной линии.

Например,
на  рис. 8 сущность «Работодатель»
однозначно идентифицирует первичный
ключ «Заявка работодателя(РК)» и «Дата
заявки работодателя(РК)».

При
установлении идентифицирующей связи
атрибуты первичного ключа родительской
сущности автоматически переносятся в
состав первичного ключа дочерней
сущности. Эта операция дополнения
атрибутов дочерней сущности при создании
связи называется миграцией атрибутов.
В дочерней сущности новые атрибуты
помечаются как внешний ключ — (FK). Пример
такой миграции атрибутов с участием
дочерней сущности «Консультационный
отдел», родительской сущности
«Работодатель» и первичного ключа
родительской сущности «Заявка
работодателя» и «Дата заявки работодателя»
представлен на рис. 10:

Рис. 10
— Пример миграции атрибутов

Сущности
и атрибуты, определенные в информационной
модели представлены в отчете (на рис.
11), сгенерированном с помощью пункта
меню Tools/Data Browser/Erwin Repots.

Entity

Name

Definition

Logical
Only

Картотека

Хранение
и проверка заявок

No

Консультационный
отдел

Консультация,
прием заявок, формирование отчетов

No

Работодатель

Анкета
заполняемая работодателем при
обращении в Службу занятости

No

Требования
предприятия

Требования,
предъявляемые работодателя к
трудоустраиваемому

No

Требования
трудоустраиваемого

Требования
трудоустраиваемого к работодателю

No

Трудоустраиваемый

Анкета
заполняемая трудоустраиваемым при
обращении в Службу занятости

No

Attribute

Name

Definition

Required

Is
PK

Заявка
работодателя

Анкета
заполняемая работодателем при
обращении в службу занятости

Yes

Yes

Дата
заявки работодателя

Дата
обращения работодателя в центр
занятости

Yes

Yes

Пол

Необходимый
пол работника

No

No

Возраст

Необходимый
возраст работника

No

No

Опыт
работы

Необходимый
опыт работы работника в данной области

No

No

Образование

Необходимое
образование работника

No

No

Прописка

Необходимая
прописка работника

No

No

Дополнительные
навыки

Дополнительные
навыки которыми должен владеть
работник

No

No

Заявка
трудоустраиваемого

Анкета
заполняемая трудоустраиваемым при
обращении в службу занятости

Yes

Yes

Дата
заявки трудоустраиваемого

Дата
обращения трудоустраиваемого в центр
занятости

Yes

Yes

Оплата

Желаемая
оплата труда

No

No

График
работы

График
работы

No

No

Адрес
предприятия

Место
нахождения предприятия устраивающее
трудоустраиваемого

No

No

Заявка
работодателя

Анкета
заполняемая работодателем при
обращении в службу занятости

Yes

Yes

Дата
заявки работодателя

Дата
обращения работодателя в центр
занятости

Yes

Yes

Название
фирмы

Полное
название фирмы

Yes

No

Должность

Предлагаемая
должность

No

No

Оплата

Возможная
оплата труда

No

No

Требования

Требования
работодателя предъявляемые к работнику

No

No

Телефон

Контактный
телефон работодателя

No

No

Адрес

Почтовый
адрес работодателя

No

No

Проверка
заявок

Проверка
заявок

Yes

Yes

Заявка
трудоустраиваемого

Анкета
заполняемая трудоустраиваемым при
обращении в службу занятости

Yes

Yes

Дата
заявки трудоустраиваемого

Дата
обращения трудоустраиваемого в центр
занятости

Yes

Yes

Заявка
работодателя

Анкета
заполняемая работодателем при
обращении в службу занятости

Yes

Yes

Дата
заявки работодателя

Дата
обращения работодателя в центр
занятости

Yes

Yes

Возврат
невыполненных заявок

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

No

No

Извещение
работодателю

Извещение
работодателя о том, что к нему направлен
рабочий

No

No

Извещение
трудоустраиваемому

Извещение
трудоустраиваемому о том, что его
направляют на работу

No

No

Отчет
о выполненных заявках

Отчеты
о выполненных заявках

No

No

Отчет
о невыполненных заявках

Отчеты
о невыполненных заявках

No

No

Проверка
заявок

Проверка
заявок

Yes

Yes

Заявка
трудоустраиваемого

Анкета
заполняемая трудоустраиваемым при
обращении в службу занятости

Yes

No

Дата
заявки трудоустраиваемого

Дата
обращения трудоустраиваемого в центр
занятости

Yes

No

Заявка
работодателя

Анкета
заполняемая работодателем при
обращении в службу занятости

Yes

No

Дата
заявки работодателя

Дата
обращения работодателя в центр
занятости

Yes

No

Заявка
трудоустраиваемого

Анкета
заполняемая трудоустраиваемым при
обращении в службу занятости

Yes

Yes

Дата
заявки трудоустраиваемого

Дата
обращения трудоустраиваемого в центр
занятости

Yes

Yes

ФИО

Фамилия,
имя и отчество трудоустраиваемого

No

No

Специальность

Специальность
трудоустраиваемого по которой он
хочет найти работу

No

No

Опыт
работы

Опыт
работы трудоустраиваемого по данной
специальности

No

No

Требования

Желаемые
условия для работы

No

No

Образование

Образование
трудоустраиваемого

No

No

Пол

Пол
трудоустраиваемого

No

No

Возраст

Возраст
трудоустраиваемого

No

No

Телефон

Контактный
телефон трудоустраиваемого

No

No

Адрес

Адрес
трудоустраиваемого

No

No

Соседние файлы в папке Проектирование информационных систем (ИС) курсовая работа 2

  • #
  • #

    25.12.20154.42 Кб95Код в txt.txt

  • #

    25.12.201527.28 Кб155Корсовая работа.bp1

  • #
  • #

    25.12.2015193.55 Кб145Файл ERwin.erwin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *