Команда
Контакти
Про нас

    Головна сторінка


За історії інформатики на тему





Скачати 39.35 Kb.
Дата конвертації 01.04.2019
Розмір 39.35 Kb.
Тип реферат

Санкт Петербурзький державний університет інформаційних технологій механіки і оптики

реферат

За історії інформатики на тему

"Концепція сучасних технологій програмування"

аспірант:

Королева О. Ю.

Кафедра:

МіПЧС

спеціальність:

05.13.19

Санкт-Петербург

2009 г.


Зміст

Введення .................................................................................. ... ..3

1. Класифікація мов програмування .................................... .5

1.1 Машинно - орієнтовані мови .......................................... 5

1.2 Машинно - незалежні мови ................................................ 6

2. Історія розвитку програмування .................................... .. ...... 8

3. Технології програмування ..................................... .......... ... 11

3.1 Структурний програмування ..................................... ...... 11

3.2 Подієво - орієнтоване програмування ............... .. ... 13

3.3 Модульне програмування ........................................... ... 14

3.4 Об'єктно - орієнтоване програмування ..................... 14

3.5 Компонентне програмування (КП) ............................... ... 16

4. Сучасні технології програмування ........................ .. ...... 17

4.1 CASE системи ......................................................... .. ...... 18

4.2 Індустрія штучного інтелекту ............................... ... 19

4.3 Експертні системи ................................................ ... ...... 20

4.4 Мережеве програмування ................................................ 22

Висновок ............................................................................ ... 24

Список літератури ..................................................................... 25

Вступ

З давніх-давен відомі спроби створити пристрої, що прискорюють і полегшують процес обчислень. Ще стародавні греки і римляни застосовували пристосування, подібне рахунками, - абак. Такі пристрої були відомі і в країнах Стародавнього Сходу. У XVII ст. німецькі вчені В. Шиккард (1623), Г. Лейбніц (1673) і французький вчений Б. Паскаль (тисячі шістсот сорок дві) створили механічні обчислювальні пристрої - попередники всім відомого арифмометра. Обчислювальні машини удосконалювалися протягом декількох століть. Але при цьому не застосовувалося поняття «програма і програмування».

На початковому етапі складанням програм для ЕОМ займалися самі виробники обчислювальних машин. Поступово, з розвитком техніки, цей процес з рутинної роботи перетворився в інтелектуальну діяльність, яку можна порівняти з мистецтвом, т. К. Трудомістке, ручне складання програм було подібно рішенням складних комбінаційних завдань, яке вимагало наукових знань і майстерності.

З 1970-1980-х рр. програмування як нова наукова дисципліна займалася методами розробки програмних продуктів. Воно включає комплекс питань, пов'язаних з написанням специфікацій, проектуванням, кодуванням, тестуванням і функціонуванням програм для ЕОМ.

Зараз рівень програмування визначається чотирма взаємопов'язаними факторами розвитку: можливостями комп'ютерів, теорією і мовами, мистецтвом і технологією програмування.

Процес розвитку комп'ютерних технологій породив процес появи нових різноманітних технологій програмування та проектування які представляють собою систему мов програмування - спеціальний набір знаків, на яких пишуть команди для керування комп'ютером.

Виділяють дві основні групи: мови низького рівня - мови програмування призначені для певного типу комп'ютера і відображають його внутрішній машинний код - машинно-орієнтовані мови; мови високого рівня - це мови програмування, призначені для задоволення вимог програміста; вони не залежать від внутрішніх машинних кодів комп'ютера будь-якого типу. Мови високого рівня використовують для вирішення проблем і тому їх часто називають проблемно-орієнтованими мовами

1. Класифікація мов програмування

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

Виділяють два основних види мов програмування: машинно - орієнтовані мови і машинно - незалежні мови.

