Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Теоретические основы автоматизированного управления

..pdf
Скачиваний:
16
Добавлен:
13.11.2023
Размер:
24.2 Mб
Скачать

2)установить связи между блоками;

3)провести нормализацию на уровне выделенных блоков. При необходимости на последующем этапе выполнить нормали­

зацию внутри блоков.

При однопользовательском режиме перечень полей определяется схемой (данных).

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

1.От схемы к подсхемам. На основе изучения документооборо­ та и алгоритма приложения (алгоритма преобразования) формирует­ ся схема, которая далее «разбрасывается» между пользователями.

2.От подсхем — к схеме. Для каждого пользователя выявляется

подсхема, из которых составляется общая схема [42, 56, 62].

В настоящее время данные извлекают на этапе анализа требова­ ний и потому чаще используют первый вариант.

Описанные варианты могут использоваться и на этапах фрагмен­ тации и локализации при построении распределенных базданных.

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

Логическая модель. Здесь проводят окончательную нормализацию данных. На этом этапе учитывают характеристики выбранной СУБД, вчастности, систему типов данных, методы обеспечения целостности данных, способы защиты и восстановления данных.

Физическую модель используют в случае выбора иерархической СУБД. При работе с реляционной СУБД физическое моделирование сводится к выбору размеров страниц (Delphi), областей данных (Oracle) и применяется, как правило, при построении сверхбольших (по объему) БД. Во всех остальных случаях используют «физические параметры» по умолчанию.

В реализации БД, как отмечалось ранее, выделяют «компьютер­ ное» создание собственно БД, интерфейса пользователя и алгоритма приложения (алгоритма преобразования).

Создание собственно БД предполагает использование языка программирования SQL или QBE для:

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

установления связей между таблицами с учетом ссылочной це­ лостности;

заполнения таблиц данными.

В заполнении таблиц выделяют: начальное заполнение — для тестовой проверки работы БД; рабочее заполнение. Заполнение воз­ можно осуществлять вручную (удобнее всего для небольших по объе­ му таблиц и при начальном заполнении) или программно (при заим­ ствовании данных из других электронных источников).

Ручное заполнение возможно двумя способами:

непосредственно самой таблицы (в том числе и через соответст­ вующие утилиты);

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

Интерфейс пользователя. Под интерфейсом пользователя [63] по­ нимают совокупность информационной модели (ИМ) проблемной области, средств и способов взаимодействия пользователя с этой мо­ делью, а также компонентов, обеспечивающих формирование ИМ в процессе работы программной системы. Интерфейс играет важней­ шую роль в «приживаемости» разработанных программных продук­ тов.

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

1.Ориентация на требования пользователя (а не на умение разра­ ботчика) — User_centred Design.

2.Согласованность (использование однозначных команд в рабо­ чей среде).

3.Наличие обратной связи от компьютера (сигнал о восприятии команды).

4.Простота интерфейса — предоставление только тех его элемен­ тов управления, которые нужны на данном шаге сеанса работы с про­ граммным продуктом. Под сеансом (сессией) понимается интервал времени от запуска продукта до выхода из него.

5.Гибкость интерфейса — способность учитывать уровень подго­ товки пользователя.

6.Учет эстетических требований, в которые включаются время освоения интерфейса, время решения задачи, субъективная удовле­ творенность удобством интерфейса.

7.Учет традиций предметной области.

8.Итерационный характер разработки интерфейса с учетом пред­ почтений пользователя.

9.Учет возможностей программных и аппаратных средств.

10.Возможность учета психологических характеристик пользова­ теля: левое полушарие мозга лучше воспринимает текст, правое — образы, изображения.

11.Учет возможностей упрощения программирования.

12.Малое время отклика компьютера: если интервал от запроса до ответа компьютера превышает 20 с, систему не считают интерак­ тивной.

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

Основой интерфейса пользователя является система элементов управления совместно с формами и отчетами. В качестве синхрони­ зирующего объекта в интерфейсе пользователя используют либо (го­ ловное) меню, либо кнопочную форму.

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

Алгоритмы приложения в современном подходе отличаются от алгоритмов приложения более сложными вычислениями с возмож­ ным формированием промежуточных объектов. Алгоритм приложе­ ния может быть написан на различных языках программирования, например, Visual Basic for Applications (VBA), Object Pascal, SQL. Впо­ следнем случае он выполняется в виде хранимых процедур, генерато­ ров, триггеров.

В заключение следует отметить, что процесс проектирования итерактивен: могут постоянно изменяться требования в ТЗ, составляю­ щие проектирования и реализации БД.

Система реализации БД в режиме «клиент—сервер» показана на рис. 7.19.

Режим

База данны х

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

Алгоритм прилож ения

Рис. 7.19. Система реализации режима «клиент—сервер»

В режиме «клиент—сервер» выделяются два варианта: локальный (сервер и клиент расположены на одном компьютере) и удаленный (сервер и клиент — на разных компьютерах).

КОНТРОЛЬНЫЕ ВОПРОСЫ

