Розвиток ідей академіка В.М. Глушкова з питань технології програмування

Статтю присвячено 90-річчю від дня народження академіка НАН України і АН СРСР Віктора Михайловича Глушкова, його внеску в розвиток інформаційних технологій і технології програмування з лініями виробництва програмних продуктів. Ще в 70-ті роки минулого століття В.М. Глушков вважав, що незабаром з’яв...

Повний опис

Збережено в:
Бібліографічні деталі
Дата:2013
Автор: Лавріщева, К.М.
Формат: Стаття
Мова:Ukrainian
Опубліковано: Видавничий дім "Академперіодика" НАН України 2013
Назва видання:Вісник НАН України
Теми:
Онлайн доступ:http://dspace.nbuv.gov.ua/handle/123456789/68119
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Цитувати:Розвиток ідей академіка В.М. Глушкова з питань технології програмування / К.М. Лавріщева // Вісн. НАН України. — 2013. — № 9. — С. 66-83. — Бібліогр.: 38 назв. — укр.

Репозитарії

Digital Library of Periodicals of National Academy of Sciences of Ukraine
id irk-123456789-68119
record_format dspace
spelling irk-123456789-681192014-09-18T03:01:49Z Розвиток ідей академіка В.М. Глушкова з питань технології програмування Лавріщева, К.М. Наукові напрями Статтю присвячено 90-річчю від дня народження академіка НАН України і АН СРСР Віктора Михайловича Глушкова, його внеску в розвиток інформаційних технологій і технології програмування з лініями виробництва програмних продуктів. Ще в 70-ті роки минулого століття В.М. Глушков вважав, що незабаром з’являться фабрики програм, які працюватимуть за принципом збирання, як в автомобільній промисловості, і з часом його передбачення повністю виправдалися. У статті в історичній послідовності розглянуто етапи розвитку технології програмування, приділено увагу створенню за концепцією В.М. Глушкова першої студентської фабрики програм та окреслено перспективи подальшого розвитку цього напряму. Статья посвящена 90-летию со дня рождения академика НАН Украины и АН СССР Виктора Михайловича Глушкова, его вкладу в развитие информационных технологий и технологии программирования с линиями производства программных продуктов из готовых ресурсов. Еще в 70-е годы прошлого века В.М. Глушков считал, что вскоре появятся фабрики программ, которые будут работать по принципу сборки, как в автомобильной промышленности, и со временем его предвидения полностью оправдались. В статье в исторической последовательности рассмотрены этапы развития технологии программирования, описана созданная на основе концепции В.М. Глушкова первая студенческая фабрика программ, очерчены перспективы дальнейшего развития этого направления. The article is devoted to the 90th anniversary of NAS and AS USSR academician Victor Glushkov, his contribution to the development of information technologies and programming technology with lines of production of software products from the ready-made resources. As far back as in the 70th years of past century Glushkov considered that the program factories working on principle of assembling, as in the motor industry, will appear before long, and with the lapse of time his foresights were fully justified. In the article in historical sequence the stages of development of programming technology are considered, the first program factory created on Glushkov’s principles is described and perspective ways of development of this direction are outlined. 2013 Article Розвиток ідей академіка В.М. Глушкова з питань технології програмування / К.М. Лавріщева // Вісн. НАН України. — 2013. — № 9. — С. 66-83. — Бібліогр.: 38 назв. — укр. 0372-6436 http://dspace.nbuv.gov.ua/handle/123456789/68119 04.004 uk Вісник НАН України Видавничий дім "Академперіодика" НАН України
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
collection DSpace DC
language Ukrainian
topic Наукові напрями
Наукові напрями
spellingShingle Наукові напрями
Наукові напрями
Лавріщева, К.М.
Розвиток ідей академіка В.М. Глушкова з питань технології програмування
Вісник НАН України
description Статтю присвячено 90-річчю від дня народження академіка НАН України і АН СРСР Віктора Михайловича Глушкова, його внеску в розвиток інформаційних технологій і технології програмування з лініями виробництва програмних продуктів. Ще в 70-ті роки минулого століття В.М. Глушков вважав, що незабаром з’являться фабрики програм, які працюватимуть за принципом збирання, як в автомобільній промисловості, і з часом його передбачення повністю виправдалися. У статті в історичній послідовності розглянуто етапи розвитку технології програмування, приділено увагу створенню за концепцією В.М. Глушкова першої студентської фабрики програм та окреслено перспективи подальшого розвитку цього напряму.
format Article
author Лавріщева, К.М.
author_facet Лавріщева, К.М.
author_sort Лавріщева, К.М.
title Розвиток ідей академіка В.М. Глушкова з питань технології програмування
title_short Розвиток ідей академіка В.М. Глушкова з питань технології програмування
title_full Розвиток ідей академіка В.М. Глушкова з питань технології програмування
title_fullStr Розвиток ідей академіка В.М. Глушкова з питань технології програмування
title_full_unstemmed Розвиток ідей академіка В.М. Глушкова з питань технології програмування
title_sort розвиток ідей академіка в.м. глушкова з питань технології програмування
publisher Видавничий дім "Академперіодика" НАН України
publishDate 2013
topic_facet Наукові напрями
url http://dspace.nbuv.gov.ua/handle/123456789/68119
citation_txt Розвиток ідей академіка В.М. Глушкова з питань технології програмування / К.М. Лавріщева // Вісн. НАН України. — 2013. — № 9. — С. 66-83. — Бібліогр.: 38 назв. — укр.
series Вісник НАН України
work_keys_str_mv AT lavríŝevakm rozvitokídejakademíkavmgluškovazpitanʹtehnologííprogramuvannâ
first_indexed 2025-07-05T18:01:42Z
last_indexed 2025-07-05T18:01:42Z
_version_ 1836830952865660928
fulltext 66 ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ Статтю присвячено 90-річчю від дня народження академіка НАН України і АН СРСР Віктора Михайло- вича Глушкова, його внеску в розвиток інформаційних технологій і технології програмування з лініями ви- робництва програмних продуктів. Ще в 70-ті роки минулого століття В.М. Глушков вважав, що незабаром з’являться фабрики програм, які працюватимуть за принципом збирання, як в автомобільній промислово- сті, і з часом його передбачення повністю виправдалися. У статті в історичній послідовності розглянуто етапи розвитку технології програмування, приділено увагу створенню за концепцією В.М. Глушкова першої студентської фабрики програм та окреслено перспективи подальшого розвитку цього напряму. Ключові слова: комп’ютерна технологія, системна технологія, інформаційна технологія, технологія програ- мування, програмна інженерія, інформатика, збиральний конвеєр, методологія збирання. УДК 04.004 К.М. ЛАВРІЩЕВА Інститут програмних систем Національної академії наук України просп. Академіка Глушкова, 40, Київ, 03187, Україна РОЗВИТОК ІДЕЙ АКАДЕМІКА В.М. ГЛУШКОВА З ПИТАНЬ ТЕХНОЛОГІЇ ПРОГРАМУВАННЯ © К.М. Лавріщева, 2013 Присвячується 90-річчю від дня народження академіка В.М. Глушкова ВСТУП Академік Віктор Михайлович Глушков, який усе своє життя присвятив створенню вітчизняної кібернетичної школи, залишив нам кілька парадигм, що стали основою для формування нових потужних наукових на- прямів, а також багато концептуальних ідей, які великою мірою визначили подальший розвиток кібернетики. Його учні, Ю.В. Ка- пітонова і О.А. Летичевський, у своїй кни- зі [1] сформулювали сім парадигм академіка В.М. Глушкова, коротко описавши їхню сут- ність. Більшість із них було реалізовано або пройшло апробацію ще за життя вченого, а деякі чекають свого часу й сьогодні. Проте, на нашу думку, до числа парадигм В.М. Глушкова потрібно додати ще одну — технологію програмування з лініями вироб- ництва програм, яку він визначив у 1975 р. як перспективний спосіб для поступового переходу від ремісничого виробництва до промислового випуску комп’ютерів і про- грам [2–4]. В.М. Глушков зазначав, що інду- стрія програм має ґрунтуватися на техноло- гічних лініях конвеєрного виготовлення програмних продуктів. Технології ком п’ю- терів, інформаційних і програмних систем він вважав рушійною силою прогресу фун- даментальних кібернетичних наук, спрямо- ваною на створення ЕОМ, їх системного за- безпечення і вдосконалення схемної інтер- претації внутрішньої мови до рівня мови програмування, побудову мереж обчислю- вальних центрів і прикладного математич- ного забезпечення автоматизованих систем. Нині технології програмування динаміч- но розвиваються від програмування й реалі- 67ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ зації задач проектування обчислювальних систем до побудови великих і малих ком- п’ютерних фреймворків, систем та класте- рів. Огляд динаміки розвитку технологій програмування ми почнемо з періоду ви- никнення комп’ютерних та інформаційних технологій і програмних систем, простежи- мо етапи вдосконалення індустрії програм- них продуктів завдяки інтеграції готових ресурсів і збиранню їх на фабриках програм, а також приділимо увагу сучасним методи- кам викладання курсів з програмної інжене- рії, технології програмування для студентів вищих навчальних закладів. ПЕРІОД РОЗВИТКУ МОВ ПРОГРАМУВАННЯ (1958–1975) Технології програмування почали розвива- тися з часу розроблення мов програмування для розв’язання задач засобами ЕОМ за допо- могою відповідних трансляторів і систем про- грамування. Цей період в Україні пов’язаний з активною діяльністю В.М. Глушкова зі ство- рення ЕОМ та систем автоматизації програ- мування [1–7]. Загалом у цьому напрямі пра- цювали спеціалісти з багатьох науково-до- слідних інститутів СРСР. Мови і транслятори. Перші транслятори, або програмуючі програми, ще в 50-х роках ХХ ст. розробили Е.З. Любимський, А.П. Єр- шов, М.Р. Шура-Бура для ЕОМ «Стрела» і «БЭСМ». Головними механізмами опису пер- винних програм для їхніх трансляторів були граф-схеми Янова і Ляпунова. В Обчислювальному центрі АН УРСР, від самого його створення В.М. Глушковим у 1958 р., було взято проголошений академіком С.О. Лебедєвим курс на побудову ЕОМ («СЭСМ», М-20, «Киев», «Промінь», «Днепр» та ін.) і створення для них систем автоматизації програм. У 1957 р. Віктор Михайлович запро- понував метод автоматизації програмування, орієнтований на побудову програмуючих і бі- бліотечних програм. Апробував цей метод на прикладі систем диференціальних рівнянь його перший аспірант А.О. Стогній. У той час головним програмістом ОЦ була Катерина Логвинівна Ющенко. Для представлення програмуючих програм вона запропонувала одну з перших у світі мов програмування високого рівня — адресну мову, яку її співробітники Т.О. Крайнова, Л.П. Бабенко, Н.М. Грищенко та інші реалі- зували для опису трансляторів і програм на вітчизняних ЕОМ. В Інституті кібернетики під керівництвом В.М. Глушкова почали розвивати такі основ- ні напрями: • технології побудови ЕОМ та обчислю- вальних комп’ютерів зі схемною інтерпрета- цією мов («Мир», «Украина»); • автоматизація програмування (тран- слятори, операційні системи, налагоджува- чі, редактори); • технології побудови АСУ, систем авто- матизації складних програм та пакетів при- кладних програм різного призначення (ма- тематичного, економічного, транспортного, будівельного тощо). На початку 60-х років розпочалося форму- вання мов системного програмування для опису трансляторів і ОС. Після появи універ- сальної мови Алгол-60 у багатьох інститутах СРСР на її основі було створено транслято- ри: Т-1 (С.С. Лаврова, 1960); Т-2 (М.Р. Шура- Бура, Е.З. Любимський, 1961); Т-3 Альфа — російська версія Алголу (А.П. Єршов, 1963); Т-4 (К.Л. Ющенко, К.М. Лавріщева, 1965), розроблений для нової ЕОМ «Днепр-2» [8]. Для цих трансляторів та ОС спочатку вико- ристовували мову, близьку до внутрішньої мови ЕОМ, і варіант адресної мови для Т-4. Потім група Е.З. Любимського розробила проміжну мову АЛМО для трансляції з різ- них мов у код будь-якої ЕОМ [9]. Водночас спеціаліст з ОС В.П. Іванніков сформулював основи мови системного програмування для реалізації ОС на ЕОМ «БЭСМ» [10]. У той самий час за кордоном розробляли трансля- тори з мов Фортран (J. Bakus, 1957), Aлгол-60 (P. Naur, 1963) та ін. Усі ці питання обговорювали на Першій (1965) та Другій (1968) Всесоюзних конфе- ренціях з програмування, які проходили в Києві [11], а також на багатьох наступних всесоюзних конференціях із цієї тематики, 68 ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ що відбувалися в різних регіонах СРСР аж до 1993 р. Ініціаторами цих наукових заходів були державні органи — ДКНТ, ДКНТІ СРСР — та інститути АН СРСР. На конфе- ренціях розглядали нові теоретичні й при- кладні аспекти проектування, розроблення і тестування різних систем на великих ЕОМ, проблеми експлуатації та супроводження програмного забезпечення, створення інфор- маційних систем і технологій, а також методи індустрії програмної продукції, що стимулю- вало розвиток технології програмування. Первинними мовами програмування були такі: адресна [12], алгебраїчний стиль програмування [6], конкретизовані граф- схеми Ляпунова і Янова в теоретичному програмуванні [13], синтезоване програму- вання [14], графічне програмування Р-ме та- мовою [15], модульне програмування [16], блочне модульне програмування [17], ком- позиційне програмування функціями і да- ними [18], програмування задач чисельного аналізу [19] та ін. Отже, у програмуванні на перших ЕОМ в Україні використовували адресну мову — найпростішу для кодування програм. Потім з’явилися такі мови, як Алгол-60, Фортран, Кобол, Пролог, Ада та ін., проте вони не мали механізмів подання програм у наочній і конструктивній формі. Тому алгоритми різних програм подавали за допомогою графових схем Ляпунова і Янова, нової Р-графічної мови, розробленої В.М. Глуш- ковим та І.В. Вельбицьким, і структурної схематології в програмуванні й теорії авто- матів і алгоритмів. Теорія програмування. В.М. Глушков, як алгебраїст і кібернетик, дав формалізований опис теорії автоматів, алгоритмів, кіберне- тики, систем АСУ тощо [20, 21]; ініціював розвиток алгебраїчного програмування із застосуванням математики, теорії автоматів і доказу теорем; запропонував алгоритмічну мову АНАЛІТИК для опису алгебраїчних перетворень, використану на ЕОМ «Мир» [6]. Разом із завідувачем відділу К.Л. Ющенко і аспірантом Г.О. Цейтліним він розробив теоретичні аспекти програмування на осно- ві адресної мови, концепцію синтаксичного і семантичного аналізу в трансляторах для різних мов, а також систему алгоритмічних алгебр на основі теорії автоматів [12]. Упро- довж багатьох років Г.О. Цейтлін розвивав систему алгоритмічних алгебр, реалізував її в системі Мультипроцесист, а в останнє де- сятиріччя цю теорію було доповнено засоба- ми генерації і паралельного програмування, зокрема аспіранткою О.А. Яценко [22]. Автоматизація програмування. Одним із перших засобів автоматизації програмуван- ня була розроблена Е.Х. Тиугу система ПРИЗ, основана на методі синтезу програм із понять, описаних на PL/1, Фортрані, Асемблері [14]. У ній започатковано новий метод — синтезувальне програмування, яке стало інструментом побудови моделей паке- тів прикладних програм із вхідною мовою їх опису «Утопіст». Алгебраїчне програмування набуло роз- витку під час створення під керівництвом В.М. Глушкова серії машин «Мир» для інже- нерних розрахунків, для якої було розроблено алгоритмічну мову АНАЛІТИК, орієнтова- ну на опис і реалізацію чисельно-ана літичних методів. Вона виявилася ефективним інстру- ментом для конструювання формул, їх опти- мізації та обчислень похідних, диферен- Академік Віктор Михайлович Глушков 69ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ ціальних рівнянь високих порядків, кратних інтегралів тощо. У 60-х роках роботи зі ство- рення математичних моделей для досліджен- ня технічних і комп’ютерних об’єктів та про- цесів виконували в СКТБ математичних ма- шин і систем, де розробляли малі ЕОМ, вони тривають і нині в однойменному інституті НАН України. Ці дослідження заклали осно- ву комп’ютерної алгебри [6]. Графічне програмування. Академік В.М. Глуш- ков підтримав розроблення графічної Р-ме та- мови, яку вперше у практиці програмування було підтверджено авторським свідоцтвом. Її було реалізовано у вітчизняному пристрої синтаксичного контролю Р-програм і впрова- джено в технологічному комплексі автомати- зації програмування на машинах «БЭСМ» і ЄС ЕОМ [15], у якому І.В. Вельбицький під науковим керівництвом В.М. Глушкова запро- вадив апаратну реалізацію синтаксису і семан- тики мови програмування. Це визначило фак- тичне застосування Р-графічного методу про- грамування в оборонній промисловості СРСР. Композиційне програмування, запропоно- ване В.Н. Редьком [18], орієнтоване на ство- рення в рамках системи ДЕФІПС програми з функцій за ланцюжком: «дані — функція — ім’я функції — композиція — дескрипція». Тріа да «дані — функція — композиція» задає семантич- ний аспект програми, а «дані — ім’я функ ції — дескрипція» — синтаксичний аспект. Ця систе- ма містить способи побудови функцій за зада- ними ланцюжками та множинами іменованих даних, дескрипцій і денотатів. Її застосовують для семантичного конструювання програм з використанням функцій декомпозиції, орди- нарних функцій оброблення операцій та інтер- фейсних функцій для зв’язку арних функцій та іменованих даних. Система забезпечує зв’язок із сучасними СУБД для оброблення даних ре- ляційного типу в композиційних програмах. Нині ці ідеї розвивають на факультеті кіберне- тики КНУ імені Тараса Шевченка в межах но- вої дисцип ліни — програмології. Ідея індустрії програм. В.М. Глушков ініціював застосування алгебраїчних пере- творень, доказу теорем, системного проекту- вання рекурсивних, конвеєрних і макрокон- веєрних машин для організації високо ефек- тивних обчислень та побудови АСУ з вико- ристанням готових програм, накопичених у фондах. Ідею індустріального принципу Вік- тор Михайлович сформулював на одному з наукових семінарів, що відбувся 5 березня 1975 р.: «Мине 20–30 років, програми випус- катимуть, як на збиральному конвеєрі фа- брики Форда, з готових «деталей». Фабрики програм працюватимуть за принципом зби- рання в автомобільній промисловості». Він передбачав, що в майбутньому програмні продукти випускатимуть на індустріальній основі, як на конвеєрі, а фабрику програм буде оснащено технологічними лініями по- будови складних програм із простіших з ав- томатизованими засобами їх підтримки. Засоби автоматизації технології програму- вання почали активно розвивати в Інституті кібернетики (ІК) АН УССР. З 1965 р. цей на- прям став стратегічним для відділу, де працює автор статті. У зв’язку з побудовою нового обчислювального комплексу «Днепр-2» у КБ математичних машин і систем ІК АН УРСР з ініціативи В.М. Глушкова було створено на- укову групу для розроблення ОС і трансля- торів з мови Автокод і Алгол-60. Водночас було відкрито фінансування робіт з констру- ювання комплексу і створення нових засобів автоматизації програмування. За рекоменда- ціями Віктора Михайловича було видано низку постанов і директив РМ СРСР та про- фільних державних комітетів, спрямованих на створення цих засобів обчислювальної техніки і технології виготовлення систем ав- томатизації програмування як продукції ви- робничо-технічного призначення. Паралель- но із зазначеними українськими проектами в багатьох науково-дослідних інститутах СРСР також активно розробляли технічні і про- грамні засоби автоматизації програмування для «БЭСМ» і серії машин М-20. Завдяки державній підтримці в СРСР було сформовано такі актуальні напрями, як створення комп’ютерних, системних і про- грамних технологій, а також засобів їх авто- матизації для побудови індустріальними ме- тодами програмних і комп’ютерних систем. 70 ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ ПЕРІОД ФОРМУВАННЯ У СВІТІ ТЕХНОЛОГІЧНИХ НАПРЯМІВ (1965–1975) Здавна всі нові теорії, що з’являлися в при- родничих науках, втілювалися в життя за- вдяки застосуванню технологій. У загально- му сенсі термін «технологія» як сукупність систематизованих знань, методів, процесів та порядку їх використання під час виробни- цтва продукту з потрібними властивостями, вживають у всіх сферах діяльності людства. У галузі комп’ютеризації й інформатизації у світі сформувалися такі види технологій: комп’ютерна, системна, інформаційна і тех- нологія програмування, або програмна інже- нерія (Software Engineering, SE). Термін SE виник одночасно з появою у нас технологій програмування, а офіційно вперше його було вжито на конференції НАТО в 1968 р. на означення самостійної дисципліни, сформо- ваної міжнародним комітетом спеціалістів ACM і IEEE (www.swebok.com). Структура комп’ютерної науки. Ком п’ю- терна наука (Computer Science) сформува- лася у США і СРСР у зв’язку з побудовою ЕОМ та різних комп’ютерів. Вона склада- ється з таких технологічних дисциплін. Комп’ютерна технологія — дисципліна з теорії та принципів побудови комп’юте- рів, фреймворків, мікропроцесорів, класте- рів, суперкомп’ютерів, їх системного забез- печення (ОС, трансляторів, компіляторів тощо) для підтримки процесів оброблення даних. Її теоретичними основами є теорії Тюрінга, фон Неймана, автоматів, алгорит- мів та кібернетики Глушкова [20, 21]. У ній використовують математику, логіку, теорію аналізу і систем, на її основі побудовано фреймворки, багатопроцесорні, рекурсивні, макроконвеєрні комп’ютери, різні пристрої, блоки, мікросхеми, карти тощо. Цю техно- логію, або комп’ютеробудування за терміно- логією Б.М. Малиновського, докладно опи- сано в його монографіях, присвячених ака- деміку В.М. Глушкову. Сучасний рівень розвитку комп’ютерної технології в десятки разів вищий, ніж сис- темної та програмної технологій. Нині у сві- ті взято курс на побудову суперкомп’ютерів, кластерів, Grid-систем для виконання гло- бальних проектів. Останніми роками в ІК НАН України створено енергоефективний суперкомп’ютер СКІТ-4 для проведення масштабних обчислень найскладніших за- дач у різних галузях народного господар- ства. Системна технологія — це теорія, методи та принципи побудови інформаційних, комп’ю терних, автоматизованих систем, а також систем керування. Вона ґрунтується на технології комп’ютерних систем для мо- делювання різних комп’ютерних застосу- вань і нових засобів керування інформацій- ними системами (ОС, БД, СУБД та ін.). В її основу покладено теорію АСУ й інформати- ки Глушкова [5, 21], а також головні прин- ципи логіки, математики, комп’ютерних наук і методи, які застосовують в економіці, фінансовій, банківській діяльності тощо. Сьогодні ми маємо значні досягнення у створенні загальних автоматизованих сис- тем, що об’єднують діяльність різних міжна- родних організацій. Програмна інженерія (технологія програ- мування) — це система методів, способів і дисциплін з планування, розроблення, екс- плуатації та супроводу програмного забез- печення, призначених для його промисло- вого виробництва. Вона охоплює всі аспекти створення програмного забезпечення від по- чатку формулювання вимог до розроблення продукту і його використання, супрово- дження й остаточного списання. Її основою є теорії алгоритмів, програмування, обчис- лень і розподіленої комунікаційної мереже- вої технології [23–30], а масове виробництво програмних продуктів ґрунтується на теорі- ях менеджменту, планування, регулювання процесів і ресурсів, тестування, вимірювання результатів, оцінювання ризику та якості [25]. Ця технологія розвивається в напрямі по- будови індустріальних фабричних методів конструювання розподілених програмних, інформаційних та бізнес-систем масового використання. Інформаційні технології з 90-х років ста- ли базисом комп’ютерної інфраструктури 71ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ сучасних корпорацій, підприємств і держав- них органів управління, що вирішують різні завдання з оброблення інформації, зокрема глобального типу. На розроблення інформа- ційних технологій, підготовку висококвалі- фікованих ІТ-спеціалістів, підтримку ін- формаційних ресурсів і доступу до них через систему Інтернет виділяють неймовірні ре- сурси. Цілі й завдання інформатики з побу- дови інформаційних систем і технологій академік В.М. Глушков сформулював у сво- їй останній у житті монографії [5]. Ці ідеї й сьогодні мають велике значення, на їх осно- ві створено сучасну інформаційну техноло- гію документообігу [25]. Інформаційні системи — це комп’ютерні системи оброблення в пошукових системах Інтернету різноманітної інформації з під- приємницької та бізнес-діяльності, в тому числі бухгалтерського обліку, документообі- гу на всіх рівнях управлінської діяльності [1, 5, 25]. Вони є засобом керування й оброблен- ня інформації для забезпечення продуктив- ності й ефективності роботи різних організа- цій. Нині інформаційні пошукові системи стали головним інструментом пошуку, від- бору і накопичення різних інформаційних ресурсів для масового застосування. Отже, до складу комп’ютерних наук вхо- дять: комп’ютерна технологія (Computer Engineering), системна технологія (System Engineering) і технологія програмування, або інженерія програмування (Software En- gineering). Ці дисципліни, а також інформа- ційні системи і технології створюють про- стір інформатики (рис. 1), в якому техноло- гія програмування посідає центральне місце, забезпечуючи всі складники цього простору відповідними теоріями, методами та засоба- ми розроблення, розгортання і конфігуру- вання програмних продуктів. Сфера комп’ютерної технології займає всю нижню частину простору (рис. 1), що відповідає апаратному забезпеченню, а ін- формаційні системи — частину простору вгорі, на рівні окремих організацій. Програм- на інженерія охоплює широкий діапазон, пов’язаний із систематичним розроб ленням програмного забезпечення, доменів, про- грамних проектів, моделей систем та методів їх створення. Сфера програмної технології поширюється вниз до системної технології, а вгору — до організаційних питань з проекту- вання й розроблення інформаційних систем і технологій, що відповідають сучасним по- требам різних організацій і підприємств. Далі розглянемо лише зміст, засоби авто- матизації технології програмування і дина- міку її розвитку, починаючи з ідей академіка В.М. Глушкова. ПЕРІОД СТАНОВЛЕННЯ ТЕХНОЛОГІЇ ПРОГРАМУВАННЯ (1975–1992) На цьому етапі в ІК АН УРСР було зро- блено вагомий внесок в індустрію створення програмних продуктів на великих ЕОМ. Розроблено методи, технології, інструмен- тальні засоби, а саме: Р-технологію, зби- ральну технологію з модулів за інтерфейса- ми, технологію створення систем і пакетів прикладних програм. Крім того, в СРСР було створено низку автоматизованих систем керування для потреб різних галузей промисловості, зо- крема оборонної, які ґрунтувалися на теорії АСУ Глушкова. У 70-х роках на основі ідей В.М. Глушкова було побудовано перші АСУ (Львівський телевізійний завод, Сєверодо- нецький хімкомбінат тощо), а також за його безпосередньої участі було створено АСУ Рис. 1. Місце програмної технології в інформаційному просторі 72 ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ для металургійної промисловості з обро- блення даних технологічних процесів на двох комбінатах Німеччини, у Берліні та Лейпцигу. Віктор Михайлович був членом Міждержавної комісії СРСР і НДР, а також Державної приймальної комісії АСУ ТП. За виконану роботу (1972) групу розробників з ІК АН УРСР, зокрема автора статті, було нагороджено орденом Дружби НДР за участь у створенні АСУ засобами обчислю- вального комплексу «Днепр-2». Аналізуючи результати, досягнуті в цій га- лузі, В.М. Глушков сформулював три основ- ні напрями її розвитку на майбутнє [4]: • модульна система автоматизації програ- мування АПРОП зі стандартизованих про- грамних заготовок за принципом «знизу– вгору» і збирання їх у складні системи [2]; • метод формалізованих технічних за- вдань для проектування складних програм- них комплексів з використанням кількох алгоритмічних мов для опису окремих бло- ків на рівнях послідовної деталізації проек- ту [1, 3–5]; • Р-технологія програмування для авто- матизації проектування систем «згори– вниз», починаючи з опису структур даних у системах керування [5, 15, 16]. Актуальним завданням Віктор Михайло- вич вважав розвиток технології комплек- сного проектування обчислювальних сис- тем, коли проектування технічних засобів системи поєднане в один процес з проекту- ванням її базисного матзабезпечення. Цю ідею було реалізовано в системі ПРОЕКТ [3] і в серії ЕОМ «Мир» для інженерних розра- хунків з використанням аналітичних пере- творень. Перспективну тенденцію В.М. Глуш- ков бачив і в переході від однопроцесорних фон-нейманівських машин до мозкоподібної машинної структури, до якої належала ЕОМ «Украина» [20, 21]. Перехід до виробництва систем. У цей період поширилася ідея повторного вико- ристання готових програм для розвитку на державному рівні індустрії програм. Було створено: • республіканські й державні фонди ал- горитмів і програм для обміну готовими на- працюваннями щодо реалізації різних за- вдань оброблення даних і подальшого їх розповсюдження за запитами зацікавлених користувачів; • першу фабрику в м. Калінін (1978) з по- будови програм для виробництва АСУ із го- тових програмних заготовок фондів алго- ритмів і програм державного й республікан- ського значення; • державні програми проведення НДДКР при ДКНТ і ДКОТІ СРСР з розроблення інструментальних систем автоматизації складних програмних комплексів і пакетів прикладних програм (АПРОП, ПРИЗ, ЯУЗА, СІГМАСТАТ, РТК-комплекс, Муль- типроцесист, Макробол). За постановами РМ СРСР, програми дер- жавних фондів алгоритмів і програм здобу- ли статус виробів виробничо-технічного призначення. Фактично їх можна було ви- користовувати за призначенням як само- стійні програми для обчислення математич- них і економічних задач. Проте повторне використання готових продуктів було утруднене через відсутність опису інтер- фейсів і недоробки в алгоритмах. Завод у м. Калінін був першим дослідним виробни- цтвом систем АСУ і працював упродовж кількох років. На ньому було побудовано два дослідні зразки АСУ — модернізовані Стаття в журналі «Für Dich» про жінок-кібернетиків, зліва – К.М. Лавріщева, 1972 р. 73ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ версії попереднього зразка. Розробити нові АСУ з використанням готових програм із фонду було складно через невелику кіль- кість типових програм для АСУ, відсутність стандартизації та інтерфейсів. Фонди алгоритмів і програм функціону- вали понад 20 років і припинили існування з розпадом СРСР. Цей період завершився вивезенням на звалище обчислювальної техніки (ЄС ЕОМ, прототипом якої є IBM, М-50, «БЭСМ» та ін.). Концепція збирання модулів. Починаю- чи з 1975 р., в ІК АН УРСР почали формува- ти концепцію системи автоматизації вироб- ництва програм (АПРОП) як шлях до інду- стрії програм [2, 8, 16, 26, 27]. Для розуміння сутності збирального конвеєра розробники як приклад розглядали стандарти в автомо- більній промисловості. Головне, що було з’ясовано, — це наявність автоматизованих ліній конвеєра, які збирають окремі великі вироби з готових стандартних деталей, та стикувальних «болтів і гайок». В АПРОП «деталями» були програмні модулі, які ще потрібно було стандартизувати, а для їх зби- рання винайти дещо, що замінювало б сти- кування і скріплення. Так виникла ідея про- міжного інтерфейсного перехідника між дво- ма модулями, який передає дані від одного модуля другому, отримує від нього результа- ти і передає їх вихідному модулю. І якщо пе- редані дані й результат за типом нееквіва- лентні вихідним даним, то перехідник транс- формує їх у відповідну форму подання даних. Перехідник виявився гнучким зв’язком двох готових модулів, який не змінює змісту да- них, а передає їх у потрібному вигляді, за по- треби перетворюючи нееквівалентні типи. Основою АПРОП були готові модулі, ін- терфейси й методи збирання, які повністю відповідали ідеї збирального конвеєра Глуш- кова. Після смерті Віктора Михайловича розвиток збирального програмування під- тримував академік АН СРСР А.П. Єршов. Основні результати цього періоду поляга- ють у розвитку напрямів автоматизації сис- темної і програмної технології та формуван- ні нового виду програмування. Розвиток інтерфейсу технології збиран- ня. За ідеями В.М. Глушкова було сформо- вано новий вид програмування — збираль- ний, орієнтований на об’єднання різномов- них модулів. Засобами їх об’єднання у великому фреймворку ЄС ЕОМ були: інтер- фейс, модулі повторного використання, життєвий цикл технології збирання та зби- ральний конвеєр — автоматизована система збирання формалізованих модулів і програм у складніші програмні структури. Систему АПРОП розробляли понад 10 років за фі- нансової підтримки Міністерства радіопро- мисловості СРСР як частину технології ПРОТВА. Вона здобула Державну премію СРСР і була впроваджена в 52 організаціях у різних регіонах країни. Головне нововведення збирального про- грамування — інтерфейс (міжмодульний, міжмовний і технологічний) [8, 30] та біблі- отека інтерфейсних функцій перетворення типів даних у різних мовах і платформах. Перше у світі визначення поняття інтер- фейсу та мови його опису було дано в 1976 р. науковою групою під керівництвом В.М. Глуш- кова під час проектування системи АПРОП [2]. Ідея інтерфейсу для зв’язку модулів зна- чно випередила зарубіжні розробки — мова MIL (Мodule Interface Language) з’явилася там лише в 1983 р. Нині інтерфейс зберігає свою актуальність і виступає як головна домінанта взаємодіючих компонентів та об’єк тів у сучасних глобальних і мереже- вих середовищах. Міжмодульний інтерфейс — це посередник обміну даних між передавальним і приймаль- ним модулями. Міжмовний інтерфейс — су- купність засобів і методів зв’язку структур і типів даних різних мов програмування. Тех- нологічний інтерфейс — сукупність методів і засобів взаємозв’язку процесів і операцій технологічних ліній. Методику створення технологічних ліній запропоновано нами в 1987 р. [26] і апробо- вано на 6 лініях автоматизованої інформа- ційної системи «Юпітер-470», що стало пер- шою роботою з формалізації та застосування технологічних ліній у проектах розроблення 74 ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ великих інформаційних систем. Подальшим розвитком цього напряму є продуктові лінії, запропоновані Інститутом програмної інже- нерії (США). Розроблену нами концепцію ліній було ав- томатизовано за допомогою інтерфейсних модулів-посередників, які генерувала систе- ма АПРОП [8, 26], що сприяло скороченню обсягу робіт під час збирання різномовних програм через інструментарій генерації посе- редників. Набагато пізніше, в 1985–90-х ро- ках, з’явилися зарубіжні мови опису інтерфей- сів API, IDL, SIDL та ін. Їх використовують і дотепер у процесі створення нових програм- них систем із готових програм, компонентів повторного використання і сервісів. Академік АН СРСР А.П. Єршов свого часу зазначав, що збиральне програмування вирі- шує завдання багаторазового і швидкого за- стосування в процесі створення програми за- здалегідь виготовлених «деталей». Для того щоб уявити корисність і важливість такого підходу, досить згадати про роль збірних кон- струкцій у житловому будівництві. Замість деталей у збиральному програмуванні вико- ристовують програмні модулі, що мають структуру й функціональну цілісність і ра- зом з тим спеціально пристосовані до конт- рольованої інформаційно-логічної взаємодії (обміну інформацією) з іншими модулями. А.П. Єршов вважав, що збиральне програму- вання є ефективним, якщо комбінування по- рівняно невеликого числа заздалегідь запро- грамованих модулів дає змогу швидко вирі- шити будь-яке завдання з певного класу проблем. Орієнтування на клас задач — осо- бливість збирального програмування, що зу- мовлює його актуальність, оскільки широке розповсюдження міні- і мікро-ЕОМ дозво- ляє застосовувати кожну окрему машину для вирішення певних завдань. Надалі збиральне програмування розви- валося шляхом індустрії готових програм, що цілком відповідає концепції конвеєрно- го збирання Глушкова на фабриках програм з технологічними лініями. Результатами цього періоду розвитку тех- нології програмування були: • формування теорії і практики збираль- ного програмування; побудова за збираль- ною технологією понад 500 прикладних програм оброблення даних у великому все- союзному проекті «Юпітер-470» Міністер- ства радіопромисловості СРСР під керівни- цтвом В.В. Ліпаєва та комплексу засобів ав- томатизованого проектування програм для різних ЕОМ, до складу якого входила систе- ма АПРОП [16, 26]. У 1987 р. за цей комп- лекс колективу авторів, у тому числі співро- бітникам ІК АН УРСР К.М. Лавріщевій і А.І. Нікітіну, було присуджено премію Ради Міністрів СРСР; • формалізація технології модульно-ін- терфейсного типу побудови пакетів при- кладних програм під керівництвом академі- ка І.В. Сергієнка, орієнтованої на інтегрова- ні, проблемні й інтелектуальні прикладні системи та їх сімейства, призначені для при- йняття рішень у задачах оброблення даних на транспорті, в економіці, статистиці, мате- матичному численні, системній оптимізації тощо. Побудовано і впроваджено понад 30 ППП, які працювали тривалий час [17]. ПЕРІОД РОЗВИТКУ ОБ’ЄКТНОЇ, КОМПОНЕНТНОЇ ТА АГЕНТНОЇ ТЕХНОЛОГІЇ ПРОГРАМУВАННЯ (1992–2002) Цей період насамперед характеризувався появою і розвитком об’єктно-орієнтованого підходу (ООП) та мережі Інтернет. Після здобуття Україною незалежності на базі Ін- ституту кібернетики було створено 5 інсти- тутів, зокрема Інститут програмних систем (ІПС) НАН України, одним із ключових на- прямів досліджень якого стали програмні технології. Перспективними напрямами роз- витку технологій програмування було ви- значено такі: • застосування об’єктно-орієнтованого під- ходу в проектуванні програмних систем; • розроблення комп’ютерної технології проектування засобами CASE-систем (сис- тем автоматизації з попереднього періоду); • вивчення теорії набуття знань про об’єк- ти і функції у вигляді КПВ; • стандартизація методів інтеграції систем; 75ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ • розроблення нових підходів з подання інтерфейсу; • інженерія якості та підходи щодо забез- печення надійності програмних систем. Оцінюючи сьогодні зазначені напрями, можна стверджувати, що в Україні вони ак- тивно розвивалися в рамках фундаменталь- них проектів ІПС НАН України — від теорії й методології ООП до задання предметної області об’єктами і відношеннями між ними. Об’єкти-методи об’єднують у класи й під- класи, члени яких можуть «успадковувати» властивості інших об’єктів і бути поліморф- ними. Зв’язки між об’єктами задають за до- помогою оператора віддаленого виклику RPC і мови опису інтерфейсного посередни- ка. У ньому задають дані для передавання іншому об’єкту й операції звернення до гото- вих методів застосувань на сервері. Апарат ООП — вищий рівень проектування, розро- блення та інтеграції різних програмних об’єктів у розподіленому середовищі на зра- зок клієнт — сервер, що охоплює механізми реалізації та об’єднання різнорідних об’єктів у Sun Microsystems. Розроблено передову технологію побудови розподілених систем, об’єкти якої зберігаються на сервері, а звер- нення до них здійснюється засобами RPC і мовою опису інтерфейсів у клієнті [28]. Об’єктно-компонентне програмування. Об’єкт ний підхід Граді Буча (1989) приваблю- вав усіх своєю математичною спрямованістю (об’єкти, наслідування, поліморфізм, класи, су- перкласи тощо). Першу системну підтримку цього підходу було виконано в системі CORBA, потім у системах СОМ, DCOM, DSOM (1994). Основний засіб взаємодії різних об’єктів у сис- темі CORBA — мова IDL, яку використовує брокер об’єкт них запитів ORB CORBA для встановлення зв’язків між різномовними об’єк- тами (С++, Java, Smalltalk, Cobol, VC++, Ada та ін.) у розподілених системах. Поряд з цим фірма «Rational Rose» створила десятки ООП- ін струментів для широкого загалу. Об’єктність стала необхідним атрибутом нових мов про- грамування, відповідних систем програмуван- ня й бібліотек загальних систем (VS.Net, JAspect, JavaScript тощо) [23]. У рамках фундаментального проекту НАН України нами створено об’єктно-ком- понентний метод (ОКМ) [27, 28], в основу якого покладено нову теорію об’єктно-ком- понентного проектування моделей предмет- них областей з об’єктів, інтерфейсів і фор- мальних правил перебудови об’єктної моде- лі в компонентну, визначену на відповідній множині компонентів, що реалізують мето- ди об’єктів моделі, з яких збирають програм- ні системи. Компонентна модель доповнена формальними моделями взаємодії та варіа- бельності для забезпечення функціонуван- ня побудованої системи в сучасних гетеро- генних середовищах на зразок Grid і Cloud Computing. Цей метод реалізовано в ІТК ІПС НАН України. Інсерційне моделювання агентів і сере- довищ. Новий напрям у програмуванні, який є продовженням досліджень, започат- кованих іще В.М. Глушковим, а нині його очолює учень і соратник Віктора Михайло- вича академік О.А. Летичевський. У цьому виді програмування керівний автомат віді- грає роль агента, а інформаційний — середо- вища занурювання агента. Під агентами ро- зуміють реальні фізичні, біологічні, соціаль- ні та інші системи, під середовищем — набір дій агентів та множину їхніх станів. Інженерія якості програмних систем. Наступним важливим досягненням і вне- ском в індустрію програмних продуктів ста- ло розроблення основ інженерії якості про- грамного забезпечення за проектами ДКНТ. Було проведено дослідження міжнародного й вітчизняного досвіду з розроблення висо- коякісних програмних систем і відповідних стандартів. Важливу роль у цьому напрямі відіграв стандарт ISO/IEC 12207-96, в яко- му якість подано окремим процесом, що охоплює всі аспекти проектування, вимірю- вання й оцінювання показників якості про- дукту [24]. У результаті досліджень сформовано влас- ний погляд на проблему якості й апробова- но моделі в низці проектів Інституту, спіль- них з МЗС України, де особливо важли- вим є такий показник якості, як надійність. 76 ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ У проектах ДКНТ за мету ставили розро- блення стандартів якості. При КМ України створено організацію «Софт-рейтинг» для оцінювання і сертифікації програмних про- дуктів в Україні. Крім того, в ІПС НАН України під керівництвом академіка П.І. Ан- дона розроблено 10 методик з якості про- грамного забезпечення, які було включено в замовлення МО України. Отже, роботи цього періоду є значним внеском у розвиток сучасних технологій програмування в напрямі підвищення якос- ті програмних продуктів і застосування ін- дустріальних методів створення якісних програм масового використання. ПЕРІОД РОЗВИТКУ ІНДУСТРІЇ ТЕХНОЛОГІЇ ПРОГРАМУВАННЯ (2002–2012) Політика влади щодо індустрії програм- них продуктів. Державне агентство з питань науки, інновацій та інформатизації, стурбова- не фактичною відсутністю в Україні індустрії програмної продукції, у листопаді 2011 р. провело Міжнародний науковий конгрес з питань інфраструктури електронного уряду та IT-технологій. Було зазначено, що ця ін- дустрія розвивається переважно завдяки ді- яльності закордонних фірм, яких в Україні налічується понад 1000. Силами вітчизня- них фахівців вони виробляють програмні продукти для своїх країн. За такої політики розквіту цієї індустрії в Україні годі й очіку- вати. На нашу думку, потрібно укладати із закордонними компаніями договори на ви- готовлення продукції «50 на 50», тобто 50% вартості продукції, виробленої нашими фа- хівцями, слід залишати в нашій країні. Лише в такому разі можна розраховувати на при- буток. На жаль, Верховна Рада не приділяє уваги цьому питанню, хоча очевидно, що в державі має бути національна програма роз- витку індустрії програмної продукції. Розвиток індустрії програмної продук- ції. Цей період розвитку індустрії програм характеризується подальшим удосконален- ням об’єктів збирання і ліній збирального конвеєра фабрик програм. З’явилися техно- логії компонентного збирання [27, 28]; сфор- мульовано принципи взаємодії компонентів у різних гетерогенних середовищах [29]; роз- роблено мультитехнології К. Чернецькі, лейт- мотивом яких є перехід «від ручної праці до конвеєрного збирання»; створено різні фа- брики програм. Аналіз сучасного стану цієї індустрії, проведений у роботі [30], свідчить про той факт, що нині у світі діють сотні фа- брик програм та сервісів і спільними для всіх них є автоматизовані лінії збирання різ- них видів програмного забезпечення для ма- сового використання. Напрями розвитку фабрик програм. Фа- брики програм почали розробляти з метою переходу до індустрії програмної продукції із заданими функціями, архітектурою, якіс- тю та збільшення її продуктивності. Для цього було накопичено значну кількість різ- ного роду готових програм та засобів з роз- роблення простих і складних продуктів. Основним механізмом фабрики є техноло- гічні лінії, які відповідають стандартизова- ному життєвому циклу, причому на кожній лінії використовують свої засоби. Головна лінія розроблення складної продукції — це технологічна лінія збирання систем із гото- вих програм, що знаходяться в різних біблі- отеках і репозиторіях Інтернету. Враховуючи досвід автоматизованого збирання різнорідних програм і аналіз су- часних зарубіжних фабрик індустріального типу, ми сформували загальний набір еле- ментів, що характеризують будь-яку фабри- ку програм: • готові ресурси (артефакти, програми, сервіси, багаторазові компоненти тощо); • специфікатор (інтерфейсний посеред- ник) паспортних даних готових програмних ресурсів, описаний в одній із мов специфі- кації інтерфейсу; • операційне середовище, що містить програмні засоби й інструменти для систем- ного збирання різнорідних ресурсів; • технологічні і продуктові лінії вироб- ництва програмної продукції; • метод розроблення і збирання компо- нентів повторного використання; 77ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ • збиральний конвеєр з набору ліній ви- робництва програм [30–34]. Сьогодні є всі необхідні умови для вирі- шення наукових і фізико-технічних завдань у рамках Європейського проекту Grid. У ньому функціонують фабрики програм сис- темного і прикладного характеру, що відпо- відає базовій основі індустріального вироб- ництва програмної продукції для глобаль- них наукових завдань [34, 35]. Комп’ютерні засоби для індустрії про- грамної продукції. Розвиток індустрії про- грам і систем зумовлений також створенням високоефективної елементної бази в багато- ядерній процесорній конфігурації ком п’ю- терів, кластерів тощо. Оскільки комп’ютерна індустрія і в теоретичному, і в практичному аспекті значно випереджає розвиток інду- стрії програм, то індустріальна технологія забезпечить ефективне виконання масштаб- них обчислень складних задач у точних на- уках, АСУ і багатьох галузях промисловості. У зв’язку з цим з’явилися нові підходи й те- орії, що характеризуються високим рівнем обчислювальної техніки і суперможливос- тями загальносистемного програмного за- безпечення. Вони зумовили появу нової предметної мови опису систем (DSL, UML2, WorkFlow та ін.) зі сценаріями виконання й обчислення задач на даних із віртуальних міжнародних сховищ. У роботі [34] наведено огляд сотень фа- брик програм різного призначення й описа- но принципи їх побудови. Серед них відзна- чимо фабрики, основані на конвеєрному збиранні, — фабрика К. Чернецькі, І. Бея, Дж. Грінфільда, Г. Ленца, М. Фаулера та сту- дентська фабрика програм у КНУ імені Та- раса Шевченка [33–36]. Важливим результатом цього періоду є формування теоретичних і практичних ас- пектів компонентного програмування. Роз- роблено теорію аналізу предметної області з об’єктів, створено з них об’єктну модель з використанням формальних математичних операцій визначення окремих елементів. За- пропоновано метод трансформації об’єктної моделі в компонентну з переходом до ком- понентів та інтерфейсів між ними [28]. Це дало можливість використати механізми збирання компонентів за граф-схемою мо- дулів і тим самим узагальнити збиральне програмування. До операцій збирання вхо- дять зовнішня, внутрішня алгебри компо- нентів з формальними операціями на лінії побудови окремих компонентів. Об’єктно- ком понентний метод розширено додатко- вою властивістю — варіабельністю для за- безпечення заміни деяких компонентів но- вими функціями з метою отримання нового варіанта продукту [34–37]. Сформульовано модель варіабельності для сімейства про- грамних систем, яку реалізовано методом конфігураційного збирання в ІТК. Технологічні лінії. Минув час, упродовж якого запропоновану вітчизняну методоло- гію побудови технологічної лінії ми розви- нули до розподілених середовищ і провели зіставлення з альтернативною закордонною методологією Product Lines SEI. Методологію побудови лінії визначають на попередньому етапі технологічної підготовки робіт для створення спеціальної схеми лінії з процесів і операцій, що забезпечують проду- кування елементів системи засобами мов про- грамування чи комплексу відповідних інстру- ментів [28, 35]. Лінію комплектують з потріб- них процесів життєвого циклу, що від по- відають майбутній предметній області, стандартних інструментів, технологічних мо- дулів і комплексу відповідного нор мативно- методичного забезпечення. Для цього доби- рають готові прикладні ресурси і компоненти повторного використання, засоби й інстру- менти породження і реалізації окремих функ- цій або елементів програм (рис. 2). До проце- сів життєвого циклу відносять інженерію ви- мог, конструювання, тестування, оцінювання, керування якістю, проектом тощо. З них фор- мують лінії для доменів. Усі ресурси і процеси пов’язані техноло- гічним маршрутом, який упорядковує і за- дає схему операцій і процесів, що підтриму- ються різними видами програмного забез- печення. На кінцевій операції маршруту виконують оцінювання якості продукту за 78 ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ відповідною методикою [24]. Набір проце- сів створюють з урахуванням вимог міжна- родного стандарту ISO/IEC 12207-96, 2007 та стандарту якості ДСТУ 3918-99. Процеси життєвого циклу, уніфікації тестування, оці- нювання якості та керування проектами на- ведено на рис. 2. Методики описують спеці- альною мовою з посиланнями на інструмен- ти й технологічні модулі і правилами керування послідовною цілеспрямованою діяльністю спеціалістів з виконання проце- сів побудови елементів програми. Альтернативна методологія — це методика побудови продуктової лінії (Product Lines) (www.sei.com/Productlines), що містить лі- нію продуктів і сімейство продуктів. Ці тер- міни визначено як групу продуктів або по- слуг, які мають спільну керовану множину властивостей, що задовольняють потреби певного сегмента ринку чи виду діяльності. Зазначена методологія ґрунтується на інже- нерній і процесній моделях, готових ресур- сах, компонентах повторного використання. Інженерна модель відповідає інженерії про- дукту за трьома видами діяльності — розро- блення компонентів повторного використання чи готових ресурсів, збирання з них програм- них систем і керування цими діями (рис. 3). Розроблення готових ресурсів передбачає визначення сфери програмних систем, пла- нування їх виробництва в контексті застосу- вання, обмежень і стратегії виробництва. Збирання сімейства систем полягає в побу- дові плану реалізації кожної окремої систе- ми на основі готових ресурсів та збирання їх за планом виробництва. Керування проце- сами ґрунтується на координуванні діяль- ності з випуску необхідних готових ресурсів і вирішенні завдань організаційного й тех- нічного керування. У процесній моделі виділяють множину процесів, виконуваних на двох рівнях — до- менної інженерії, або інженерії програмної області, яку ще називають розробленням для забезпечення повторного використання (for reuse), та інженерії застосувань, або ін- женерії програмних систем, як розроблення з компонентів повторного використання (with reuse). Сімейства програмних систем створюють з ліній збирання із застосуванням готових компонентів, і цей процес є кінцевою ста- дією в циклі підготовки процесів ліній, які відповідають вимогам і потребам домену, автоматизують процеси проектування ком- понентів з готових ресурсів (reuses, assets, artifacts тощо). Результат підготовки розро- блення програмних систем — лінії конвеєра з підбору і збирання (агрегації) готових ре- сурсів повторного використання задля ви- робництва з них програмних продуктів для заданої предметної області (рис. 4). Рис. 2. Засади технологічної підготовки робіт з формування ліній Рис. 3. Модель інженерного розроблення програмних систем 79ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ Кожна лінія збільшує продуктивність і по- ліпшує умови праці виконавців, скорочує час виконання робіт, підвищує якість продукції та рівень її готовності, знижує собівартість ви- пуску. Саме про такий конвеєр мріяв академік В.М. Глушков і саме його ідею ми реалізовува- ли на студентській фабриці програм КНУ. ПЕРІОД НАВЧАННЯ ТЕХНОЛОГІЯМ ПРОГРАМУВАННЯ (2000–2012) Навчання технологіям програмування. В.М. Глушков приділяв значну увагу на- вчанню кібернетичним наукам співробітни- ків і студентів. Він читав лекції в Київсько- му і Московському університетах, МФТІ та інших ВНЗ, написав велику кількість моно- графій, залишив нащадкам багато наукових праць з інформатики, які актуальні й сьо- годні. У 1969 р. Віктор Михайлович створив у Київському університеті факультет кібер- нетики, заснував кафедри з теорії кіберне- тики, обчислень, програмування тощо, які очолювали його учні В.Н. Редько, А.В. Ані- сімов, О.К. Закусило та інші. Відразу після появи Алголу-60 В.М. Глуш- ков першим прочитав лекцію «напів анг лійсь- кою» мовою для співробітників ІК АН УРСР і студентів КНУ. Згодом К.Л. Ющенко роз- робила нормативний курс із Алголу-60 і до- ручила мені читати його студентам. Так у 1963 р. розпочалася моя педагогічна діяль- ність, яка триває й до сьогодні. Потім були курси з інших мов програмування, а з 80-х років — курс із технології програмування. Вивчаючи цю проблему з наукових позицій в ІК та ІПС НАН України, я постійно обго- ворюю зі студентами всі нові наукові питан- ня, проводжу практичні лабораторні роботи з сучасних інструментальних систем і засо- бів, залучаючи молодь до створення нових розробок. У 2007 р. Кабінет Міністрів України відпо- відно до міжнародної програми Computing Curricula затвердив навчальний курс «Про- грамна інженерія», який за змістом близький до курсу з технології програмування. Обидва ці нормативні й прогресивні курси я викла- даю на факультеті кібернетики КНУ, на кафе- драх «Інформаційні системи» та «Теорія і технологія програмування». До них входять лекційні й лабораторні заняття з теорії і прак- тики розроблення програм та артефактів су- часними мовами програмування для різних середовищ, вив чення сучасних загальних ОС. Рис. 4. Структура конвеєра Глушкова 80 ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ Студенти захищають магістерські роботи з сучасних питань визначення моделей якості компонентів повторного використання, взає- модії систем і середовищ, варіабельності й живучості систем, обчислення задач для Grid і Cloud Computing, моделей даних за стандар- том ISO/IEC GDT 11404-2007, які накопичу- ють у віртуальних і глобальних сховищах да- них для потреб індустрії програмних систем. Студентська фабрика програм КНУ. За концепцією збирального конвеєра В.М. Глуш- кова в 2011 р. вперше в Україні за участю сту- дентів було побудовано фабрику програм і артефактів [35–37]. Вона орієнтована на ви- вчення всіх аспектів програмної інженерії, побудови інформаційних і програмних сис- тем з використанням розроблених студента- ми артефактів і програм за тематикою пред- метних лабораторних і дипломних робіт. Фабрику програм створено силами сту- дентів у процесі вивчення дисциплін «Тех- нологія програмування інформаційних сис- тем» і «Програмна інженерія» на 4-му курсі факультету кібернетики КНУ під керівни- цтвом автора [31–37]. Вона доступна в Ін- тернеті з 2011 р. (http://programsfactory. univ.kiev.ua). Основу фабрики становлять готові програмні продукти, що специфіку- ються в мові WSDL, зберігаються в репози- торії і можуть поповнюватися за допомогою готових бібліотек на зразок Matlab, Demral тощо. Фабрика обладнана такими лініями: • програмування в С# VS.Net з отриман- ням готового продукту і збереженням його в стандартному вигляді в репозиторії; • добір готових артефактів і програм з ре- позиторію для подальшого використання; • збирання готових ресурсів у складні структури; • навчання методології проектування систем і сімейств систем за е-підручниками «Програмна інженерія» КНУ та на сайті www.intuit.ru. До 90-річчя з дня народження академіка В.М. Глушкова заплановано додати низку новітніх ліній: • генерація прикладних систем за новою предметною мовою DSL із застосуванням інструментів Eclipse–DSL, Tool DSL Micro- softs та ін.; • трансформація загальних типів даних GDT у фундаментальні FDT на основі стан- дартних засобів генерації даних стандарту ISO/IEC 11404-2007 для використання в різномовних розподілених системах; • нові навчальні дисципліни (домен про- грамної інженерії, життєвий цикл та ін.); • побудова розподілених систем із серві- сів і веб-сервісів; • підключення нових продуктових ліній за механізмами Product Lines SEI, виготов- лених студентами. Фахівці різних спеціальностей мають змогу обирати для потреб своєї наукової ді- яльності необхідні програми й компоненти. Тому особливо важливо мати такі фабрики при університетах: з одного боку, ними мо- Студентську фабрику програм демонстрували на Між- народному науковому конгресі. Зліва направо: А. Дзю- бенко, К.М. Лавріщева, А. Аронов, 2011 р. 81ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ жуть користуватися студенти інших вишів, а з другого — молодь бере участь у розвитку індустрії програмних продуктів. Комплекс ІТК [38]. Запропонований тео- ретичний апарат компонентного програму- вання реалізовано за участю студентів МФТІ в ІТК (www.sestudy.edu-ua.net), до складу якого включено реалізовані моделі взаємодії через плагіни Eclipse, а саме: • VS.Net, Eclipse для реалізації взаємодії окремих програм між собою; • Corba, MS.Net для реалізації взаємодії програм із цих середовищ між собою; • IBM VSphere, Eclipse для взаємодії про- грам між собою в цих середовищах. Головне призначення цього ІТК — опис і подання понад 10 спрощених технологій ви- робництва програмних систем із готових компонентів, а також ліній навчання норма- тивному курсу з технології програмування за допомогою електронного підручника. Крім того, на сайті ІТК розміщено для озна- йомлення і навчання наукові статті з фунда- ментальних основ індустрії програмних про- дуктів, е-монографію [28] фахівців відділу «Програмна інженерія» ІПС НАН Ук раїни щодо теоретичних і прикладних аспектів ви- готовлення систем з готових ресурсів, нако- пичених у репозиторії, а також запропонова- них методів індустрії програмних продуктів, що ґрунтуються на технологічних лініях. ВИСНОВКИ Розглянуто теоретичні й прикладні аспек- ти технології програмування, започаткова- ної академіком В.М. Глушковим, які набули розвитку в нових теоріях, технічних і про- грамних інструментах. Фабрична індустрія програмних продуктів, затребувана сьогодні інформаційною спільнотою, фактично стала реалізацією концепції збирального конвеєра В.М. Глушкова. Для її втілення було розроб- лено методологію побудови збирального конвеєра для індустріального виготовлення різних типів програмної продукції, яка сво- го часу значно випередила появу нової ідео- логії, а саме продуктової лінії, в Інституті програмної інженерії США (2004). Важливим кроком у цьому напрямі є розро- блені в ІПС НАН України і КНУ імені Тараса Шевченка сайти фабрики програм та ІТК, призначені для студентів і розробників різного роду програм в Україні й СНД, подібно до ви- користання промислових фабрик програм. Перспективними напрямами розвитку тех- нології програмування є побудова нових лі- ній для створення розподілених прикладних систем з веб-сервісів і семантик у середовищі веб-семантик; розроблення методології авто- матизованої побудови гнучких збиральних технологій типу «нано» (тобто технології ви- робництва елемента із заданою «атомарною» структурою, якою можуть бути маленькі ком- поненти чи сервіси) для реалізації глобаль- них задач та їх обчислень у сучасних середо- вищах на зразок Grid і Cloud Computing. СПИСОК ЛІТЕРАТУРИ 1. Капитонова Ю.В., Летичевский А.А. Парадигмы и идеи академика В.М. Глушкова. — К.: Наук. дум- ка, 2003. — 456 с. 2. Глушков В.М., Лаврищева Е.М., Стогний А.А. и др. Система автоматизации производства программ (АПРОП). — К.: ИК АН УССР, 1976. — 134 с. 3. Глушков В.М., Капитонова Ю.В., Летичевский А.А. О применении метода формализованных техниче- ских заданий к проектированию программ обра- ботки структур данных // Программирование. — 1978. — № 6. — С. 5–12. 4. Глушков В.М. Фундаментальные основы и тех- нология программирования // Программиро- вание. — 1980. — № 2. — С. 13–24. 5. Глушков В.М. Основы безбумажной информати- ки. — М.: Наука, 1982. — 552 с. 6. Системы компьютерной алгебры семейства АНА- ЛИТИК. Теория. Реализация. Применение. — К., 2010. — 762 с. 7. Ющенко Е.Л. Адресное программирование. — К.: Техн. л-ра, 1963. — 286 с. 8. Лаврищева Е.М., Борисенко Л.Г., Гришкевич К.И. и др. Транслятор с языка Д-АЛГАМС для УВК «Днепр-2». — К.: ИК АН УССР, 1970. — 186 с. 9. Каминин С.С., Любимский Э.З. Алгориримический машино-независимый язик АЛМО для задач сим- вольной обработки // Тр. І Всесоюз. конф. по про- граммированию. — К., 1968. 10. Иванников В.П. Язык системного программирова- ния. — М.: ИТМ, ОТ, 1959. 11. Информационные материалы и тезисы пленарных докладов ІІ Всесоюз. конф. «Технология програм- мирования». — К.: ИК АН УССР, 1986. 82 ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ 12. Глушков В.М., Цейтлин Г.Е., Ющенко Е.Л. Алгебра. Языки. Программирование. — К.: Наук. думка, 1974. — 318 с. 13. Ершов А.П. Введение в теоретическое программи- рование. — М.: Наука, 1977. — 288 с. 14. Тыугу Э.Х. Концептуальное программирование. — М.: Наука, 1984. — 256 с. 15. Вельбицкий И.В., Ходаковский В.Н., Шолмов Л.И. Технологический комплекс автоматизации про- грамм на машинах ЕС ЭВМ и БЭСМ-6. — М.: Ста- тистика, 1980. — 263 с. 16. Лаврищева Е.М., Грищенко В.Н. Cвязь разноязыко- вых модулей в ОС ЕС. — М.: Финансы и статисти- ка, 1982. — 127 с. 17. Редько В.Н., Сергиенко И.В., Стукало А.И. Пакеты прикладных программ. — К.: Наук. думка, 1992. — 317 с. 18. Редько В.Н. Композиции программ и композицион- ное программирование // Программирование. — 1978. — № 5. — С. 17–26. 19. Молчанов И.Н. Машинные методы решения задач при- кладной математики. — К.: Наук. думка, 1987. — 255 с. 20. Глушков В.М. Теория алгоритмов. — К.: КВИРТУ, 1961. — 167 с. 21. Глушков В.М. Кибернетика, вычислительная тех- ника, информатика. — К.: Наук. думка, 1990. — С. 262–281. 22. Андон Ф.И., Дорошенко А.Е., Цейтлин Г.Е., Яцен- ко Е.А. Алгеброалгоритмические модели и методы параллельного программирования. — К.: Академ- периодика, 2007. — 634 с. 23. Андон Ф.И., Лаврищева Е.М. Методы инженерии распределенных компьютерных приложений. — К.: Наук. думка, 1997. — 229 с. 24. Андон Ф.И., Коваль Г.И., Коротун Т.М. и др. Осно- вы инженерии качества программных систем. — К.: Академпериодика, 2007. — 680 с. 25. Задорожна Н.Т., Лавріщева К.М. Менеджмент документообігу в інформаційних системах освіти. — К.: Педагог. думка, 2007. — 220 с. 26. Лаврищева Е.М. Методы программирования. Теория, инженерия, практика. — К.: Наук. думка, 2006. — 454 с. 27. Лаврищева Е.М., Грищенко В.Н. Сборочное про- граммирование. Основы индустрии программных продуктов. — К.: Наук. думка, 2009. — 372 с. 28. Лавріщева К.М., Коваль Г.І., Бабенко Л.П. та ін. Нові теоретичні засади технології виробництва сімейств програмних систем у контексті генерувального програмування. — К.: ІПС НАНУ, 2011. — 377 с. 29. Андон П.І., Лавріщева К.М. Розвиток фабрик про- грам в інформаційному світі // Вісн. НАН Украї- ни. — 2010. — № 10. — C. 15–41. 30. Бабенко Л.П., Лавріщева К.М. Основи програмної інженерії. — К.: Знання, 2001. — 269 с. 31. Лаврищева Е.М., Петрухин В.А. Методы и сред- ства инженерии программного обеспечения. — М.: МОН РФ, 2007. — 415 с. 32. Лавріщева К.М. Програмна інженерія. — К.: Ака- демперіодика, 2008. — 319 с. 33. Lavrischeva E., Ostrovski A. General Disciplines and Tools for E-Learning Software Engineering. — http:// senldogo0039.springer-sbm.com/ocs/. 34. Аронов А.О., Дзюбенко А.І. Підхід до створення студентської фабрики програм // Проблеми про- грамування. — 2011. — № 3. — С. 42–49. 35. Лавріщева К.М., Слабоспицька О.О., Коваль Г.І., Колесник А.Л. Теоретичні аспекти керування ва- ріабельністю в сімействах програмних систем // Вісн. КНУ. — 2011. — № 1. — С.151–158. 36. Андон П.І., Лавріщева К.М. Методологія побудови ліній виробництва програмних продуктів і їх за- стосування // Інформаційне суспільство в Украї- ні: матер. міжнар. наук. конгр. (25–26 жовтня 2012, Київ, Україна). — С. 19–26. 37. Лавріщева К.М. Інструментально-технологічний комплекс для розробки й навчання прийомам ви- робництва програмних систем // Вісн. НАН Укра ї- ни. — 2012. — № 3. — С. 17–26. 38. Лавріщева К.М., Зінькович В.М., Колесник А.Л. та ін. Інструментально-технологічний комплекс для роз робки й навчання прийомам виробництва про- грамних систем. — Свідоцтво про реєстрацію ав- торського права на твір № 45292 від 27.08.2012. Стаття надійшла 10.01.2013 р. Е.М. Лаврищева Институт программных систем Национальной академии наук Украины просп. Академика Глушкова, 40, Киев, 03187, Украина РАЗВИТИЕ ИДЕЙ АКАДЕМИКА В.М. ГЛУШКОВА ОТНОСИТЕЛЬНО ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ Статья посвящена 90-летию со дня рождения акаде- мика НАН Украины и АН СССР Виктора Михайло- вича Глушкова, его вкладу в развитие информационных технологий и технологии программирования с линия- ми производства программных продуктов из готовых ресурсов. Еще в 70-е годы прошлого века В.М. Глуш- ков считал, что вскоре появятся фабрики программ, которые будут работать по принципу сборки, как в ав- томобильной промышленности, и со временем его предвидения полностью оправдались. В статье в исто- рической последовательности рассмотрены этапы раз- вития технологии программирования, описана создан- ная на основе концепции В.М. Глушкова первая сту- денческая фабрика программ, очерчены перспективы дальнейшего развития этого направления. Ключевые слова: компьютерная технология, си- стемная технология, информационная технология, тех- нология программирования, программная инженерия, ин- форматика, сборочный конвейер, методология сборки. 83ISSN 0372-6436. Вісн. НАН України, 2013, № 9 НАУКОВІ НАПРЯМИ K.М. Lavrischeva Institute of Program Systems of National Academy of Sciences of Ukraine 40 Gluchkov Ave., Kyiv, 03187, Ukraine DEVELOPMENT OF V.М. GLUSHKOV’S IDEAS IN THE FIELD OF PROGRAMMING TECHNOLOGY The article is devoted to the 90th anniversary of NAS and AS USSR academician Victor Glushkov, his contri- bution to the development of information technologies and programming technology with lines of production of software products from the ready-made resources. As far back as in the 70th years of past century Glushkov con- sidered that the program factories working on principle of assembling, as in the motor industry, will appear be- fore long, and with the lapse of time his foresights were fully justified. In the article in historical sequence the stages of development of programming technology are considered, the first program factory created on Glush- kov’s principles is described and perspective ways of de- velopment of this direction are outlined. Keywords: computer technology, system technology, in- formation technology, programming technology, software engineering, computer science, assembly line, assembly methodology.