1.1 Машинно - орієнтовані мови - набори операторів образотворчі засоби яких істотно залежать від особливостей ЕОМ (внутрішнього мови, структури пам'яті і т.д.). За ступенем автоматичного програмування машинно-орієнтовані мови поділяються на класи.

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

- Мови Символічного Кодування (далі ЯСК), так само, як і МЯ, є командними. Однак коди операцій та адреси в машинних командах, що представляють собою послідовність двійкових (у внутрішньому коді) або вісімкових (часто використовуваних при написанні програм) цифр, в ЯСК замінені на символи (ідентифікатори), форма написання яких допомагає програмісту легше запам'ятовувати смисловий зміст операції. Це забезпечує суттєве зменшення кількості помилок при складанні програм.

- автокодом - мови, що включають в себе всі можливості ЯСК, за допомогою розширеного введення макрокоманд - досить часто використовуються командні послідовності, які відповідають певним процедурам перетворення інформації. Ефективна реалізація таких процедур забезпечується оформленням їх у вигляді спеціальних макрокоманд і включенням останніх у мову програмування, доступний програмісту. Дії переводяться в машинні команди двома шляхами - розстановкою і генеруванням. У постановочної системі містяться «кістяки» - серії команд, що реалізують необхідну функцію, позначену дії. Дії забезпечують передачу фактичних параметрів, які в процесі трансляції вставляються в «кістяк» програми, перетворюючи її в реальну машинну програму.

В системі з генерацією є спеціальні програми, що аналізують дії, які визначають, яку функцію необхідно виконати і формують необхідну послідовність команд, що реалізують цю функцію.

1.2 Машинно - незалежні мови - це засіб опису алгоритмів вирішення завдань та інформації, що підлягає обробці. Вони зручні у використанні для широкого кола користувачів і не вимагають від них знання особливостей організації функціонування ЕОМ і ВС.

Подібні мови отримали назву високорівневих мов програмування. Програми, що складаються на таких мовах, являють собою послідовності операторів, структуровані відповідно до правил розглянутого мови (завдання, сегменти, блоки і т.д.). Оператори мови описують дії, які повинна виконувати система після трансляції програми на МЯ.

Отже, командні послідовності (процедури, підпрограми), часто використовувані в машинних програмах, представлені в високорівневих мовах окремими операторами. Таким оброзом програміст отримує можливість не розписувати в деталях обчислювальний процес на рівні машинних команд, а зосередитися на основних особливостях алгоритму.

- Проблемно - орієнтовані мови

Ці мови, мови орієнтовані на вирішення певних проблем. Вони повинні забезпечити програміста засобами, що дозволяють коротко і чітко формулювати завдання і отримувати результати у необхідній формі. Проблемних мов дуже багато, наприклад: Фортран, Алгол - мови, створені для вирішення математичних завдань; Simula, слензі - для моделювання; Лісп, Снобол - для роботи з обліковим структурами.

- Універсальні мови були створені для широкого кола завдань: комерційних, наукових, моделювання і т.д. Перший універсальна мова був розроблений фірмою IBM, що став в послідовності мов Пл / 1. Другий за потужністю універсальна мова називається Алгол-68. Він дозволяє працювати з символами, розрядами, числами з фіксованою і плаваючою комою. Пл / 1 має розвинену систему операторів для управління форматами, для роботи з полями змінної довжини, з даними організованими в складні структури, і для ефективного використання каналів зв'язку. Мова враховує включені в багато машин можливості переривання і має відповідні оператори. Передбачена можливість паралельного виконання ділянок програм. Програми в Пл / 1 компілюються за допомогою автоматичних процедур. Мова використовує багато властивостей Фортрана, Алгола, Кобола. Однак він допускає не тільки динамічне, але і кероване і статистичне розподілу пам'яті.

- Діалогові мови - програмні засоби, що забезпечують оперативну взаємодію людини з ЕОМ.

Необхідність забезпечення оперативної взаємодії з користувачем зажадала збереження в пам'яті ЕОМ копії вихідної програми навіть після отримання об'єктної програми в машинних кодах. При внесенні змін до програми з використанням діалогового мови система програмування за допомогою спеціальних таблиць встановлює взаємозв'язок структур вихідної та об'єктної програм. Це дозволяє здійснити необхідні редакційні зміни до об'єктної програмі.

Одним із прикладів діалогових мов є Бейсік, який використовує позначення подібні звичайним математичним виразами.

- Непроцедурного мови складають групу мов, що описують організацію даних, що обробляються за фіксованими алгоритмам (табличні мови і генератори звітів), і мов зв'язку з операційними системами.

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

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

2. Історія розвитку програмування

З появою цифрових програмно-керованих машин народилася нова галузь прикладної математики - програмування. Як галузь науки і професія вона виникла в 1950-х рр. Спочатку програми складалися вручну на машинних мовах (в машинних кодах). Програми були громіздкі, їх налагодження - дуже трудомістка. Для спрощення прийомів і методів складання та налагодження програм були створені Мнемокод, за структурою близькі до машинної мови і використовують символьну адресацію. Асемблери переводили програму, записану в Мнемокод, на машинну мову і, розширені макрокомандами, використовуються і в даний час. Далі були створені автокоди, які можна застосовувати на різних машинах, і дозволили обмінюватися програмами.

До кінця 1950-х рр. ЕОМ основним елементом конструкції були електронні лампи (1-е покоління). У цей період розвиток ідеології і техніки програмування йшло за рахунок досягнень американських вчених Дж. Фон Неймана, який сформулював основні принципи побудови ЕОМ, і Дж. Бекуса, під керівництвом якого в 1954 році був створений Fortran (Formula Translation) - перша мова програмування високого рівня , який використовується до теперішнього часу в різних модифікаціях. Так, в 1965 р в Дартмутського коледжу Д. Кемені і Т. Куртц була розроблена спрощена версія Фортрана - Basic.

Досягнення в галузі електроніки та мікроелектроніки дозволили замінити елементну базу ЕОМ на більш досконалу.В кінці 1950-х рр. громіздкі електронні лампи замінюють напівпровідниками (мініатюрними транзисторами). З'являються ЕОМ II покоління; потім приблизно через 10 років - ЕОМ III покоління на інтегральних схемах; ще через 10 років - ЕОМ IV покоління на великих інтегральних схемах (ВІС).

У 1953 р А.А. Ляпуновим був запропонований операторний метод програмування, який полягав в автоматизації програмування, а алгоритм рішення задачі представлявся у вигляді сукупності операторів, що утворюють логічну схему завдання. Схеми дозволяли розчленувати громіздкий процес складання програми, частини якої складалися з формальних правил, а потім об'єднувалися в ціле.

У США в 1954 р став застосовуватися алгебраїчний підхід, що співпадає, по суті, з операційним методом. У 1956 р корпорацією IBM розроблена універсальна ПП Фортран для автоматичного програмування на ЕОМ IBM / 704.

У цей період у міру накопичення досвіду і теоретичного осмислення удосконалювалися мови програмування. У 1958-1960 рр. в Європі був створений ALGOL, який породив цілу серію алголоподобних мов: Algol W, (1967), Algol 68, Pascal (Н. Вірт, 1970 г.), С (Д. Рітчі і Б. Керниган, 1972 г.), Ada (під керівництвом Ж. Ишбиа, 1979 г.), C ++ (1983). У 1961-1962 рр. Дж. Маккарті в Массачусетському технологічному інституті була створена мова функціонального програмування Lisp, який відкрив в програмуванні одне з альтернативних напрямків, запропонованих Дж. Фон Нейманом.

На початок 1970-х рр. існувало понад 700 мов високого рівня і близько 300 трансляторів для автоматизації програмування.

Ускладнення структури ЕОМ привело (в 1953 р для машин II-го покоління) до створення операційних систем (ОС) - спеціальних керуючих програм для організації і рішення задач на ЕОМ. Наприклад, мониторная система МТІ, створена в Массачусетському технологічному інституті, забезпечувала пакетну обробку, т. Е. Безперервне, послідовне проходження через ЕОМ багатьох груп (пакетів) завдань і користування бібліотекою службових програм, що зберігається в машині. Це дозволило поєднати операції по запуску з виконанням програм.

Для ПЕОМ до теперішнього часу розроблені ОС: MS DOS, Windows, ОС / 2, Z / OC, МасОС, Unix, Linux і ін. Широке поширення набули ОС MS DOS і Windows, що мають розвинений інтерфейс і широкий набір додатків, що дозволяють послідовне виконання завдань з пакета, обробку різної інформації в багатьох сферах людської діяльності.

У період 1970-1980-х рр. розвиток теоретичних досліджень оформило програмування як самостійну наукову дисципліну, що займається методами розробки програмного забезпечення (ПО).

В історії розвитку промислового програмування велику роль зіграв програміст і бізнесмен Білл Гейтс (Gates William Henry, p. В 1955 р). Його історія дуже повчальна для початківців програмістів. У 1972 р Білл Гейтс і його шкільний товариш Пол Аллен заснували компанію з аналізу вуличного руху «Треф-О-Дейта» і використовували для обробки даних комп'ютери з мікропроцесором 8008 - першим з знаменитого ряду мікропроцесорів компанії «Intel». Будучи студентом Гарвардського університету, в 1975 році він разом з Алленом написав для комп'ютера Altair (фірми M1TS) інтерпретатор - програму - перекладач з мови програмування на мову машинних кодів. Вони уклали з власником фірми угоду, за якою їх програми поширювалися разом з комп'ютерами. Товариші заснували компанію «Microsoft».

3. Технології програмування

3.1 Структурний програмування

У 1965 р італійці Бом і Джакопіні запропонували використовувати в якості базових алгоритмічних елементів слідування, розгалуження і цикл. Майже в той же час до аналогічних висновків прийшов голландський вчений Е. Дійкстра, що заклав основи структурного програмування. У 1970-х рр. ця методологія оформилася, і корпорація IBM повідомила про застосування в розробці програмного забезпечення «Удосконалених методів програмування», одним з компонентів яких була технологія низхідного структурного програмування (структурного програмування), основу якого складає наступне:

• складна задача розбивається на прості, функціонально керовані завдання, кожна задача має один вхід і один вихід; керуючий потік програми складається з сукупності елементарних функціональних підзадач;

• керуючі структури прості, т. Е. Логічне завдання повинна складатися з мінімальної, функціонально повної сукупності досить простих керуючих структур;

• програма розробляється поетапно, на кожному етапі вирішується обмежене число точно поставлених завдань.

Зазвичай при складанні схеми алгоритму процес обчислення йде зверху вниз, повертаючись назад тільки в циклах, що дозволяє аналізувати алгоритм як звичайний текст, тобто зверху вниз. Якщо технологію розробки алгоритмів «зверху - вниз» поєднати з використанням тільки структурних схем, то вийде нова технологія, яка називається структурним програмуванням зверху - вниз (низхідним), ідея якого полягає в тому, що структура програми повинна відображати структуру розв'язуваної задачі, щоб алгоритм рішення був ясно видно з початкового тексту. Для цього треба мати засоби для створення програми не тільки за допомогою трьох простих операторів (слідування, розгалуження і цикл), але і за допомогою засобів, більш точно відображають конкретну структуру алгоритму. З цією метою в програмування введено поняття підпрограми - набору операторів, що виконують потрібну дію і не залежать від інших частин вихідного коду. Програма розбивається на безліч дрібних підпрограм, кожна з яких виконує одну з дій, передбачених вихідним завданням. Комбінуючи ці підпрограми, вдається формувати підсумковий алгоритм вже не з простих операторів, а з закінчених блоків коду, що мають певне смислове навантаження, причому звертатися до таких блокам можна за назвами. Виходить, що підпрограми - це нові оператори або операції мови, що визначаються програмістом.

Такий підхід зручний тим, що дозволяє людині постійно мислити на предметному рівні, не опускаючись до конкретних операторів і змінних. Крім того, з'являється можливість деякі підпрограми реалізовувати відразу, а тимчасово відкладати, поки не будуть закінчені інші частини.

Дуже важлива характеристика підпрограм - це можливість їх повторного використання. З інтегрованими системами програмування поставляються великі бібліотеки стандартних підпрограм, які дозволяють значно підвищити продуктивність праці за рахунок використання чужої роботи зі створення часто вживаних підпрограм.

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

Щоб робота підпрограми мала сенс, їй треба отримати дані із зовнішнього програми, яка цю підпрограму викликає. Дані передаються підпрограмі у вигляді параметрів або аргументів, які зазвичай описуються в її заголовку так само, як змінні.

3.2 Подієво-орієнтоване програмування

З активним поширенням системи Windows і появою візуальних RAD-середовищ широку популярність придбав подієвий підхід до створення програм - подієво-орієнтоване програмування.

Структура програми, створеної за допомогою подієвого програмування, наступна. Головна частина являє собою один нескінченний цикл, який опитує Windows, стежачи за появою нового повідомлення. При його виявленні викликається підпрограма, відповідальна за обробку відповідної події (обробляються не всі події, їх сотні, а тільки потрібні), і подібний цикл опитування триває, поки не буде отримано повідомлення «Завершити роботу»,

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

Подієве програмування є розвитком ідей спадного проектування, коли поступово визначаються і деталізуються реакції програми на різні події.

3.3 Модульне програмування

Дана технологія полягає в наступному:

• функціональна декомпозиція (розбиття) завдання на самостійні підзадачі - модулі, пов'язані тільки вхідними та вихідними даними;

• модуль являє собою «чорний ящик», що дозволяє розробляти частини програм одного проекту на різних мовах програмування, а потім за допомогою компонувальних коштів об'єднувати їх в єдиний завантажувальний модуль;

• має бути чітке розуміння призначення всіх модулів завдання і їх оптимального поєднання;

• за допомогою коментарів повинно описуватися призначення всіх змінних модуля.

3.4 Об'єктно-орієнтоване програмування.

Розвиток ідей структурного і подієвого програмування істотно підняло продуктивність праці програмістів і дозволило в розумні терміни (кілька місяців) створювати додатки обсягом в сотні тисяч рядків. На зміну їм на початку 1990-х рр. прийшло об'єктно-орієнтоване програмування (ООП). Його можна розглядати як модульне програмування нового рівня, коли замість механічного об'єднання процедур і даних головним стає їх смислова зв'язок. Об'єкт розглядається як логічна одиниця, яка містить дані і правила (методи) їх обробки. Об'єктно-орієнтована мова створює «програмне оточення» у вигляді безлічі незалежних об'єктів, кожен з яких відрізняється своїми властивостями і способами взаємодії з іншими об'єктами. Програміст задає сукупність операцій, описуючи структуру обміну повідомленнями між об'єктами. Як правило, він «не заглядає» всередину об'єктів, але при необхідності може змінювати елементи всередині об'єктів або формувати нові.

Реальні об'єкти навколишнього світу володіють трьома базовими характеристиками: вони мають набір властивостей, здатні різними методами змінювати ці властивості і реагувати на події, що виникають як у навколишньому світі, так і всередині самого об'єкта. Саме в такому вигляді в мовах програмування і реалізовано поняття об'єкта як сукупності властивостей (структур даних, характерних для цього об'єкта), методів їх обробки (підпрограм зміни властивостей) і подій, на які даний об'єкт може реагувати і які призводять, як правило, до зміни властивостей об'єкта.

