Тема Введение: научное мировоззрение, инженерный подход

Вид материалаКонспект

Содержание


Программная система
Методология разработки программных систем
Тема 2. Методологическая классификация автоматизированных информационных систем, направлений и методологий их исследования.
Тема 3. Эволюция информационных технологий.
Информация и данные.
Эволюция информационных средств автоматизации.
Машинно-ориентированные языки (ассемблеры).
Алгоритмические языки.
Языки Лисп и Пролог
Фортран и Кобол
Пакеты прикладных программ.
Системы управления базами данных
Системы автоматизированного проектирования
Искусственный интеллект и экспертные системы.
Распознавание образов
Распознавание языка и речи.
Обучающие системы.
Экспертные системы (ЭС)
Инженерия знаний.
Интегрированные системы.
...
Полное содержание
Подобный материал:
  1   2

Конспект лекций ч2

«Логика и методология науки ( информационные системы и технологии)»


Тема 1. Введение: научное мировоззрение, инженерный подход.

Основные определения и преемственность научного мышления: методика, метод, технология, методология.


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

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

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

Программная система (ПС) – совокупность программ, выполненных на языках программирования, пригодных для исполнения на ЭВМ, с зафиксированными показателями качества и снабженная комплектами документов достаточными для ее эксплуатации по назначению как продукции производственно-технического назначения и (или) ее модернизации и развития как продукции инженерно-творческой деятельности. Если акцент в изложении делается на производственный аспект, то будем употреблять термин «программное обеспечение», если же программная система рассматривается, как объект инженерной разработки, то будем употреблять термин «программное средство».

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

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

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

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

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


Тема 2. Методологическая классификация автоматизированных информационных систем, направлений и методологий их исследования.


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

В настоящее время, когда стоимость компьютерных технических ресурсов уменьшается при постоянно увеличивающейся мощности их физических характеристик, а стоимость таких ресурсов как профессионализм кадров (образование, уровень интеллектуального развития, опыт работы и пр.), объем и доступность информации превалируют в составляющих производственных затрат автоматизированных предприятий, становится актуальной тенденция к сдвигу приоритетов в сторону учета человеческих факторов. Все большее внимание уделяется «человеческой» стороне компьютерных технологий: проблемам подготовки кадров, инструментальным средствам автоматизации, технологиям производства и пр. Как следствие, наибольшее развитие получают исследования в области программного обеспечения как уникального артефакта позволяющего эффективно решать проблему дуализма «человек-машина» и обладающего свойствами: относительной независимостью, гибкостью, настраиваемостью, адаптируемостью к быстро эволюционирующим вычислительным средствам и условиям конкретного применения.

Важнейшую роль в увеличении эффективности программных систем играют средства автоматизации технологических процессов их разработки. История развития средств автоматизации начинается с языков программирования, основанных на теории алгоритмов (работы Айзермана М.А., Алферовой З.В., Дайинтбекова Д.М., Ершова А.П., Иодан Э. И., Трахтенброта Б.А. и др.) и формальных языков (труды Ахо А, Глушкова В.М., Гилл А., Грис Д., Криницкого Н.А. и др.), и в плоть до развития современных интеллектуальных объектно-ориентированных визуальных систем автоматизированного проектирования с присущими им языковыми средствами представления информации (Буч Г., Вейнерова О.М., Горева А., Ирэ Пол, Куприянова В.В., Скворцова С.В. и др.).

Требования, предъявляемые к качеству, надежности и эффективности программного обеспечения, постоянно возрастают, одновременно с увеличением его сложности и стоимости, что в свою очередь является движущей причиной увеличения затрат на развитие прикладных наук в области технологий разработки программного обеспечения. Оценке качества программного обеспечения уделяется большое внимание в работах Балыбердина В.А., Гасел Д. Ван, Липаева В.В. и др. В основе современной теории надежности лежат материалы Варжапетяна А.Г., Гаскарова Д.В., Голинкевича Т.А, Глас Р, Кузнецова С.Е., Лонгботтом Р., Майерс Г., Пальчун Б.П. и др. Эффективность программного обеспечения является отражением различных теорий эффективности в исследованиях Гаспарского В., Селезнева М.А., Феррари Д.