1.Назовите отличительные признаки концепции баз данных.

2.В чем отличие хранилища данных от базы данных?

3.Какие модели используют для описания предметной области?

4.Какие модели используют на концептуальном уровне?

5.Какие модели используют на логическом уровне?

6.Какие модели используют на физическом уровне?

7.Дайте краткую характеристику основных типов баз данных.

8.Сформулируйте подходы к проектированию баз данных.

9.Что такое СУБД и какие существуют ее стандарты?

10.Укажите способы реализации СУБД.

11.Опишите содержание процесса проектирования баз данных.

12.Какие существуют критерии оценки баз данных?

13.В чем суть объектно-ориентированной БД?

14.Назовите основные признаки объектно-ориентированного программи­ рования.

15.Перечислите основные положения объектно-ориентированных базданных.

16.Каковы преимущества объектно-ориентированных баз данных?

17.Какие существуютразновидности объектно-реляционных баз данных?

18.Укажите преимущества и недостатки объектно-реляционных баз дан­

ных.

19.Каковы преимущества использования распределенных баз данных?

20.Перечислите основные требования к распределенным базам данных.

21.Каковы отличительные черты архитектуры «клиент—сервер»?

22.Какие существуют разновидности архитектуры «клиент—сервер»?

23.Перечислите основные принципы проектирования баз данных.

ГЛАВА 8

Инструментальное обеспечение автоматизированного управления

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

8.1. ПРОГРАММНЫЕ СРЕДСТВА АСУ

Программное обеспечение АСУ можно разделить на две большие группы: базовые и прикладные средства.

Базовые программные средства включают в себя:

операционные системы (ОС);

языки программирования;

программные среды;

системы управления базами данных (СУБД).

Прикладные программные средства предназначены для решения комплекса задач или отдельных задач АСУ.

8.1.1. Базовые программные средства

ОС предназначены для управления ресурсами ЭВМ и процесса­ ми, использующими эти ресурсы. В настоящее время существуют две основные линии развития ОС: Windows и UNIX. Генеалогические линии данных ОС развивались следующим образом:

1)СР/М -» QDOS -» 86-DOS -► MS-DOS -> Windows;

2)Multics -» UNIX -» Minix -> Linux.

В свою очередь, каждый элемент линии имеет свое развитие, на­ пример, Windows развивался в такой последовательности: Windows 95, 98, Me, NT, 2000. Соответственно, Linux развивался следующим образом: версии 0.01,0.96,0.99,1.0,1.2,2.0,2.1,2.1.10. Каждая версия может отличаться добавлением новых функциональных возможно­ стей (сетевые средства, ориентация на разные процессоры, много­ процессорные конфигурации и др.).

Большинство алгоритмических языков программирования (Си, Паскаль) созданы на рубеже 60-х и 70-х годов XX в. (за исключением Java). За прошедший период времени периодически появлялись но­ вые языки программирования, однако на практике они не получили широкого и продолжительного распространения. Другим направле­ нием в эволюции современных языков программирования были по­ пытки создания универсальных языков программирования (Алгол, PL/1, Ада), объединявших в себе достоинства ранее разработанных.

Появление ПК и ОС с графическим интерфейсом (Mac OS, Windows) привело к смещению внимания разработчиков програм­ много обеспечения в сферу визуального или объектно-ориентиро­ ванного программирования, сетевых протоколов, баз данных. Это привело к тому, что в настоящее время в качестве инструментальной среды используется конкретная среда программирования (Delphi, Access и др.) и знания базового языка программирования не требует­ ся. Поэтому можно считать, что круг используемых языков програм­ мирования стабилизировался.

Анализ синтаксиса и семантики языков программирования пока­ зывает, что их родственные конструкции различаются главным обра­ зом «внешним видом» (набором ключевых слов или порядком следо­ вания компонентов). Содержимое практически идентично, за ис­ ключением небольших различий, не имеющих существенного значе­ ния. Таким образом, конструкции современных языков имеют общее содержание (семантику), различный порядок следования компонен­ тов (синтаксис) и разные ключевые слова (лексику). Следовательно, различные языки предоставляют пользователю одинаковые возмож­ ности при различном внешнем виде программ.

Стандартизацию языков программирования в настоящее время осуществляют комитеты ISO/ANSI, однако их деятельность направ­ лена в основном на неоправданное синтаксическое расширение язы­ ков. Для исключения существующих недостатков предложены спосо­ бы задания семантического и синтаксического стандарта языков про­ граммирования.

Семантическое описание любой конструкции языка (оператора, типа данных, процедуры и т. д.) должно содержать не менее трех обя­ зательных частей:

список компонентов (в тип «Указатель» это компоненты «Имя типа» и «Базовый тип»);

описание каждого компонента;

описание конструкции в целом.

Для синтаксического описания обычно используется формальное описание конструкции, например, в виде БНФ. Синтаксическое описание присутствует в любом языке, начиная с Алгола.