Об'єкти можуть мати ідентичну структуру і відрізнятися тільки значеннями властивостей. У таких випадках в програмі створюється новий тип, заснований на єдиній структурі об'єкта (за аналогією з тим, як створюються нові типи для структур даних). Він називається класом, а кожен конкретний об'єкт, який має структуру цього класу, називається екземпляром класу.

Опис нового класу схоже на опис нової структури даних, тільки до полів (властивостей) додаються методи - підпрограми.

При визначенні підпрограм, що належать конкретній класу, його методів, в заголовку підпрограми перед її назвою явно вказується, до якого класу вона належить.

Клас - це тип даних, такий же, як будь-який інший базовий або складний тип. На його основі можна описувати конкретні об'єкти (екземпляри класів).

ООП базується на трьох найважливіших принципах (інкапсуляція, успадкування, поліморфізм), які надають об'єктам нові властивості. Інкапсуляція - об'єднання в єдине ціле даних і алгоритмів їх обробки.Дані тут - поля об'єкта, а алгоритми - об'єктні методи. Спадкування - властивість об'єктів породжувати своїх нащадків. Об'єкт-нащадок автоматично успадковує всі поля та методи, може доповнювати об'єкти новими полями, замінювати і доповнювати методи. Поліморфізм - властивість споріднених об'єктів вирішувати схожі за змістом проблеми різними способами.