Отечественный и зарубежный опыт показывает, что большой потенциал повышения эффективности программного обеспечения закладывается еще на ранних этапах разработки – сборе исходных данных, структуризации, формализации предметной области, постановки задачи и т.д. На современном уровне развития эти этапы с трудом поддаются формализации и, как правило, большая их часть выполняется на основе здравого смысла, инженерного опыта и интуиции. Из наиболее крупных направлений научного исследования этой проблемы выделяются:
  • CASE-технологии (Computer Aided Software Engineering), которые представляют собой методологию проектирования, язык спецификаций (как правило, в виде графических нотаций), инструментальные средства моделирования и анализа предметной области. Это научное направление представлено в работах Калянова А.Н., Эпштейна В.Л., Путилова В.А., Марк Д., Джонс Дж.К., Зиглер К. и др. С инженерно-технической точки зрения (ориентация CASE-технологий) наибольший интерес вызывают концептуальные и логические модели проектных решений, уровень формального представления которых позволяет использовать для их анализа и синтеза аппарат математической логики (Колмогоров А.Н., Нечипоренко В.И., Поспелов Д.А., Журавлев Ю.И., Шоу А. и др.), легко поддающийся автоматизации на базе современных ЭВМ.
  • Когнитология – научная дисциплина, которая интегрирует в себе знаковые (символьные) и структурные методы представления знаний (работы Костина А.Е., Венда В.Ф., Бауэр Ф., Коллинз Г, Пирс Д.,) с учетом методов дисциплины искусственного интеллекта (труды Поспелова Г.С, Попова Э.В., Рафаэль. Б., Эндрю. А., Марселлус Д. и др.). С научной точки зрения (ориентация когнитологии) наибольший интерес представляют исследования по развитию синтаксических, семантических и процедурных моделей и переход к семиотическому моделированию знаний.
  • Научное направление по исследованию аппарата спецификаций, который исследует формальные методы структуризации и оценки знаний (развит в работах Агафонова В.Н., Глушкова В.М., Деметрович Я., Лисков Б., Феррари Д. и др.). Это научное направление представляет интерес с точки зрения теории познания и представления объектов и предметов моделирования с учетом эргономических аспектов человеческого фактора.

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

В широком смысле слова наука «моделирование» АИС является научно-творческой дисциплиной, истоки которой можно найти в научных материалах акцентирующих внимание на различных аспектах изучения, в том числе можно выделить:
  • В работах Орлова П.И., Хетагурова Я.А., Ханзен Ф., Хоар Ч. акцент делается на системотехническое (инженерное) проектирование.
  • Материалы Джонс Дж. К., Диксон Дж. Р, Петренко В.Ф., Хилл П., посвящены творческой составляющей разработки технических систем, учету человеческого фактора.
  • В трудах Холл А.Д., Холстед М., Чен Ш., рассматриваются общеметодологические подходы к представлению систем.
  • В работах Гантер Р., Гласс Р., Дейкстра Э., Кнут Д. раскрываются технологии разработки ПС.
  • В работах Коллинз Г., Костина А.Е., Лазарева И.А. программные системы выступают, как самостоятельные системо-образующие объекты исследования.
  • Философским, психологическим, эргономическим проблемам, связанным с автоматизацией технических систем, посвящены труды Арбиб М., Венды В.Ф., Голяса Ю.Е., Горского Ю.М., Косарева Ю.А., Мюллер И., Мячева А.А., Пятницына Б.Н., Ракитова А.И., Сетрова М.И.

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

В широком понимании термин "программное обеспечение" охватывает функциональные и служебные программы, средства автоматизации программирования, тестирования, отладки и т.п. Решение проблем возникающих при разработке программного обеспечения бесконечно разнообразно, но может быть достаточно полно представлено конечным набором системных задач. Этот набор взаимосвязанных системных задач получается в результате применения фундаментальных принципов, в основе которых лежит классификация и организация программного обеспечения как системы. Поэтому, говоря в дальнейшем о системологических аспектах программного обеспечения, мы будем употреблять термин «программная система». Материалы, которые изложены в трудах Бусленко Н.П., Буркова В.Н., Глушкова В.М., Колесникова Д.Н., Клир Дж., Лазарева И.А., Мамиконова А.Г., Нечипоренко В.И., Попова С.А., Перегудова Ф.И., Советова Б.Я. и многих других являются классическим представлением концепций системологии. В развитие этого научного направления можно отметить следующую тенденцию: на сегодняшний день, большими темпами развиваются разделы информатики, которые решают проблемы единства научного знания и формирования единой научной картины мира, охватывающей не только технику, но и окружающую природу и человека.

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

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


