Смекни!
smekni.com

Программирование и достижения компьютерной техники (стр. 3 из 7)

• методы инженерных расчетов для оценки затрат и выбора ре­шений;

• математические методы для составления алгоритмов;

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

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

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

Идея использования программных объектов исследовалась в течение ряда лет разными учеными. Одним из первых языков этого типа считают Simula-67. А в 1972 г. появился язык Smoltalk, разработанный Аланом Кеем, утвердивший статус ООП.

На современном этапе развиваются инструментальные среды и системы визуального программирования для создания программ на языках высокого уровня: (TurboPascal, Delphi, VisualBasic, C++Builder и др.).

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

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

Фирма Microsoft создала технологии для распределенной разра­ботки распределенных систем, такие как COM (ComponentObjectModel), COM+, .NET. Разработаны и другие технологии: CORBA (консорциума OMG), JAVA (компании SunMicrosystem) и др.

Идея переложить на ЭВМ функции составителей алгоритмов и программистов дала новые возможности развитию сферы искусст­венного интеллекта, которая должна была создавать методы автома­тического решения интеллектуальных задач. Формализация знаний, которые есть у профессионалов в разных областях, накопление их в базах знаний, реализованных на ЭВМ, стали основанием для созда­ния экспертных систем. На основе баз знаний работают и ЭВМ V по­коления, и интеллектуальные роботы, и экспертные системы. Эти системы могут не только найти решение той или иной задачи, но и объяснить, как оно получено. Появилась возможность манипулировать знаниями, иметь знания о знаниях — метазнания. Знания, хра-няшиеся в системе, стали объектом ее собственных исследований.

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

В конце 1980-х гг. в Японии и США появились проекты ЭВМ V поколения, реализованные в конце 1990-х гг. Прогресс в програм­мировании связан с прогрессом в архитектуре вычислительных сис­тем, отходом от фон-неймановской концепции, с достижениями в области искусственного интеллекта. Революционные изменения в элементной базе ЭВМ связываются с исследованиями по биоэлектронике.

На современном этапе программирование включает комплекс вопросов, связанных с написанием спецификаций (условий задач), проектированием, кодированием, тестированием и функционирова­нием программ для ЭВМ. Современное ПО для ЭВМ имеет слож­ную структуру и включает, как правило, ОС, трансляторы с различ­ных языков, текстовые программы контроля и диагностики, набор обслуживающих программ. Например, японские ученые для проек­тирования систем ПО разрабатывают идею «кольцевой структуры» шести уровней: 1-й (внутренний) — программы для аппаратуры; 2-й — ядро ОС; 3-й — программы сопряжения; 4-й — часть ОС, ориентированная на пользователя; 5-й — системы программирования; 6-й (внешний) — программы пользователя.

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

Широкое применение структурных и объектно-ориентирован­ных методов программирования с использованием графических моделей объединялось отсутствием инструментальных средств. Это по­родило потребность в программно-технологических средствах спе­циального класса — CASE (ComputerAidedSoftwareEngineering), реализующих технологию создания и сопровождения ПО различных систем. Предпосылки для появления CASE-технологий возникли к концу 1980-х гг. Первоначально термин «CASE» применялся только к вопросам автоматизации разработки ПО, теперь программная инженерия имеет более широкое значение для разработки систем в целом. В CASE-технологии входит разработка и внедрение языков высокого уровня, методов структурного и модульного программирования, языков проектирования и средств их поддержки, формальных и неформальных языков описания системных требований.

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

В начале этого столетия текстовые процессоры стали более совершенными. Наряду с более простыми (например ProfessionalWrite и др.) появились такие мощные, как MSWinWord (см. рис. 21), WordPerfectWordStar 2000 и др. Из отечественных широкое распро­странение получил текстовый процессор Лексикон.

С начала 1980-х гг. для подготовки и обработки числовой ин­формации стали использоваться табличные процессоры. В 1979 г. Д. Брикклин предложил первую программу для работы с электрон­ными таблицами VisiCalc. В 1981 г. была разработана система SuperCalc фирмы «ComputerAssociates», в 1982 г. — Multiplan фир­мы «Microsoft», далее — пакет для IBMPCLotusl-2-3 фирмы «LotusDevelopment», русифицированные пакеты АБАК, ДРАКОН и др. В 1985 г. появился табличный процессор Excel фирмы «Microsoft» первоначально для персонального компьютера Macintosh, а затем для совместимых с IBMPC. Этот процессор разрабатывался паралг лельно с ОС Windows, его версии вобрали в себя все черты графиче­ского интерфейса, вплоть до версий Excel 5.0 как приложения Windows 3.1, Excel 7.0 как приложения Windows 95 и т. д. В послед­ние годы создано достаточно много систем подготовки табличных документов, т. е. электронных таблиц, табличных процессоров (например, CorelQuattro 6.0 фирмы «CorelCo», Lotus 5.0 фирмы «LotusDevelopmentCo», OfficeProftessionalforWindows фирмы «Microsoft» и ДР-)- Но наиболее широко используют электронные табли­цы Excel.

Разработано большое количество стандартных реляционных систем управления базами данных — СУБД (например, MSAccess, paradox и др.), на основе которых строят реляционные базы данных в различных предметных областях.

Для многих организаций (особенно управленческих) разработа­ны так называемые офисные пакеты, в которых на основе единой ОС функционируют приложения, включающие в себя системы для работы с различными видами информации. Например, созданы па­кеты приложений к ОС Windows (MSOffice, WordPerfectOffice фир­мы «Corel», StarOffice фирмы «SunMicrosystems» и др.), которые включают программные средства для выполнения функций обработ­ки всех видов инфрмации. Например, MSOffice включает совершен­ствующиеся год от года (в зависимости от последней версии ОС Windows) средства обработки текста (MSWord), графики (PhotoDraw) и презентаций (PowerPoint), таблиц (Excel), баз данных (Access), электронной почты (Outlook), работы во Всемирной паути­не (FrontPage), создания звуковых клипов (MSSoundRecorder).

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