Ідея використання програмних об'єктів досліджувалася протягом ряду років різними вченими. Одним з перших мов цього типу вважають Simula-67. А в 1972 р з'явилася мова Smoltalk, розроблений Аланом Кей, який затвердив статус ООП.

На сучасному етапі розвиваються інструментальні середовища і системи візуального програмування для створення програм на мовах високого рівня: (Turbo Pascal, Delphi, Visual Basic, C ++ Builder і ін.).

3.5 компонентний програмування (КП)

Розвиток основних принципів об'єктно-орієнтованого програмування отримало з появою компонентного програмування (КП) - динамічний процес без жорстких правил, що виконується в основному для розподіленої розробки (програмування) розподілених систем. Суть КП в тому, що незалежні проектувальники, програмісти розробляють незалежні компоненти (окремі частини) єдиної системи, розподілені по безлічі вузлів великої мережі. Ці частини можуть належати різним власникам і управлятися організаційно незалежними адміністраторами.

У КП компонент розглядається як сховище (у вигляді DLL-або ЕХЕ файлів) для одного або декількох класів. Класи поширюються в бінарному вигляді, а не у вигляді вихідного коду. Надання доступу до методів класу здійснюється через строго певні інтерфейси по протоколу. Це знімає проблему несумісності компіляторів, забезпечуючи без перекомпіляції зміну версій класів в різних додатках. Інтерфейси задають зміст сервісу і є посередником між клієнтом і сервером.