Тема 3. Эволюция информационных технологий.

Информация и данные. Знание и языки. Элементы аналитической теории алгоритмов. Эволюция языковых средств разработки АИС. Эволюция инструментальных средств и направлений развития АИС.


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

Укажем три типа отношений знаков и знаковых конструкций, фиксирующих и выражающих знания.
  1. Семантические отношения - правила установления смысла и значения знака или знаковой конструкции. Знак и знаковая конструкция обозначают некую вещь, процесс, предмет, ситуацию, действие или систему действий, каждый знак или знаковая конструкция должны иметь смысл и значение, чтобы расцениваться как средство выражения знаний.
  2. Синтаксические отношения – правила синтаксиса между знаковыми конструкциями. Они указывают, как из одних осмысленных выражений получить другие, тоже осмысленные, с более или менее определенным значением.
  3. Прагматические отношения - правила описания наборов и последовательностей действий, которые должны или могут осуществляться на базе тех или иных знаний. Все системы действий, выполняемых человеком, опираются на знания. Они образуют информационную базу деятельности.


Информация и данные.

Рассмотрим понятия "информация" и "данные".

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

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

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



Где D - множество данных; R - множество возможных результатов; r=f(d) - функция реализации критерия выбора.

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

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

Решение этого вопроса лежит в сфере развития программного обеспечения.

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

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

Техническое обеспечение - множество физических ресурсов составляющих вычислительный комплекс.

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


Эволюция информационных средств автоматизации.

Выделим основные этапы развития программного обеспечения.

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

Машинно-ориентированные языки (ассемблеры). Первым шагом в этом направлении явилось создание так называемых автокодов. Автокоды являются первыми машинно-ориентированными языками программирования. Понятие машинно-ориентированные означает, что программы написанные на автокоде, могут выполняться только на тех ЭВМ, для которых разработан соответствующий автокод. Состав и структура автокода полностью соответствуют составу и структуре команд ЭВМ.

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

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

Бейсик. Исторически одним из самых популярных языков высокого уровня для ПЭВМ стал Бейсик. Прежде всего Бейсик очень прост в освоении и использовании. Написать на Бейсике небольшую программу в 10-20 строк и тут же ее использовать можно буквально за несколько минут. В язык встроены удобные функции для работы с экраном дисплея, клавиатурой, внешними накопителями, принтером, коммуникационными каналами. Это позволяет относиться к Бейсику как к продолжению аппаратуры ПЭВМ. Чтобы какую-нибудь особенность или режим работы аппаратных средств, проще всего написать и исполнить соответствующую программу на Бейсике.

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

Между указанными языками имеются и существенные различия. Паскаль является классическим языком программирования, который первоначально (в 1969 г.) был создан как учебный язык и лишь спустя 5-6 лет приобрел популярность как отличный инструмент для решения серьезных задач. Программы на Паскале понятны любому программисту - профессионалу, в то же время они транслируются в эффективные машинные коды. Программирование на Паскале обеспечивает высокую степень надежности программ. В настоящее время разработано более десятка разных трансляторов с Паскаля для ПЭВМ. Паскаль также считается учебным языком; он принят во многих учебных заведениях как базовый язык для изучения программирования.

Язык Си, в отличие от Паскаля, с момента своего появления (1972 г.) был ориентирован на разработку системных программ. Он, в частности, послужил главным инструментом для создания операционных систем ЮНИКС и MS-DOS. В этом языке имеются более гибкие средства для эффективного использования особенностей аппаратуры, чем в Паскале. Благодаря этому порождаемые машинные программы более компактны и работают быстрее, чем программы, полученные Паскаль - трансляторами. С другой стороны, синтаксис языка Си менее прозрачен, чем у Паскаля; возможностей для внесения ошибок больше; чтение текстов программ требует определенного навыка. В связи с этим язык Си применяется главным образом для создания системных и прикладных программ, в которых скорость работы и объем памяти являются критическими параметрами.

