Тариф
— система ставок платы за различные
производственные и непроизводственные
услуги,
предоставляемые компаниями,
организациями,
фирмами
и учреждениями.
К категории тарифов относят также
системы ставок оплаты труда.
3.1.3 Выбор инструментальных средств разработки и аппаратного обеспечения
–ТУТ
НАДО ПОДРОБНЕЙ РАСПИСАТЬ ПРО СРЕДСТВА
РАЗРАБОТКИ И ПРО РНР НАПИСАТЬ
1.
Инструментальные средства разработки
-
MS
Office
Visio
2007 – редактор диаграмм и блок-схем для Windows. -
MySQL
Server – реляционная
СУБД
компании
Oracle Corporation.
2.
Аппаратное обеспечение
-
Intel(R) Pentium(R) 4 CPU
3/00GHz -
ОЗУ
1.00 GB -
AGP
NVIDIA GeForce
7600 GS 256 MB -
ОС:
Microsoft
Windiws XP SP3
3.1.4. Описание выбранной технологии доступа к бд
Возможности динамического взаимодействия
и обработки данных веб-сервером широко
применяются для организации доступа к
серверным базам данных.
У
прощенная
схема работы веб-сервера при обращении
к БД приведена на рисунке.
К MySQL можно обратиться через интерфейсы
с другими языками программирования из
программ, написанных на C, Perl, PHP, Python и
других. Связка (PHP+MySQL) является наиболее
распространенной в сети Интернет на
текущий момент времени.
Язык PHP специально предназначен для
веб-программирования. PHP сочетает
достоинства языков C и Perl и при этом
весьма прост в изучении и обладает
значительными преимуществами перед
традиционными языками программирования.
Приложение реализовано при помощи СУБД
MySQL и PHP. Доступ к базам данных системы
происходит при помощи модуля шлюзов
php-mysql.
Д
анное
расширение Web-сервера запускается как
динамическая библиотека и выполняет
обработку каждого вызова сервера по
отдельной структуре памяти, что
значительно проще, чем создание отдельного
процесса для каждого клиентского
запроса. Наиболее известны два
API-интерфейса – NSAPI компании Netscape и ISAPI
компании Microsoft. Свободно распространяемый
популярный Unix-сервер Apache также имеет
модуль PHP, реализующий данный интерфейс.
Приложения, работающие через API,
соединяются с сервером значительно
быстрее, чем CGI-программы, так как API
выполняется в основном процессе сервера
и постоянно находится в состоянии
ожидания запросов, поэтому время на
запуск программы и порождения нового
процесса не требуется.
3.2.
Проектирование
3
.2.1.
Концептуальная модель
3.2.2.
Логическая модель
3.2.3. Физическая
модель
4. Заключение
4.1. Определение и
оценка результатов проекта и перспектив
его развития
В процессе реализации
проекта была создана база данных на
тему «Транспортная компания», которая
предназначена для оформления заказов
по грузоперевозкам, управления информацией
о водителях и созданию отчетов о работе.
Приложение
базы данных предоставляет удобные
инструменты и интерфейс для работы с
информацией, которые позволяют улучшить
качество и скорость каждой операции.
В
процессе проектирования были созданы
концептуальная, логическая и физическая
модели данных. Логическая
модель данных была перенесена в среду
СУБД MYSQL.
Для
таблиц определены первичные и внешние
ключи. Для внешних ключей определены
основные связи и ссылочная целостность.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Розроблено метод побудови словника термінів, що базується на попередній обробці множини текстів з заданої предметної області. Описана побудова множини фреймів, що визначають модель знань предметої області, на основі отриманого словника Ключові слова: словник, предметна область, фрейм, модель знань
Разработан метод построения словаря терминов, основанный на предварительной обработке множества текстов из заданной предметной области. Описано построение множества фреймов, определяющих модель знаний предметной области, на основе полученного словаря
Ключевые слова: словарь, предметная область, фрейм, модель знаний
A method to build a dictionary of terms is developed, which is based on a processing of preliminary set of texts from the given domain. Building a set of frames is described, which determine the domain knowledge model, based on a resulting dictionary
Key words: dictionary, domain, frame, knowledge model
УДК 004.89:004.823
МЕТОД ПОСТРОЕНИЯ
СЛОВАРЕЙ ПРЕДМЕТНЫХ ОБЛАСТЕЙ ДЛЯ ИЗВЛЕЧЕНИЯ ФАКТОВ ИЗ ТЕКСТОВ НА ЕСТЕСТВЕННОМ ЯЗЫКЕ
А.Б. Кунгурцев
Кандидат технических наук, профессор* Контактный тел.: (0482) 68-03-02 Е-mail: abkun@te.net.ua
С.Н. Бородавкин
Аспирант*
Контактный тел.: (0482) 44-38-59 Е-mail: lw0000@inbox.ru
А. П. Голуб
Магистр*
Контактный тел.: 066-606-17-88 Е-mail: bellerafont@gmail.com *Кафедра системного программного обеспечения Институт компьютерных систем Одесского национального политехнического университета пр-т Шевченко, 1, Одесса, Украина, 65044
1. Введение
В работе [1] выделены основные этапы процесса анализа текстов на естественном языке с целью выделения фактов:
1. Синтаксический разбор
2. Семантический анализ
Результатом синтаксического разбора является дерево разбора текста. При выполнении семантического анализа, пользуясь полученным деревом, необходимо построить модель знаний входного текста, представляющую собой сеть фреймов. В общем случае, выполнение такого построения является нетривиальной задачей, поскольку каждый фрейм должен отражать некоторое понятие из предметной области, а выделе-
ние таких понятий и соответствущих им терминов (слов, именных групп) сводится к:
– выделению имен существительных и отсечению служебных частей речи (предлогов, союзов и пр.), глаголов, прилагательных и т.д.
– составлению частотного словаря входного текста с целью выделению наиболее часто встречающихся понятий
– выполнению лингвистического анализа текста с учетом того, какой частью речи является рассматриваемое слово. Кроме того, необходимо произвести анализ взаимосвязей между словами в предложении, что позволит выделить устойчивые выражения.
Таким образом, для построения сети фреймов на основе произвольного входного текста, актуальной
является задача предварительного составления словаря предметной области, к которой относится анализируемый текст. Такие словари находят широкое применение в разработке информационных систем, создании объектного представления баз данных, систем поиска, а также справочных систем. Каждый из терминов такого словаря, фактически, представляет собой определение фрейма, а весь словарь – множество фреймов предметной области Fd. В дальнейшем, при выполнении семантического анализа текста из заданной предметной области, фреймы из словаря возможно наполнять содержимым (слотами). Очевидно, что модель знаний анализируемого текста может определять не все фреймы из Fd. Таким образом, после анализа текста, из Fd можно исключить фреймы, не получившие наполнения, получив множество Ft фреймов, раскрытых в тексте ^ с Fd).
2. Подбор текстов для анализа
Создание словаря предметной области основывается на анализе текстов, которые содержат термины, специфические для заданной предметной области. Соответственно для создания качественного словаря предметной области, необходимо подобрать такой набор текстов, который бы содержал максимальное количество специфических для данной предметной области терминов и при этом содержал небольшое количество терминов из другой предметной области. Однако, в большинстве случаев тексты содержат большое количество служебных слов, терминов из других или смежных предметных областей.
Для формирования набора исходных текстов можно использовать два подхода:
• автоматизированный
• ручной(привлечение эксперта)
Определение исходного набора текстов автоматизированным путем, является практически неразрешимой задачей, так как для отбора текстов Тот из исходного множества Тисх необходимо определить границы предметной области и разработать критерии принадлежности к ней. Для решения данной задачи необходимо применять глубокий семантический анализ, максимально разрешать все неоднозначности при синтаксическом и семантическом разборах, снимать омонимию. Т.е., по сути, для автоматизированного определения набора текстов, необходимо реализовать алгоритмы, во много раз более сложные, чем применяемые при непосредственном построении словаря предметной области, и потому выходящие за рамки решаемой задачи.
Под ручным методом формирования исходного набора текстов подразумевается привлечение стороннего эксперта (человека или группу людей, имеющих обширные познания в анализируемой предметной области, а также смежных с ней).
При отборе текстов для составления словаря предметной области необходимо проанализировать саму структуру области. Например, если предметная область некоторой организации достаточно велика, то в ней наверняка присутствуют структурные подразделения – бухгалтерия, отдел кадров и т.д. Очевидно, что данные подразделения имеют свою специальную
документацию и, соответственно, специфические термины предметной области. Таким образом, исходную предметную область можно разделить на несколько подобластей, каждая из которых характерна для определенного структурного подразделения организации.
Возможны ситуации, когда анализируемый текст имеет тезисное представление. Текст такого типа может содержать большое количество терминов предметной области, однако при этом частотные характеристики этих терминов будут невысоки, так как тезисы не допускают повторений и представляют информацию в максимально лаконичной форме. При анализе такого текста наряду с нетезисным текстом, возникает ситуация потери терминов с низкой частотой. Решить данную проблему можно введением весового коэффициента К^ показывающего важность текста с точки зрения формирования словаря предметной области. Весовой коэффициент задается экспертом на стадии отбора текстов для анализа и представляет собой число в диапазоне [0;10]. Данный коэффициент используется как множитель при расчете частоты вхождения термина (1):
N
f =—— ■ п К, (1)
сл х т I , V /
общ
где – частота вхождения, – количество вхождений слова в анализируемый текст, ^бщ – общее количество слов в тексте, п – количество слов, по которому определяется частота вхождения, К; – весовой коэффициент текста.
Выставляя повышенный коэффициент текстам, точно соответствующим предметной области, и уменьшенный, тем, что затрагивают смежные области, можно избежать попадания в окончательный словарь именных групп и слов, не относящихся к предметной области. Отсутствие процедуры предварительного подбора и оценки текстов приводило к существенному понижению качества словаря [2].
3. Выделение терминов
Термин – это слово, устойчивое словосочетание или сокращение, которое выражает и в известной мере классифицирует в данной предметной области определённое понятие или сущность, отражая в своей смысловой структуре характеристические признаки объекта терминирования и взаимосвязи этого объекта с другими с достаточной для взаимного общения точностью.
Термины, в отличие от общеупотребительных слов:
– выражают специальные понятия, имеют повышенную смысловую точность
– обладают свойством систематичности (отражают взаимосвязь понятий, появляющихся в процессе развития предметной области); пригодны к дальнейшему терминообразованию, т.е. к образованию производных терминов и употреблению в терминологических словосочетаниях;
– характеризуются краткостью.
– термин должен не только называть предмет, но и сообщать о нём, т.е. выполнять коммуникативную функцию языка.
уз
Для выделения терминов из анализируемого текста можно использовать статистические и лингвистические методы анализа.
Статистическая модель выделения терминов основывается на расчете частотных характеристик анализируемого текста, т.е. по сути, составление частотного словаря. Главным недостатком частотных словарей, с точки зрения выделения терминов, является то, что они не учитывают, какой частью речи является рассматриваемое слово. В соответствии с [3], наиболее часто встречающимися частями речи являются союзы, предлоги, местоимения и т.п., которые, очевидно, не могут быть терминами. Это обусловлено тем, что со статистической точки зрения язык представляет собой большое количество редких событий [4], в результате чего небольшое количество слов встречается очень часто, а подавляющее большинство слов имеют очень невысокую частоту.
Таким образом, статистический анализ, для выделения терминов непригоден, поскольку необходимо производить анализ текста с учетом того, какой частью речи является рассматриваемое слово, а также выполнять анализ взаимосвязей между словами в предложении. В отличие от статистических методов анализа, лингвистические методы позволяют осуществить такой анализ. Реализация таких методов является сложным техническим заданием, на основании чего было принято решение использовать сторонний продукт, для осуществления синтаксического и морфологического анализа (например, [5]).
Лингвистический анализ позволяет получить лемму анализируемого слова, а также определить, какой частью речи оно является.
Выделяемое из текста слово имеет следующий вид:
w = Рпогт,4гт,Р} (2)
где Fnorm – лемма слова, Fform – слово в той форме, в которой оно было выделено из текста, Р- идентификатор части речи (табл. 1):
Таблица 1
Идентификаторы частей речи
P Часть речи P Часть речи
1 существительное 7 причастие
2 глагол 8 деепричастие
3 прилагательное 9 предлог
4 наречие 10 союз
5 числительное 11 Частица
6 местоимение 12 вводное слово
Выделение леммы Fnorm является принципиально важным моментом. При статистической обработки множества слов, необходимо определить количество вхождений слова в обрабатываемый текст. Например, в анализируемом тексте можно встретить следующие вариации: «синтаксическим», «синтаксического», «синтаксическом». Все эти слова описывают одну и ту же сущность и имеют одинаковую лемму – «синтаксический».
Вторым важным преимуществом лингвистического разбора является возможность определения части
речи. Глаголы описывают действие, а не некоторую сущность предметной области, то есть не могут быть термином. Наречия и прилагательные описывают свойства некоторых объектов предметной области, однако сами по себе не называют их. Наиболее информативной частью предложения являются существительные. Существительные, как правило, являются подлежащими, дополнениями и несут основную смысловую нагрузку. Именно существительные представляют наибольший интерес с точки зрения выделения терминов предметной области.
Как было отмечено ранее, термином может являться не только отдельное слово, но и словосочетание. Во многих случаях именно словосочетание следует считать термином, а не отдельное слово.
Существительное и связанная с ним часть речи называется именной группой. Именной группой также может быть местоимение, заменяющее существительное, и связанная с ним другая часть речи. Однако, именная группа с местоимением не может являться термином, так как местоимение лишь указывает на предмет или лицо, но не называет их. Поэтому, для построения словаря предметной области необходимо выделять именные группы с существительными. Именная группа представляет собой два взаимосвязанных слова:
G = {{FnormFfOrm,Pl},{{Fn2ormFfOrm,P2},L} (3)
где Fnorm и Fll2orm – леммы слов, образующих именную группу, FfOrm и FfOrm – слова именной группы в форме, выделенной из текста, Р1 и Р2 – идентификаторы частей речи слов, входящих в именную группу (см. табл. 1), L – тип связи между словами в именной группе.
Например, для словосочетаний «синтаксический разбор» и «семантический разбор», если опираться лишь на выделение существительных из анализируемого текста, возможна ситуация, когда эти словосочетания будут опознаны как один и тот же термин
– будет выделено существительное «разбор», а прилагательное, описывающее тип разбора – «синтаксический» или «семантический» не будет учтено.
Наиболее информативными являются именные группы вида «существительное-прилагательное». Таким образом, именные группы, подлежащие выделению, имеют вид:
G = {{FnormFfOrm,Pl},{{Fn2ormFfOrm,P2},{1,3}} (4)
G = {{FnormFfOrm,Pl},{{Fn2ormFfOrm,P2},{3,1}}
4. Обработка результатов выделения терминов
В результате синтаксического и морфологического анализа текста, выделаются все слова и именные группы, которые были обнаружены в тексте. Очевидно, что необходимо определить критерий, по которому термины будут заноситься в словарь предметной области.
Количество вхождений получаемых на выходе синтаксического анализатора слов и именных групп в текст не может быть использовано как критерий вхождения в словарь, так как отражает данные только по одному тексту.
3
Например, в тексте Т1 некоторая именная группа G1 встретилась 100 раз, а в тексте Т2 именная группа G2 встретилась 50 раз. Однако величина «количество вхождений» никак не связана с объемом исследуемого текста, т.е. количеством слов и именных групп. Таким образом, текст Т2 может содержать в общей сложности 1000 именных групп, и тогда G2 составляет 5% от всех встреченных групп, в то время как Т1 может быть намного более объемным и содержать более 10000 именных групп, т.е. G1 составляет не более 1% от количества ИГ.
Универсальной частотной характеристикой можно принять величину (1), положив п = 1000 для слов и 100 – для именных групп (т.к. количество именных групп в текстах невелико относительно количества слов).
Определение вхождения слова или именной группы в словарь предметной области происходит в два этапа:
– предварительное определение границ вхождения
– экспертное определение границ вхождения
Эксперименты показали, что предварительное
определение можно выполнить путем сортировки кортежей выделенных слов и именных групп по убыванию их частот и выделению первых 10% элементов данных кортежей.
Предварительно сформированные списки слов и именных групп предоставляются на ревизию эксперту, который определяет, попали ли все важные термины данной предметной области, выделенные из некоторого текста, в словарь предметной области. Эксперт указывает слова, которые, должны или не должны присутствовать в конечном словаре предметной области. Используя частоту указанных экспертом слов, устанавливается новый критерий вхождения слова или именной группы в словарь.
5. Построение словаря предметной области
Процесс формирования конечного словаря предметной области можно рассмотреть с двух позиций:
– формировать словарь предметной области для каждого текста, а общий словарь предметной области будет являться их композицией.
– формировать общий массив слов и именных групп для всех проанализированных текстов и затем формировать словарь предметной области (возможна потеря важных терминов предметной области в связи с неравномерным распределением слов по анализируемым текстам).
Процесс построения словаря предметной области состоит в последовательной обработке некоторого множества текстов Тот и выделения из него слов и именных групп, являющихся терминами.
Множество отобранных текстов Тот определяется экспертом из некоторого множества исходных текстов Т.
1 ис-
Множество Тот может содержать как единичный текст, так и сотни различных документов. Необходимо разработать критерий готовности словаря предметной области.
Мощность множества |Тот| = п. При последовательной обработке текстов из заданного множества, на
каждой итерации обрабатывается очередной текст Т; из Тот. Для каждого Т; создается пара кортежей Мсл ;-ое и Миг 1^е, содержащих выделенные из 1-го текста слова и именные группы соответственно. Полученные кортежи включаются в Мсл.общ и Миг.общ. Мсл.общ – кортеж, содержащий выделенные слова всех обработанных текстов, Мигобщ, соответственно, содержит все именные группы.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
Таким образом, после обработки каждого текста словарь предметной области увеличивается. Процесс его формирования можно остановить после обработки j-го текста, в результате которой прироста количества терминов не произойдет.
6. Построение множества фреймов
При выполнении семантического анализа текстов из предметной области, для которой создан словарь терминов V, задача построения модели знаний значительно упрощается по сравнению с [1]. Более того, появляется возможность провести более качественный анализ, добавляя в модель знаний только факты, специфичные для предметной области. Вместо того, чтобы выделять из текста понятия, в процессе анализа необходимо лишь последовательно выявлять термины Wi, присутствующие в V. В результате заполнения слотов фрейма Fi, соответствующего Wi, модель знаний последовательно пополняется связями между фреймами.
7. Выводы
Разработан метод построения словарей предметных областей для определения множества фреймов, определяющих модель знаний. Проведенные исследования показали, что построение словаря нужно разбить на несколько этапов:
• определение набора текстов для формирования словаря предметной области
• выделение терминов из текста
• статистическая обработка выделенных терминов
Были сформированы рекомендации по отбору текстов экспертом, учитывающие возможную неоднородность предметной области, а также разработана модель весовых коэффициентов для определения степени принадлежности к предметной области.
Проанализировав структуру предложения в русском языке, а также роль частей речи, был сделан вывод, что наиболее информативными словами в предложении являются существительные и именные группы, образованные с их использованием. Именно они составляют основу терминологической базы предметной области и должны быть включены в словарь.
Сформулированы критерии попадания слова и именной группы в словарь предметной области, а также определен признак завершения построения словаря.
Предложенный метод может быть использован в различных приложениях: в информационных системах, для построения справочных и поисковых систем, в системах автоматизированного обучения, при анализе текстов на естественных языках.
Литература
1. О.Б.Кунгурцев, С.М.Бородавкін. Застосування мереж фреймів для побудови моделі вилучення фактів з текстів на природній мові // Искусственный интеллект, 2009. – №4.- С. 202 – 207.
2. А.Б.Кунгурцев, И.В.Барыкина. Формирование словаря предметной области // Искусственный интеллект, 2006. – №1.
3. С.А.Шаров. Частотный словарь русского языка. – РосНИИ. – 2001
4. George K. Zipf. Human Behavior and the Principle of Least-Effort. – Addison-Wesley. – 1949
5. http://cs.isa.ru:10000/dwarf/. Программный пакет синтаксического разбора и машинного перевода.
■D О
Наводиться стислий опис глобальної інфраструктури моніторингу Internet -ATLAS. Проаналізовано характер сучасного Internet-трафіку та здійснене прогнозування його річного зростання
Ключові слова: ATLAS, ISP, AS, Comcast, SPSS, AR1
□—————————————□
Приведено краткое описание глобальной инфраструктуры мониторинга Internet -ATLAS. Проанализирован характер современного Internet-трафика и выполнен прогноз его годового роста
Ключевые слова: ATLAS, ISP, AS, Comcast, SPSS, AR1
□—————————————□
This article represents the short description of ATLAS global Internet infrastructure. The major findings of modern Internet-traffic are analyzed and the forecast of its annual growth is made
Key words: ATLAS, ISP, AS, Comcast, SPSS, AR1
■о о
УДК 004.3:004.492
ПРОГНОЗИРОВАНИЕ ГОДОВОГО РОСТА ТРАФИКА ИНТЕРНЕТ, НА ОСНОВЕ ПОДОБРАННОЙ МОДЕЛИ ВРЕМЕННОГО РЯДА
В.В. Шкарупило*
Контактний тел.: 066-129-73-45 Е-mail: vadshkar@yandex.ru
К. Н. Касьян
Кандидат технических наук, доцент* Кафедра компьютерных систем и сетей *Запорожский национальный технический университет ул. Жуковского, 64, г. Запорожье, 69063
1. Введение
На сегодняшний день наблюдаются существенные структурные изменения характера 1П;ете^трафика. Хотелось бы особо акцентировать внимание на следующих ключевых аспектах (приведенные данные актуальны на четвертый квартал 2009 года):
– 150 автономных систем (AS) агрегируют в себе более 50% всего трафика глобальной сети 1П;ете^
– около 30 мировых корпораций генерируют 30% всего трафика;
– подавляющий объем трафика циркулирует между клиентом и сервером с данными: за год (с 2008 по 2009 год) относительная доля контентного трафика в общем объеме трафика выросла с 35 до 55%; такой стремительный рост дает все основания полагать, что именно вышеназванный тип трафика следует рассматривать в качестве центрального элемента, с целью анализа и прогнозирования;
– значительно снизилась стоимость услуг поставщиков Internet-сервисов (ISP), что обусловлено, прежде всего, высоким уровнем конкуренции, стре-
«Словарь данных представляет собой определенным образом организованный список всех элементов данных системы с их точными определениями, что дает возможность различным категориям пользователей (от системного аналитика до программиста) иметь общее понимание всех входных и выходных потоков и компонентов хранилищ…»
Г.Н. Калянов
Создание программных комплексов в современном мире информационных технологий требует все большего участия не программирующих пользователей, которые хорошо знают предметную область. Для этого необходим определенный инструментарий, а также описание данных системы, понятное и доступное не только для системных аналитиков и программистов, но и для пользователей. Один из вариантов решения этого вопроса предлагается в данной статье.
Предметно-ориентированная программная оболочка
Основное направление развития системного программирования – снижение трудозатрат высококвалифицированных специалистов путем автоматизации рутинных операций с одной стороны, и широкого вовлечения в создание программного обеспечения пользователя – с другой. И, если первая задача решается достаточно успешно, со второй практически ничего не получается.
В последние годы развиваются современные программные продукты, такие, как FoxPro, Delphi и т.д., которые призваны решать проблемы пользователя самим пользователем, более того, разработаны целые методики создания адаптируемых систем которые «повернуты лицом» к пользователю. Современное направление – CASE-технологии – призвано дать возможность проектирования программных систем без участия профессиональных разработчиков. Порой для программных CASE-продуктов выпускается специальное электронное оборудование. Примером может служить широко известный интерпретатор JAVA для которого фирма-разработчик SUN производит как JAVA-серверы, так и JAVA-станции. Этот язык, который широко используется для написания приложений в InterNet, предназначен для обработки, обмена и представления различного рода информации. Известно, что разработчику сложно получить исчерпывающую информацию для оценки требований к системе, он сталкивается с чрезмерным количеством разнородных сведений о предметной области, что затрудняет общее понимание задачи. Перспективным видится подход, при котором в процессе создании прикладного программного продукта максимально используются знания пользователя в сочетании с умением программиста. Для этого необходимо дать пользователю инструментальное программное средство, максимально приближенное по используемой системе понятий, интерфейсу, квалификации функциональных модулей к его предметной области. В данной статье предлагается один из подходов к решению проблемы – гибкая расширяемая система (ГРС), которая должна удовлетворять как конечного пользователя, так и разработчика программных продуктов.
Существуют разные направления создания систем, «повернутых лицом» к пользователю. Первый и более ранний – метод параметрической настройки, при котором решение задачи в конкретной области настройкой входных параметров обобщается до некоторого класса задач в этой области. Неудобство состоит в том, что проектируемая область изменения параметров определяется разработчиком, поэтому ограничена и не часто удовлетворяет пользователя, особенно, если автоматизируемый процесс претерпевает изменения. Второй метод – создание системы со своим входным языком, базирующемся на уже реализованном языке, с применением макросредств. Таким методом в свое время был реализован ряд расширений известных языков применительно к прикладным задачам. Но макросы также не решают поставленную выше проблему ввиду либо примитивности макросредств, либо высокой сложности программирования в профессиональной макросреде (например, ML-1 П.Брауна). Да и получившийся продукт – не конечная программа, он требует дальнейшей работы по программированию. Следующий метод – генератор программ. Он позволяет решать достаточно сложные задачи в разных предметных областях. Неудобство метода состоит том, что пользователь вынужден владеть как языком прикладной системы, так и языком представления задач (входным языком генератора), который, как правило, вызывает определенные сложности даже для опытного пользователя и чаще используется программистом. Четвертый, на наш взгляд, более технологичный метод – расширяющиеся системы (из современных систем к ним относится, например, Delphi). Основное достоинство метода в том, что имеющиеся средства разработки позволяют создавать достаточно развитые продукты на основе уже имеющихся наработок методом раскрутки. При этом пользоваться можно единственным языком, на котором в идеале выражаются все уточнения предметной области, кроме, разумеется, принципиально новых. Именно этот метод и положен в основу предлагаемой системы, хотя следует заметить, что и в этом случае порой потребуется вмешательство программиста.
При проектировании системы необходимо учитывать факторы, связанные с особенностями ее функционирования в конкретной прикладной среде, такие, как класс задач, для которого предназначается система, квалификация и уровень подготовки пользователя, потенциальные возможности системы, адаптация к другим предметным областям, перспективы развития данной предметной области, среды функционирования системы, вопросы ее коммерческого использования. Эти факторы, наряду с возможностями заказчика в финансировании разработки, в обеспечении техникой, инструментальным программным обеспечением, с возможностями программистского коллектива, определяют выбор средств разработки (языка программирования, СУБД).
Разумно предположить, что в процессе разработки приложений будут участвовать как пользователи, так и программисты. Ввиду того, что не все задачи можно решить методом раскрутки на уровне пользователя, система должна предусматривать возможность расширения и на уровне программиста (разработчика).
Уточним понятие расширяемости. В нашем случае это означает, что система имеет ядро, которое решает прикладные базовые задачи в математической и специальной постановке и способно включать новые функции и приложения. Способ (язык) расширения предполагает непосредственно участие пользователя путем формулировки им прикладной задачи. Кроме того, система предполагает расширение ядра на уровне программиста для того, чтобы реализовать достаточно сложные алгоритмы обработки данных. Система предъявляет относительно невысокие требования к квалификации программиста, что позволит успешно работать с ней в организациях, не способных содержать штат высокооплачиваемых программистов.
Пользователю должна быть представлена информация о функциях и процедурах системы, для возможности профессиональной обработки данных. Таким образом, необходимо создать многоуровневый словарь процедур и функций, в целях упрощения их применения пользователем. Пользователь должен иметь возможность настроить свое рабочее место по своему вкусу, поэтому интерфейс системы должен модифицироваться путем добавления нужных и удаления ненужных ему пунктов иерархического меню, процедур и функций. Понятие «расширяемая» для разработчика программных приложений носит куда более широкий характер. В системе реализуется возможность добавлять собственные библиотеки процедур и функций, программные модули и собственно программные приложения.
Пользователю необходимо свободно общаться с доступными ему данными системы. Это достаточно сложная задача. В данной системе ее предлагается решить с помощью многоуровневых словарей данных, которые в зависимости от уровня доступа пользователя будут наглядно представлять ему доступную структуру данных, тем самым упрощая составление запросов и отчетов. Пользователь может составлять свои таблицы, включая их, по своему желанию, для общего пользования, при этом словарь данных будет пополняться.
Определение элементов данных в словаре
При проектировании сложных систем аналитик должен хорошо представлять общую организацию данных. Данные системы описываются с помощью таких понятий, как поток данных, хранилище данных, процесс и внешняя сущность. Под потоком данных будем понимать способ передачи информации из одной части моделируемой системы в другую. Тогда процесс – операция (группа операций), преобразующая входные потоки данных в выходные, а хранилища – временные «срезы» потоков данных. Внешнюю сущность определим, как источник или приемник данных системы, не участвующий в общем процессе обработки. Таким образом, можно визуализировать модель системы, строя диаграмму потоков данных с использованием нотации Йордана или Гейна-Сарсона.
Для того, чтобы словарь данных отвечал задаче проектирования, его элементы должны содержать описание потоков, хранилищ, композиции комплексных данных (расчленяющихся на элементарные), движущихся по потокам, и групповых данных хранилищ, описание деталей отношений между хранилищами.
CASE-средства различных компаний предоставляют для разработчиков возможность работы со словарями данных. Значительно упрощают работу графические средства, реализующие диаграммы потоков данных – DFD (Data Flow Diagrams) и диаграммы «сущность-связь» ERD(Entity-Relationship Diagrams). Например, Oracle Corporation создала группу CASE-продуктов, таких, как Case*Dictionary, Case*Designer, Case*Generator, позволяющих не только модифицировать и документировать все этапы разработки системы, но и моделировать процессы и потоки данных в системе. Так, Case*Dictionary управляет хранилищем информации, создаваемой и используемой другими средствами Oracle CASE. Case*Designer имеет различные средства, моделирующие, в частности, потоки данных и процессы с помощью графических инструментальных средств DFD и ERD. Вся информация из Case*Designer автоматически регистрируется Case*Dictionary и сохраняется в ее центральном хранилище. Case*Generator автоматически генерирует внутреннюю базу данных, интерфейсные приложения работы с формами и отчетами, превращая, таким образом, проект в реальную систему.
Но конечного пользователя эти проблемы касаются мало, в частности потому, что он либо не принимает вовсе, либо принимает ограниченное участие в разработке ядра системы. В силу того, что пользователь сложной системы работает лишь с ее частью (подсистемой), его в основном интересуют данные, связанные непосредственно с участком работы, за который он отвечает и который обычно имеет локальный характер. Для привлечения пользователя к разработке в части извлечения из него информации о предметной области необходимо, чтобы словарь предметно-ориентированной программной оболочки был структурирован по автоматизированным рабочим местам пользователя (АРМ) и администратора системы. Но это не исключает существования общего словаря данных, здесь лишь отмечается особенность подхода к проблеме его создания в предметно-ориентированной оболочке.
Перейдем теперь к классификации данных с точки зрения доступа к ним пользователя (администратора) системы. Заметим, что идеология предметно-ориентированной оболочки допускает отсутствие описания (отображения) некоторых данных в словаре системы. В основном это данные, связанные с настройкой и жизнеобеспечением системы, защитой от несанкционированного доступа и т.п. Разработчик приложений в этом случае сможет получить необходимую дополнительную информацию особо.
Исходя из концепции предметно-ориентированной оболочки, словарь должен содержать описание структуры данных, определенной разработчиком (поставляемыми с системой) и определенной пользователем, характерной только для конкретного АРМа. Некоторые элементы пользовательской структуры в силу локальности могут не включаться в общий словарь данных.
Введем некоторые определения и обозначения, которые будут использоваться в дальнейшем изложении, а также примем некоторые ограничения, которые служат для упрощения общепринятой концепции словаря данных. Это необходимо для построения модели словаря данных предметно-ориентированной оболочки.
Определение 1
Хранилищем будем называть файл, предназначенный для хранения данных системы, имеющих стандартный формат таблицы, характеризующийся постоянной структурой. Формат записи: «имя хранилища».
Определение 2
Атрибутом хранилища назовем атрибут таблицы (поле). Формат записи: «имя хранилища».»название поля».
Определение 3
Дугой будем называть направленную связь между двумя хранилищами. Формат записи: “имя хранилища”-“имя хранилища”.
Атрибуты, включаемые в словарь, подразделяются на первичные и вторичные.
Определение 4
Под первичными данными будем понимать 1) данные хранилищ, полученные в результате первого преобразования внешних входных данных системы в данные формата хранилищ; 2) данные хранилищ, вводимые пользователем вручную.
Определение 5
Вторичные данные – данные хранилищ, получаемые в процессе обработки первичных данных.
Определение 6
Набор хранилищ – совокупность хранилищ, получаемых в результате одинакового числа процессов, первый из которых применяется к первичным данным.
Под нулевым набором D0 будем понимать первичные данные. Если есть (n-1)-й набор Dn-1, то Dn получается из него применением n-го процесса.
Исходя из этих определений, можно построить граф, узлы которого – хранилища (см. рис. 1).
Рис.1.
ik – k-й набор хранилищ.
Обозначим атрибуты хранилищ как узлы графа, тогда получим ациклический граф атрибутов (см.рис. 2). Это объясняется тем, что замкнутый процесс перехода атрибута dikjn в самого себя недопустим. Полученный граф назовем А-графом.
Рис.2.
dikjn – jn – n-й атрибут, ik – ого хранилища.
Будем классифицировать первичные и вторичные данные и разобьем их по группам. Данные, которые могут быть только первичными (входными) подразделяются на
1) группу внешних данных;
2) данные, которые в процессе эксплуатации системы не изменяются -справочные (справочники);
3) группу пользовательских входных данных – вводимые пользователем вручную.
Данные второй группы являются базовыми для некоторых операций, поэтому их удобно выделить в особую группу. Пользовательский доступ к ним следует ограничить. Все три группы описываются в словаре системы.
Данные, которые могут быть только вторичными (выходные) классифицируем как временные и постоянные. К временным отнесем выходные данные, получаемые посредством запросов, отчетов и т.п. Они формируются только для просмотра при каждом обращении к ним. К постоянным – данные, формируемые в виде файлов, в данном случае, в виде файлов-таблиц. В словарь будем вносить только файлы-таблицы.
Данные, которые могут быть как первичными, так и вторичными (переходные) имеет смысл заносить в словарь, если они формируются в виде файлов-таблиц.
Исходя из предложенной концепции построения словаря данных видно, что словарь предметно-ориентированной оболочки может не содержать описания всех потоков и хранилищ данных, т.е. с точки зрения классического определения словаря информация в нем будет не полной. Построение по такому словарю системы обычными методами невозможно, но основное его предназначение в том, чтобы облегчить работу пользователя со своим АРМом и помочь ему создать свои запросы и приложения. С другой стороны, словарь, отражающий точку зрения пользователя на предметную область, может служить важным источником знаний о ней в процессе разработки и сопровождения системы.
Для того, чтобы пользователь мог работать со словарем, необходим доступный ему по интерфейсу и множеству используемых понятий инструментарий.
Атрибут | Название атрибута | Тип | Размер |
Cod_db | Идентификатор хранилища | N | 5 |
nam_db | Название хранилища | C | 50 |
typ_db | Группа хранилища | N | 1 |
Индексы таблицы: | |||
Название | Выражение | Связанные таблицы | |
Cod_db | Список атрибутов хранилищ | Cod_db | |
nam_db | Граф хранилищ | nam_db |
Построение реляционной модели словаря предметно-ориентированной оболочки
Для удобства организации пользовательского интерфейса словаря, следует создать таблицу, содержащую список хранилищ системы. В соответствии с распределением хранилищ по группам, кроме обычных атрибутов для подобных таблиц, необходимо хранить признак разбиения.
Атрибут | Название атрибута | Тип | Размер |
Cod_db | Идентификатор хранилища | N | 5 |
Cod_a | Идентификатор атрибута | N | 5 |
name_pole | Имя атрибута | C | 10 |
nam_a | Название атрибута | C | 50 |
typ_а | Группа атрибута | N | 1 |
type_pole | Тип атрибута | C | 1 |
len_pole | Размер атрибута | N | 3 |
len_dec | Размер десятичной части | N | 3 |
Индексы таблицы: | Название | Выражение | Связанные таблицы |
Cod_db | Cod_db | Список хранилищ | name_pole |
Cod_a | Cod_a | Сеть атрибутов | name_pole |
Для хранения атрибутов хранилищ необходимо создать специальную таблицу, которая будет связана с первой таблицей «Список хранилищ» по полю «Идентификатор хранилища». Каждая запись таблицы «Список атрибутов хранилищ» должна содержать код хранилища для каждого атрибута, (таким образом реализуется связь типа «один ко многим»), а также полную информацию о каждом атрибуте хранилища.
Атрибут | Название атрибута | Тип | Размер |
Cod_i_db | Идентификатор первичного хранилища | N | 5 |
Cod_o_db | Идентификатор вторичного хранилища | N | 5 |
Индексы таблицы: | Название | Выражение | Связанные таблицы |
Cod_i_db | Cod_i_db | Список хранилищ | (cod_db) |
Cod_o_db | Cod_o_db | Список хранилищ | (cod_db) |
Для описания потоков данных на уровне хранилищ, необходимо хранить информацию, описывающую граф (см. рис. 1), т.е. таблица «Граф хранилищ» должна иметь ссылку на таблицу «Список хранилищ», а также содержать информацию о направлении потока данных. Исходя из структуры таблицы 1, достаточно хранить код первичного и вторичного хранилищ.
Замечание
Подробное описание построения индексов и обоснование этого построения будет дано при введении операций над словарем.
Атрибут | Название атрибута | Тип | Размер |
Cod_i_a | Идентификатор первичного атрибута | N | 5 |
Cod_o_a | Идентификатор вторичного атрибута | N | 5 |
Индексы таблицы: | Название | Выражение | Связанные таблицы |
Cod_i_db | Cod_i_db | Список атрибутов | cod_a |
Cod_o_db | Cod_o_db | Список атрибутов | cod_a |
Для описания потоков данных на уровне атрибутов необходимо хранить информацию, описывающую А-граф (рис. 2). Таблица «Граф атрибутов» должна иметь ссылку на таблицу «Список атрибутов хранилищ» и содержать информацию о направлении потока данных. Исходя из структуры таблицы 2, достаточно хранить код первичного и вторичного атрибутов.
Рассмотрим теперь операции, которые пользователь может выполнять со словарем данных. Во-первых, это операции, связанные с добавлением, корректировкой и удалением хранилищ из списка, если данные хранилища относятся к группе пользовательских (заметим, что физически хранилища удалятся не будут, удаление производится в представлении пользователя). Во-вторых, это пополнение собственного словаря из общесистемного или из словаря другого пользователя. В-третьих, вывод данных на уровне хранилищ или атрибутов (по желанию), сортируя их по группам входных, выходных данных и, отдельно, справочных и пользовательских. В-четвертых, просматривать потоки по дугам для данного хранилища или получать список хранилищ между конкретным входным и выходным хранилищам. В-пятых, определять для данного хранилища вторичные данные или, что гораздо интереснее, определять первичные для конкретных вторичных данных на уровне хранилищ и атрибутов.
Организация словаря данных осуществляется с помощью графического пользовательского интерфейса. Визуальное представление в виде диаграмм потоков данных и диаграммы «сущность-связь» осуществляется только для администраторов системы с помощью прикладных пакетов типа «ERwin». Реализация данной концепции словаря данных будет осуществляться с помощью СУБД FoxPro 2.6 for Windows 3.1 и выше и СУБД FoxPro 5.0 for Windows 95, а также Windows NT 3.5 и выше.
Литература
1. Бобровски С. Oracle 7 вычисления клиент/сервер М.: «Лори», 1996.
2. Калянов Г.Н. CASE структурный системный анализ. М.:, «Лори», 1996.
3. Козлинский А.В. CASE-технология: индустриальная разработка систем обработки информации // Компьютерное обозрение. 1993 №1 С.29-40
4. Липаев В.В. Управление разработкой программных комплексов. М.: Финансы и статистика, 1993
5. Фокс Д. Программное обеспечение и его разработка. М.: Мир, 1985.
Словарь данных
Недостатком ER-диаграмм является их недостаточная детализация данных, поэтому они часто дополняются более подробным описанием, которые собираются в словари данных.
Словарь данных представляет собой определенным образом организованный список всех элементов данных системы с их точными определениями, что дает возможность различным категориям пользователей (от системного аналитика до программиста) иметь общее понимание всех входных и выходных потоков и компонентов хранилищ…
Словарь данных содержит описание сущностей (таблиц), включающее в себя определение атрибутов, а также дополнительные сведения, например, единицы измерения и диапазоны изменения атрибутов, цель определения такого объекта, сведения о его разработчике и времени создания и т.д.
В каталоге docs
этого репозитория лежит шаблон словаря данных.
Возьмем описание предметной области одного из предыдущих демо-экзаменов и заполним словарь данных:
Подсистема работы с клиентами
Подсистема работы с клиентами включает в себя возможность добавления новых клиентов, отслеживание их посещений, а также контроль их бонусной программы.
Запись о клиенте содержит следующие данные: фамилию, имя, отчество, дату рождения, телефон, электронную почту, пол, дату первого посещения (регистрации), фотографию клиента. В связи с тем что у компании большое количество клиентов, то их удобно собирать с помощью определенных ярлыков (тегов), которые позволят очень удобно помечать клиентов (например, новый, постоянный, проблемный, горячий). Теги помимо названия должны иметь еще и определенный цвет.
Посещения клиента в рамках оказания услуг должны обязательно фиксироваться в БД.
Для начала, размеремся какие параметры заносятся в словарь данных
-
Key – признак, что поле является ключём. Для разных типов ключей приняты определенные обозначения:
- PK – первичный ключ (primary key)
- FK – внешний ключ (foreign key)
- IDX – индекс (альтернативный ключ)
Не нашёл как описывать составные ключи
-
Field Name – название атрибута (латиницей). Ещё раз напоминаю, что мы везде используем CamelCase
-
Data Type/Field Size – тип данных / размерность поля
-
Required? – вписывается “Y”, если поле обязательное (для не обязательных ничего не пишем)
-
Notes – примечание. Заполняется, если назначение поля не самоочевидно из названия или для поля есть домен
Пример заполнения элемента словаря данных
Во-первых, Выделим из описания предметной области сущности:
- Клиент
- Пол клиента
- Теги клиента
- Посещения клиента
Заполним элемент словаря данных на примере таблицы Клиент
Key | Field Name | Data Type/Field Size | Required? | Notes | Мои примечания |
---|---|---|---|---|---|
PK | Id | INT | Y | Синтетический первичный ключ, тип всегда INT (целое) | |
LastName | varchar(30) | Y | Фамилия (строка), обязательное поле | ||
FirstName | varchar(30) | Y | Имя (строка), обязательное поле | ||
MiddleName | varchar(30) | Отчество (строка), НЕ обязательное поле | |||
BirthDay | DATE | Y | Дата рождения | ||
Phone | varchar(20) | Y | Телефон (тут тип данных может быть INT) | ||
varchar(20) | Y | Электронная почта | |||
FK | GenderId | INT | Y | Ссылка на словарь Gender | |
FirstVisit | DATE | Дата первого посещения (регистрации). В принципе эту дату можно достать из таблицы “Посещения клиента” | |||
Photo | BLOB | Фотографию клиента можно хранить в базе, но можно и в каком-либо каталоге на сервере | |||
FK | TagId | INT | Ссылка на словарь Теги клиента. Причем тут опять же в зависимости от ТЗ может понадобиться промежуточная таблица, если у клиента может быть несколько тегов |