Среди большого числа языков программирования самую замет­ ную роль в развитии программирования сыграли три пары: Алгол-60 и Фортран, Паскаль и СИ, Java и Си ++. Эти языки неслучайно объе­ динены в пары, так как противостояние заложенных в них идей спо­ собствовало прогрессивному развитию.

В табл. 8.1 приведены основные сведения о наиболее распростра­ ненных языках, а в табл. 8.2 — о языках специального назначения (экспериментальных и промышленных) [67].

 

 

 

 

 

 

Таблица 8.1

Язык программирова­

Год соз­

Вид

Фирма

Стандарт

 

ния

дания

 

 

 

 

Фортран (FORTRAN)

1954

А

IBM

ИСО 1539:1997

Лисп (LISP)

1958

F

MIT

 

Алгол-60 (Algol 60)

1960

А

IFIP

 

Кобол (COBOL)

1960

А

COLASYL Commitete

ИСО 1989:1985

Симула

(Sumula)

1962

В

 

Бейсик

(BASIC)

1963

А

Darmouth College

ИСО

10279:1991

ПЛ/1 (PL/1)

1964

А

IBM

ИСО 6160:1979

Алгол-68 (Algol 68)

1968

А

IFIP

 

Паскаль (Pascal)

1970

С

ETH

ИСО 7185:1990

Форт (FORTH)

1970

А*

Mohasco Industrie

ИСО

15145:1997

Си (С)

 

1972

С*

AT&T Bell Labs

ИСО 9899:1999

Smalltalk

1972

В

Xerox PARC

 

Пролог

(Prolog)

1973

Е

Univ. of Aix-Marseille

ИСО

13211:1995

Ада (Ada)

1980

Н*

Cil Honeyell

ИСО

8652:1995

Си++

 

1984

Н*

AT&T Bell Labs

ИСО

14882:1998

Java

 

1995

н

Sun Labs

 

-

Язык программирова­

Год

Вид

ния

созда­

 

 

ния

 

АПЛ (APL)

1957

I

Снобол (Shobol)

1962

I

Сетл (SETL)

1969

I

Параллельный Пас­

1974

G

каль (Concurrent Pascal)

 

 

CLU

1974

D

Schema

1975

F

Mesa

1976

D*

Icon

1977

I

Модула-2 (Modula-2)

1979

D*

Оккам (Occam)

1982

G*

Cedar

1983

H*

Common Lisp

1984

F

Objective C

1984

H*

Эйфель (Eiffel)

198(J

D*

Оберон (Oberon)

1988

D*

Модула-3 (Modula-3)

1988

H*

Оберон 2 (Oberon-2))

1991

D*

Limbo

1996

D*

Component Pascal

1997

D*

C#

2000

H*

Фирма

Стандарт

Harvard Univ

ИСО

8485:1989

AT&T Bell Labs

 

IBM

 

CIT

 

MIT

 

MIT

 

Xerox PARC

 

AT&T Bell Labs

 

ETH

ИСО

10514:1996

Inmos

 

Xerox PARC

 

MIT

 

Productivity Products

 

ISE

 

ETH

 

DEC SRC

 

ETH

 

Bell Labs (Lucent)

 

Оберон Microsystems

 

 

•Поддержка системного программирования.

Виды (парадигмы) языков (в табл. 8.1 и 8.2) по областям примене­ ния следующие:

А— процедурное программирование;

Вобъектно-ориентированное программирование;

С— структурное программирование;

D — модульное (компонентное программирование); Е —логическое (реляционное) программирование;

F— функциональное программирование;

G— параллельное программирование ;

Н

— гибрид (смесь парадигм B+C+D +G);

I

— специализированный язык.

Рис. 8.1, Схема компиляции

Рис. 8.2. Схема интерпретации

Сокращения, используемые в табл. 8.1 и 8.2:

MIT

— Massachsetts Institute of Technology;

PARC

— Palo Alto Research

Center;

ETH

— Swiss Federal Institute of Technology;

SRC

— Systems Research Center;

ISE

— Interactive Software

Engeneering;

ISO

— International Standard Organisation;

CIT

— California Institute

of Technology;

Важно различать язык программирования и его реализацию. Сам язык — это система записи, набор правил, определяющих синтаксис и семантику программы. Реализация языка — это программа, которая преобразует запись высокого уровня в последовательность машин­ ных команд. Существует два способа реализации языка: компиляция (рис. 8.1) и интерпретация (рис. 8.2).

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

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

Рис. 8.3. Области пересечения и объединения языков программирования

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

использование общих конструкций (область пересечения) и ис­ ключение специфических конструкций языков (область объедине­ ния). Это приведет к «обеднению» всех языков программирования;

использование всех имеющихся конструкций (область объеди­ нения + область пересечения). Такой подход приведет к значитель­ ному расширению семантической базы и использованию дополни­ тельных ресурсов.

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

анализ требований;

разработка спецификаций;

проектирование;

макетирование;

написание исходного текста;

отладка;

документирование;

тестирование и сопровождение.

Соседние файлы в папке книги