Языки Лисп и Пролог. Язык Лисп (60-е годы) является идеальным инструментальным средством для построения программ с использованием методов искусственного интеллекта. Имеется несколько реализаций Лисп - трансляторов для персональных компьютеров разных классов. Особенность этого языка состоит в удобстве динамического создания новых объектов. В качестве порождаемых программой объектов могут фигурировать и сами программы (функции), которые внешне ничем не отличаются от данных. Это открывает неожиданные возможности, которых нет в других языках программирования, также как построение адаптирующихся и самоизменяющихся программ и др. Память в Лиспе используется динамически - когда создается новый объект, для него из "свободной" памяти берется ровно столько ячеек, сколько нужно для хранения всех элементов; при этом не требуется никакого заблаговременного резервирования памяти, как в других языках (например, Паскале). При уничтожении объекта занятая им память автоматически освобождается.

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

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

Язык Форт. Язык Форт (80-е годы) обладает структурой , позволяющей создавать очень компактные трансляторы. Объем требуемой памяти для транслятора. совмещенного с редактором, - менее 15 Кбайт. Это стимулировало появление Форта еще на 8-разрядных персональных компьютерах первого поколения. Однако программирование на этом языке требует специальных навыков, поскольку базируется на специальной нотации - "обратной польской записи". В связи с этим, несмотря на определенную привлекательность, Форт получил распространение лишь в кругу своих активных поклонников.

Язык Ада. Язык Ада был предложен как универсальный инструмент для разработки больших программных систем, в первую очередь для решения задач реального времени. Однако несмотря на попытки придать ему статус универсального языка для всех применений, значительного распространения на ПЭВМ язык Ада пока не нашел. Главная причина этого лежит, по-видимому, в его чрезмерной сложности, поскольку в подавляющем большинстве приложений ПЭВМ вполне достаточно возможностей, обеспечиваемых языками Паскаль, Си. Будущее этого языка на персональных компьютерах пока не определено.

Фортран и Кобол. Язык Фортран (1955 г.), как один из самых старых языков высокого уровня, используется и на персональных компьютерах. Применяется он главным образом при разработке прикладных систем, ориентированных на научные исследования, автоматизацию проектирования и другие области, где уже накоплены обширные стандартные библиотеки программ.

Другой "старый" язык - Кобол (1961 г.), широко распространенный на больших и средних машинах, на персональных компьютерах почти не используется, хотя для него разработано несколько трансляторов. Дело в том, что вместо Кобола в задачах экономического и управленческого характера с гораздо большим успехом могут использоваться интегрированные системы, базы данных и другие типы прикладных систем.

Перечислим еще несколько наиболее известных "старых" языков и характер решаемых ими задач: Алгол (1958 г.) - вычислительные задачи; Пл (1964 г.) - универсальный; Симула (1967 г.) - вычислительные задачи; Модула - универсальный.

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

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

Эта стратегия , в том или ином виде, находит отражение наиболее часто в литературе, связанной с разработкой баз данных.

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

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

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

На сегодняшний день наиболее распространенные системы управления базами данных: Access, FoxPro, Paradox, Clarion, Delfi и др.

Системы автоматизированного проектирования. Система автоматизированного проектирования (САПР)- комплекс средств автоматизации проектирования, взаимосвязанных с необходимыми подразделениями проектной организации или коллективом специалистов (пользователем системы), выполняющей автоматизированное проектирование. САПР объединяет технические средства, математическое и программное обеспечение, параметры и характеристики которых выбирают с максимальным учетом особенностей задач инженерного проектирования и конструирования. В САПР обеспечивается удобство использования программ за счет применения средств оперативной связи инженера с ЭВМ, специальных проблемно - ориентированных языков и информационно - справочной базы.

Основная функция САПР - выполнение автоматизированного проектирования на всех или отдельных стадиях проектирования объектов и их составных частей.

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

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

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

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

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

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

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

Что же такое интеллект? Пожалуй, единственное непротиворечивое определение состоит в следующем: "Интеллект - это то, что оценивается в интеллектуальных тестах..". Более полно ИИ можно определить как область исследований, направленных на то, чтобы заставить машины выполнять функции, которые в настоящее время для них слишком трудны, и особенно такие функции, которые способны выполнять люди. Проблемы ИИ выделяются среди всех других работ в области вычислительной техники и программирования.

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

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

