Современные технологии программирования
В конце 1980-х гг. в Японии и США появились проекты ЭВМ V поколения, реализованные в конце 1990-х гг. Прогресс в программировании был связан с прогрессом в архитектуре вычислительных систем, отходом от фон-неймановской концепции, с достижениями в области искусственного интеллекта. Революционные изменения в элементной базе ЭВМ связываются с исследованиями по биоэлектронике.
Независимость языков высокого уровня от ЭВМ вовлекла в сферу алгоритмизации задач специалистов различных отраслей знаний, позволила использовать многочисленные стандартные типовые программы, а программистам — устранять дублирование в написании программ для различных типов ЭВМ и значительно повысить производительность труда.
На современном этапе программирование включает комплекс вопросов, связанных с написанием спецификаций (условий задач), проектированием, кодированием, тестированием и функционированием программ для ЭВМ. Современное ПО для ЭВМ имеет сложную структуру и включает, как правило, ОС, трансляторы с различных языков, текстовые программы контроля и диагностики, набор обслуживающих программ. Например, японские ученые для проектирования систем ПО разрабатывают идею «кольцевой структуры» шести уровней: 1-й (внутренний) — программы для аппаратуры; 2-й — ядро ОС; 3-й — программы сопряжения; 4-й — часть ОС, ориентированная на пользователя; 5-й — системы программирования; 6-й (внешний) — программы пользователя.
Согласно этим проектам научных исследований процесс создания программных средств будет значительно упрощаться путем автоматизации синтеза по спецификациям исходных требований на естественных языках. 4.1 CASE системы
Широкое применение структурных и объектно-ориентированных методов программирования с использованием графических моделей объединялось отсутствием инструментальных средств. Это породило потребность в программно-технологических средствах специального класса — CASE (Computer Aided Software Engineering), реализующих технологию создания и сопровождения программного обеспечения (ПО) различных систем.
Предпосылки для появления CASE-технологий возникли к концу 1980-х гг. Первоначально термин «CASE» применялся только к вопросам автоматизации разработки ПО, теперь программная инженерия имеет более широкое значение для разработки систем в целом. В CASE-технологии входит разработка и внедрение языков высокого уровня, методов структурного и модульного программирования, языков проектирования и средств их поддержки, формальных и неформальных языков описания системных требований.
Представление о CASE - комплексах связано в нашем сознании с чем - то, не имеющим отношения к обычному программированию.В Америке из - за сильнейшнй конкуренции CASE - средства используются подавляющим большинством фирм - разработчиков программного обеспечения. Мощный толчок CASE - средства получили в пору внедрения объекто - ориентированной технологии разработки ПО, когда старого, проверенного временем метода проектирования "сверху вниз" стало явно недостаточно. К тому же появились технологии объектного моделирования Booch, OMT, UML, сами по себе весьма сложные для привязки к языкам программирования, чтобы оперировать ими вручную. Сегодня лидирующей в мире CASE-системой считается Rational Rose корпорации Rational Software. Система Rational Rose нацелена на создание модулей с использованием языка Unified Modeling Language (UML). 4.2 Индустрия искусственного интеллекта.
Идея переложить на ЭВМ функции составителей алгоритмов и программистов дала новые возможности развитию сферы искусственного интеллекта, которая должна была создавать методы автоматического решения интеллектуальных задач. Формализация знаний, которые есть у профессионалов в разных областях, накопление их в базах знаний, реализованных на ЭВМ, стали основанием для создания экспертных систем. На основе баз знаний работают и ЭВМ V поколения, и интеллектуальные роботы, и экспертные системы. Эти системы могут не только найти решение той или иной задачи, но и объяснить, как оно получено. Появилась возможность манипулировать знаниями, иметь знания о знаниях — метазнания. Знания, хранящиеся в системе, стали объектом ее собственных исследований.
Бум, возникший в конце семидесятых годов в области изучения искусственного интеллекта и приведший к созданию новой отрасли промышленности, не случаен, его вызвали следующие причины:
Первая - угроза всеобщей мобилизации населения земного шара в программисты привела к идее пятого поколения ЭВМ. Но создание таких ЭВМ требует разработки средств автоматического выполнения функций алгоритмиста и программиста, то есть интеллектуальных функций по формализации задач и составлению программ для их решения. А это уже сфера искусственного интеллекта, ибо одно из толкований целей этой науки состоит как раз в утверждении, что она должна создавать методы автоматического решения задач, считающихся в человеческом понимании интеллектуальными. Это означает, что создание ЭВМ пятого поколения невозможно без использования достижений, накопленных в искусственном интеллекте;
Вторая - развитие робототехнических малолюдных или безлюдных производств. На современных промышленных предприятиях происходит активное внедрение автоматических систем, в которых широко используются интеллектуальные роботы. Прогресс в этой области во многом зависит от того, насколько роботы могут хранить в своей памяти необходимую сумму знаний о профессии, которой они овладевают;
Третья - необходимость передавать на ЭВМ задачи из плохо структурированных проблемных областей. Именно для них нужно автоматизировать труд алгоритмиста, его способность формализовать то, что с трудом поддается формализации. Путь решения этой проблемы - формализация знаний, которые есть у профессионалов в данной проблемной области, но хранятся в их памяти в виде неформализованных соображений, умений и навыков. Такие профессионалы являются экспертами своего дела, а получаемые от них знания обычно называют экспертными. Если в базу знаний системы заложить знания подобного типа, то система будет называться экспертной. 4.3 Экспертные систем.
Экспертные системы могут не только найти решение той или иной задачи, но и объяснить пользователю, как и почему оно получено. Это означает, что в экспертных системах реализована возможность "самоанализа", в них появилась возможность рассуждать о знаниях и манипулировать ими. А значит, появилась и возможность иметь знания о знаниях, т.е. метазнания. С их помощью в экспертных системах стала возможной оценка знаний с точки зрения их полноты и корректности, а также реализуется "функция любопытства", связанная с активным поиском связей между хранящимися в памяти знаниями, их классификацией и пополнением за счет разнообразных логических процедур.
В экспертных системах сделан важный шаг - знания, хранящиеся в системе, стали объектом ее собственных исследований.
Потенциально человек способен к овладению любым видом интеллектуальной деятельности. Он может научиться играть и в шахматы, и в морской бой, и в любые другие игры, ибо он обладает универсальными метапроцедурами, позволяющими ему создать процедуры решения конкретных интеллектуальных задач.
Развитие теории искусственного интеллекта в конце шестидесятых годов началось с осознания именно этого факта. У новой науки появился свой специфический объект исследований и моделирования - универсальные метапроцедуры программирования интеллектуальной деятельности. В их числе имеются метапроцедуры общения, обучения, анализа воспринимаемой системой информации и многие другие. Но, несомненно, центральное место здесь занимают те метапроцедуры, которые связаны с накоплением знаний и использовании их при решении интеллектуальных задач. Именно эти метапроцедуры находят свое воплощение в экспертных системах.
Существующие сейчас экспертные системы принято делить на два класса: консультационные и исследовательские. Первые призваны давать советы, когда у пользователя возникает необходимость в них, а вторые - помогать исследователю решать интересующие его научные задачи.
Система общения позволяет вводить в экспертную систему информацию на, ограниченном рамками профессиональной области, естественном языке и организует ведение диалога с пользователем. Эта система сообщает пользователю о непонятных для нее словах, о допущенных им ошибках, предлагает наборы действий, которые пользователь при желании может выполнить. Если пользователь еще не освоил "этику приема", то в дело включается блок обучения; в диалоговом режиме он постепенно обучает пользователя с общению с ЭВМ, учит его, используя примеры, решению задач. Пользователь может обращаться к этому учителю, когда захочет, - система всегда найдет время для пояснения непонятных пользователю моментов.
В экспертной системе существует специальный комплекс средств, с помощью которых в базе знаний наводится необходимый порядок. Информация здесь классифицируется, обобщается, оценивается ее непротиворечивость, отдельные информационные единицы объединяются связями различного типа. Другими словами, в базе знаний возникает структурированная модель проблемной области, в которой отражены все ее особенности, закономерности и способы решения задач. Всеми этими процедурами заведует система поддержки базы знаний.
Почти так же, как и консультативные, устроены исследовательские экспертные системы, но в них имеются еще и блоки, в которых выполняются все необходимые для специалиста расчеты. Можно сказать, что экспертные системы такого типа - это симбиоз ЭВМ пятого поколения и консультационных экспертных систем 4.4. Сетевое программирование
Мощным толчком в развитии новых направлений в программировании послужило объединение компьютерных и телекоммуникационных технологий.
За рубежом в 1960-х гг. появились первые вычислительные сети, с которых началась техническая и технологическая революция, т. к. была предпринята попытка объединить технологию сбора, хранения, передачи и обработки информации на ЭВМ с техникой связи. В Европе в те годы были созданы международные сети EIN и Евронет, затем появились национальные сети. В 1972 г. в Вене была создана сеть МИПСА, к которой присоединились в 1979 г. 17 стран Европы, СССР, США, Канада и Япония. В 1980-х гг. в нашей стране была создана система телеобработки статистической информации, обслуживающая государственные и республиканские органы статистики. С 1980-х гг. развивается программирование для локальных вычислительных сетей (ЛВС) – коммуникационных систем, поддерживаемых внутри некоторой ограниченной территории, работающих под управлением сетевых ОС (например NetWare компании «Novell»).
Глобальные вычислительные сети — это сети, использующие информационные ресурсы ЛВС, расположенных на большом расстоянии друг от друга. Наиболее популярной является сеть Интернет, представляющая собой общемировую совкупность сетей, связывающая между собой миллионы компьютеров.
Сети позволили эффективно использовать аппаратные средства, программные средства и такие многопользовательские системы, как электронная почта, информационные системы на основе баз данных, телеконференции и др. Особой популярностью пользуется система WWW (World Wide Web) — Всемирная паутина, т. е. всемирная распределенная база гипертекстовых документов. Пользователи, используя для программирования язык гипертекстовой разметки HTML, создают свои сайты любой тематики и легко могут получать многообразную информацию, общаться с миллионами пользователей компьютеров. В будущем планируется массовое использование так называемых информационных роботов (Knowbot) — новых систем поиска и обработки информации в сети, в основе которых имеются уже элементы экспертных систем, позволяющих анализировать искомую информацию и готовить ее для выдачи в форме презентаций.
С Интернетом тесно связаны понятия «киберпространство» и «виртуальная реальность». Киберпростраиством называют совокупность всех систем компьютерных коммуникаций и потоков информации, циркулирующих в мировых сетях. Виртуальная реальность — фантастический мир, создаваемый на экране компьютера, образы реального мира и процессов, в нем происходящих. С этими объектами и процессами можно работать как с реальными, проводить различные исследования, имитировать всевозможные ситуации, создавать прекрасные тренажеры для применения полученных навыков в реальности. Поле деятельности для программистов огромное, поэтому общество заинтересовано в высококвалифицированных специалистах этого профиля.
Заключение На сегодняшний день информационные технологии находятся на том уровне, что само понятие программирование потеряло свой первоначальный смысл - … Необходимость в умении писать сложные программы при решении прикладных задач, проектировании различных систем уже не так высока как на заре эпохи компьютеризации. Пройдя долгий и сложный путь, став самостоятельной наукой, взяв за основную единицу описания – объект, программирование превратилось в некую систему, которая освобождает проблемного пользователя или прикладного программиста от необходимости написания программ решения своих задач на неудобном для него языке машинных команд и предоставляют им возможность использовать специальные языки более высокого уровня.
Теперь достаточно воспользоваться удобной системой проектирования, содержащей готовые модули в виде исполнимых функций и процедур… и практически любой опытный пользователь может получить решение своей задачи, получить нужную модель того или иного процесса. Так же появилась возможность проводить экспертные оценки полученных результатов. Таким образом на ряду с ростом уровня технологий программирования наблюдается сокращение необходимости участия человека в процессе написания программ.
Исследования в области искусственного интеллекта, нанотехнологий, биоэлектроники – все это лишний раз подтверждает сказанное выше! Каким будет наш мир? Покажет время…
Список литературы
Березин Б.И., Березин С.Б. Начальный курс программирования/ М., 1996 г.
Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на C++, 2-е изд./ Перевод с английского – М.: «Издательство Бином», С-Пб.: «Невский диалект», 1999 г. – 560 с., ил. books.dore.ru/bs/flbid1160.html
Ваулин А.С. Языки программирования/ 1993 г.
Вендеров А.М. CASE-технологии. Современные методы и средства проектирования информационных систем. М.: Диалог-МГУ, 1998.
Трофимов С.А. CASE-технологии: практическая работа в Ration Rose/ М., ЗАО «Издательство БИНОМ», 2001 г.
|