Фірма Microsoft створила технології для розподіленої розробки розподілених систем, такі як COM (Component Object Model), COM +, NET. Розроблено та інші технології: CORBA (консорціуму OMG), JAVA (компанії Sun Microsystem) і ін.

4. Сучасні технології програмування

В кінці 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) - нових систем пошуку і обробки інформації в мережі, в основі яких є вже елементи експертних систем, що дозволяють аналізувати потрібну інформацію і готувати її для видачі у формі презентацій.

З Інтернетом тісно пов'язані поняття «кіберпростір» і «віртуальна реальність». Кіберпростраіством називають сукупність всіх систем комп'ютерних комунікацій та потоків інформації, що циркулюють в світових мережах. Віртуальна реальність - фантастичний світ, створюваний на екрані комп'ютера, образи реального світу і процесів, в ньому відбуваються. З цими об'єктами і процесами можна працювати як з реальними, проводити різні дослідження, імітувати всілякі ситуації, створювати прекрасні тренажери для застосування отриманих навичок в реальності. Поле діяльності для програмістів величезне, тому суспільство зацікавлене в висококваліфікованих фахівцях цього профілю.

висновок

На сьогоднішній день інформаційні технології знаходяться на тому рівні, що саме поняття програмування втратило свій первісний зміст - ... Необхідність в умінні писати складні програми при вирішенні прикладних задач, проектуванні різних систем вже не така висока як на зорі епохи комп'ютеризації. Пройшовши довгий і складний шлях, ставши самостійною наукою, взявши за основну одиницю опису - об'єкт, програмування перетворилося в якусь систему, яка звільняє проблемного користувача або прикладного програміста від необхідності написання програм вирішення своїх завдань на незручному для нього мовою машинних команд і надають їм можливість використовувати спеціальні мови більш високого рівня.

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

Дослідження в галузі штучного інтелекту, нанотехнологій, біоелектроніки - все це зайвий раз підтверджує сказане вище! Яким буде наш світ? Покаже час ...

Список літератури

1. Березін Б.І., Березін С.Б. Початковий курс програмування / М., 1996 р

2. Буч Г. Об'єктно-орієнтований аналіз та проектування з прикладами додатків на C ++, 2-е вид. / Переклад з англійської - М .: «Видавництво Біном», С-Пб .: «Невський діалект», 1999 р - 560 с., іл. books.dore.ru/bs/flbid1160.html

3. Ваулин А.С. Мови програмування / 1993 р

4. вендер А.М. CASE-технології. Сучасні методи і засоби проектування інформаційних систем. М .: Диалог-МГУ, 1998..

5. Трофимов С.А. CASE-технології: практична робота в Ration Rose / М., ЗАТ «Видавництво БІНОМ», 2001 р