Не вдаваясь в технические детали, рассмотрим примеры решения тех или иных проблем.

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

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

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

Распознавание зрительных образов. Создание быстродействующей и надежной системы машинного зрения оказалось столь сложной задачей, что на сегодняшний день мы смогли решить ее только для крайне простых и ограниченных условий. Задачи, которые решает система машинного зрения, также весьма разнообразны, однако все их можно свести к поиску ответов на вопросы: "что?", "где?", "почему?". Вопрос "что?" касается идентификации объектов в наблюдаемой сцене, вопрос "где?" подразумевает восприятие окружающего мира в пространственно-временной протяженности, вопрос "почему?" относится к причинно-следственным связям между объектами.

Первая попытка создать систему машинного зрения, предназначенную для интерпретации изображений сложных трехмерных сцен была предпринята в начале 60-ых годов Ларри Робертсом из Массачусетского технологического института. Создатель этой системы поставил перед собой слишком сложную задачу - даже по современным меркам. Для решения рассматриваемой задачи требуется чрезвычайно большой объем вычислений, в том числе извлечение из изображения физической информации о распределении освещенности а так же символическое описание объектов, находящихся на изображении.

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

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

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

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

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

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

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

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

Многие исследователи изучение вопроса о сущности мышления начали с попытки написать программу, в которой мог использоваться английский или любой другой "естественный" язык. Программа должна была понимать напечатанное слово, т.е. выяснить его смысл, переводить его на другой язык и отвечать на различные вопросы, касающиеся этого слова. Однако разработчики тотчас заметили, что люди обычно понимают больше непосредственного лексического значения данного слова. Например, большинство людей не сомневаются, что предложение " Джон купил машину" имеет отношение к деньгам, хотя само слово "деньги " в предложении отсутствует. Следовательно любая машина, способная понять смысл данного предложения должна ответить "да" на вопрос: " Потратил ли деньги Джон?" Но каким образом программа может узнать это? И еще одна трудность связана с тем, что скрытый смысл не вытекает из определений слов, взятых из словаря. Рассмотрим такой короткий рассказ: "Джон пришел в кафе. Он заказал сандвич. Официант быстро принес его, и поэтому он дал большие чаевые." Из рассказа ясно, что Джон съел сандвич и заплатил за него. но ведь эти действия не выражают ни одного употребленного в рассказе слова. Как же может машина сделать вывод, что Джон заплатил деньги за сандвич?

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

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

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

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

- ЭС ориентированы на решение широкого круга задач в неформализованных областях, до недавнего времени считавшихся недоступными для вычислительной техники;

- С помощью ЭС специалисты, не знающие программирования, могут самостоятельно разрабатывать интересующие их приложения, что позволяет резко расширить область применения вычислительной техники;

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

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

Экспертные системы относятся к категории машинных программ, которые способны выполнять самые разнообразные функции, а именно: консультировать и давать советы, анализировать и классифицировать, обучать и обучаться, обмениваться информацией, предоставляя ее в требуемой форме, проводить поиск информации, осуществлять диагностику и тестирование, составлять проекты, объяснять, исследовать, прогнозировать, вырабатывать концепции, обосновывать, контролировать, планировать и составлять "расписания". Они призваны решать те задачи, где, как принято считать, невозможно обойтись без эксперта-человека.

Как правило, экспертные системы создаются при участи специалистов, которые разъясняют ход своих мыслей в процессе решения конкретных задач. Если такой скрупулезный анализ последовательности действий эксперта удается провести, то составленная по его результатам машинная программа сможет не хуже, чем эксперт-человек решать задачи, сформулированные достаточно строго. Часто в оценках экспертов присутствует некоторая доля неопределенности, поэтому и экспертные системы должны допускать чтобы выводы делались с "неполной уверенностью". Экспертные системы справляются с неопределенностью следующим образом: позволяют пользователю задавать уточняющие, поясняющие и дополнительные вопросы, делая общение с компьютером более живым диалогом; оперируют вероятностными критериями, выдавая ответы с определенной долей уверенности и др.

Развитие экспертных систем привело к созданию специальных программ, ориентированных на разработку ЭС и существенно облегчающих их создание. К таким программам можно отнести следующие средства: Paradox, Oracle.

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

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

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

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

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

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

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