Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Підручник КНУ-4кк11.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
16 Мб
Скачать
☆

Передмова

Підручник присвячений розгляду аналітичного опису історії появи програмування в загалі і в Україні в часності, яке пов’язано з використанням нових електронних обчислювальних машин (ЕОМ), що з’явилися на початку 50-х років ХХ – сторіччя, і почали застосуватися до організації обчислень різних математичних, наукових і господарських задач, яким потрібна була велика пам’ять та швидкодія ЕОМ у співставленні з раніш діючими частковими розрахунками на обчислювальних устаткуваннях полу автоматизованим способом. В ньому відображено шляхи програмування системних і прикладних задач та створення нових методів, засобів і інструментів технології програмування (ТП) різних видів програм, програмних систем, АСУ, орієнтованих на вирішення складних завдань наукового і господарчого призначення. Показано поступовий розвиток ТП, починаючи з появи перших ЕОМ у СРСР, зокрема і в Україні, як інструментів автоматизованого рішення різних задач обробки даних в процесах управління народним господарством за допомогою ЕОМ.

Послідовно починаючи з 1959 р автор подручніку займався науковою діяльністю, пов’язаною з програмуванням деяких математичних задач, автоматизацією програмування щодо створення трансляторів і налагоджувачів програм з перших мов програмування (адресного, автокодів, Алгол-60 і др.) та викладання мові Алгол-60 (з 1965 р.). студентам кафедри обчислювальної математиці І.І. Ляшко Київського державного університету. Після створення факультету кібернетики академіком В.М. Глушковим (1969 р.) і до наступного часу автор викладає технологію програмування. Цей курс постійно оновлюється чи удосконалюється новими інструментами та засобами для підвищення процесу виробництва програмних продуктів (ПП).

З самого початку автором був взятий стратегічний курс на розвиток технології програмування, який став головним в наукової і педагогічної її діяльності. З 1960 р. В.М. Глушков орієнтував створений їм Інституті кібернетики (ІК) АН УРСР на побудову нових ЕОМ і систем автоматизації АС, АСУ, АСУ ТП тощо. В межах ІК був створений підрозділ – Спеціальне конструкторське бюро математичних машин і систем, в якому конструювалися нові ЕОМ, в том числі управляючий обчислювальний комплекс УОК «Днепр-2» для керування технологічними процесами на підприємствах індустріальної промисловості. Туди пішли ентузіасти, в том числі і група трансляторщиків з Алгола-60 К.М.Лавріщевої з відділу К.Л. Ющенко, яка стала лабораторією (1967). З цього часу почалась робота, пов’язана з ТП, а саме, з розробки системного і математичного забезпечення для УОК «Днепр-2».

Лабораторія, потім відділ виконував такі розробки: системи програмування (Автокод і Алгамс, BHV–мова типу SQL ) для машин «Днепр-2» і «Нева», сформулював новий СМ-метод реалізації синтаксису і семантики цих мов програмування (МП) у відповідних трансляторах і компайляру ВHV; системи прийому і обробки даних в АСУ ТП на металургійному комбінаті (Берлін-Лейпциг) ГДР (1973); система автоматизації виробництва програм – АПРОП (1976–1986) новим методом збирання різномовних модулів через інтерфейс; технологічні лінії виробництва програм обробки даних на заказі АІС «Юпітер-470» за новим методом їх побудови за ідеями зборочного конвеєра В.М.Глушкова (1985–1991); цикл наукових проектів (більш 12) з розроблення новітніх методів, засобів та інструментів ТП програмних систем (ПС), сімейств систем, інформаційних систем (ІС) та інших автоматизованих систем, що наближені до індустріальних методів виробництва програм з готових програмних ресурсів; інструментально-технологічний комплекс – ІТК зі спектру технологій побудови сімейств ПС (2011).

Як результат виконанних досліджень і розробок сформульовані новітні парадигми технології програмування, саме: метод зв’язку різномовних програмних модулів через інтерфейс модульного посереднику, МП та технологічних ліній (ТЛ); система автоматизації виробництва програм з різномовних модулів з вирішення задач інтерфейсу, які актуальні і в наступному часі; методологія доказу розподілених ПС; об’єктна-компонентний метод виробництва ПС і СПС з готових компонентів повторного використання (КПВ); методи забезпечення якості КПВ, ПС і СПС; моделі взаємодії і варіабельності ПС і СПС; методологію фабрик програм із КПВ; інструментально-технологічний комплекс ІТК з сукупності простих технологій розроблення окремих елементів ПС тощо.

По цим роботам співробітниками відділу захищено вісім кандидатських, три докторські дисертації та біля 40 дипломних, бакалаврських та магістерських робіт під керівництвом проф. К.М.Лавріщевої. Зроблено більш 50 доповідей по цієї тематиці на різних всесоюзних і міжнародних конференціях.

Значна частина цих результатів має зараз і в перспективі наукове і прикладне значення. Вони постійно доповідалися і обговорювалися на лекціях студентів КНУ і МФТІ, мають розвиток і до сучасних гетерогенних середовищ.

У підручнику розглянуто становлення напрямів розвитку ТП та появи на той час закордоном програмної інженерії (Software Engineering) з теми же задачами і функціями, орієнтованими на комп’ютерну технологію, системну технологію, технологію прикладних ПС і їх сукупностей та пакетів прикладних програм (ППП) в межах ТП Дано опис базових основ цих технологій, моделей та формальних засобів представлення різних предметних областей ПС, АСУ, а також методів їх реалізації у швидко змінюваних операційних середовищах ЕОМ. Подано поширені стандартно загальні методи і засоби програмування (ООП, UML, компонентний, агентний, сервісний), а також оригінальні, відчинянні – композиційний, об’єктно-компонентний, збиральний методи та інструменти їх підтримки до тепер і зараз в умовах нових комп’ютерів, супер комп’ютерів і кластерів.

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

Поряд с цим автор навчав студентів стандартним засобам, які необхідні в процесі виробництва програм – життєвому циклу ISO/IEC 12207, загальним типам даних ISO/IEC 11404 – 2007 з апаратом їх генерації до фундаментальних типів даних, діючих у всіх мовах програмування та стандартам забезпечення інженерії якості ДСТУ 9126 та ISO/IEC 9000 (1–4) тощо.

У зв’язку з цим у підручнику викладаються і проходять апробацію відповідні інструментальні засоби операційних середовищ з підтримки сучасних технологій, інженерії програмування і проектування ІС, ПС і СПС. Важливе місце займає організація подання і застосування даних в цих системах для проведення обчислень на сучасних гетерогенних і кластерних комп’ютерних фреймворках, кластерах та Grid, Cloud Computing тощо. Запропоновані сучасні підходи до концептуального проектування ІС і ПС онтологічними засобами та методами індустріального виробництва програмних продуктів, зокрема на фірмах продуціруючими масове виробництво продуктів за допомогою фабрик програм (Appfabric MS.Net, Factory GriD, Factory programs and services ІС і VSphere) та сховищ глобальних даних тощо.

Всі ці питання сучасної технології програмування / програмної інженерії, раніш викладеної автором у підручнику (Програмна інженерія, Академперіодика, 2009) викладаються на лекціях з метою навчання студентів новітнім удосконаленим технологіям, базованим на сучасних прогресивних засобах Grid, Cloud Computing шляхом виконання на їх основі лабораторних, дипломних та магістерських робіт студентів. В цих роботах демонструється також застосування засобів і інструментів сучасних загальносистемних ОС і середовищ, а саме VS.Net, IBM, Corba, IBM, Eclipce, Protégé тощо. Наведені приклади наукових артефактів, виконаних деякими студентами та дано опис побудови фабрики програм КНУ (http://programsfactory.univ.kiev.ua), інструментально-технологічного комплексу – ІТК ІПС (http://sestudy.edu-ua.com) за участю студентів факультету кібернетики кафедри інформаційних систем та теорії і технології програмування, а також студентів філіалу МФТІ при інституті Кібернетики НАНУ. Деякі їх результати включаються в сайт фабрики, чи ІТК і пропонуються їм в якості готових підпроцесів для розширення завдань електронного навчання інших студентів ВНЗ України і СНГ.

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

Частина 1. ПОЧАТОК ПРОГРАМУВАННЯ В СРСР. ВИТОКИ РОЗВИТКУ ТП

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

Частина 2. ПАРАДИГМИ ТЕХНОЛОГІЇ ПРОГРАМУВАННЯ. Дається опис сучасних парадигм програмування, методв взаємодії і варіабельності ПС і СПС, фундаментальних і загальних типів даних, які використовуються в системах, сучасних середовищ побудови ПС із КПВ та фабрик програм і сервісів

Частина 3. МОДЕЛ І ЗАСОБИ ПРОЕКТУВАННЯ ПРЕДМЕТНИХ ОБЛАСТЕЙ. В цьому розділі запропоновані нові концептуальні моделі ПрО, ПС, ІС , СПС, які будуються за допомогою онтологій, сучасних стандартних моделей проектування систем і ІС за принципами Глушкова та з використанням стандартів ЖЦ, методів доказу правильності програм, інженерії якості та оцінювання різних показників готового продукту.

Частина 4. МЕТОДИ ІНДУСТРІЇ ВИРОБНИЦТВА ПРОГРАМ І СИСТЕМ. Посвячена методології виробництва ПС і СПС з використанням апробованих нових моделей взаємодії і варіабельності ПС і СПС та принципам побудови ліній виробництва програм для різних предметних областей з використання підходів Product Lines SEI та побудови програм в середовищі Microsoft та їх тестування

Частина 5. ПРОГРАМНА ІНЖЕНЕРІЯ/ТП – АСПЕКТИ РЕАЛІЗАЦІЇ НА САЙТІ ІТК ЗБИРАЛЬНОЇ ТЕХНОЛОГІЇ Розділ присвячений опису загальної структури ІТК байта http://sestudy.edu-ua.com, засобам реалізації спектру технологій: опис і збереження КПВ у репозиторію ІТК, опис онтології обчислювальної геометрії у мові DSL, ЖЦ ISO/IEC 12207 –2007 та реалізація процесу тестування, збирання та конфігурування КПВ у ПС і СПС;. організації практичного програмування мовою C# та Java та виконання створених програм в ІТК. Тут висвітлено підхід до Е-навчання ТП і програмної інженерії за електронним підручником автора. Наведено структура курсу дисципліни SE для навчання та перспективних напрямів розвитку ТП.

У підручнику є Додатки 1-5 з прикладів реалізації технологічних ліній ІТК і їх виконання на робочому столі сайту та фабрики програм.

Освітній курс SE поданий в електронному вигляді на фабрики програм КНУ дозволяє навчати SE студентів загальним позиціям ТП з виробництва ПП. Це такі:

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

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

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

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

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

- інструментальні системи (MS.Net, IBM, Corba, Protege, Eclipse і т.п.), в яких уявлені сучасні концепції, принципи і методи для реалізації з їх допомогою формально спроектованих різних типів ПС і СПС, здатних функціонувати в сучасних обчислювальних середовищах.

Основні теми програми навчання ТП ІС (Додаток 5) відповідають наведеним напрямам і впроваджуються на практичних заняттях при виконанні дипломних проектів, лабораторних програмних артефактів і програм.

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

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

Автор вдячна своїм співробітникам та колегам відділу, аспірантам і студентам, за сумісні роботи і отримані результати наукових досліджень, які автор використовував в своєї викладацької діяльності, зокрема, висвітлив їх у даному підручнику. Насамперед велику подяку висловлюю колегам Коваль Г.І, Коротун Т.М., Бабенко Л.П., Слабоспицької О.О., Куцаченко Л.І., Карпусь О.І. та багатьох інших за участь в наукових проектах з виконання робіт з технології програмування. Особливо Зіньковичу В.М. вдячна за підтримку і практичну участь разом зі студентами в побудові ІТК у 2011, як заключному етапу моєї наукової і педагогічної діяльності в ІПС НАНУ і КНУ імені Тараса Шевченко.

Велику вдячність автор висловлює проф.. В.Н.Редько, М.С.Нікітченко, які протягом сорока років давали можливість обговорювати на наукових семінарах кафедри «Теорія та технологія програмування» варіанти нормативного курсу з технології програмування для чергового викладання студентам, зокрема останній, що відповідав часу, стану розвитку ТП з урахуванням швидкого розвитку комп’ютерних і обчислювальних засобів у державі і в світі. Автор з задоволенням дякуєть студентів, що активно проходили цей курс, особливо Єгора Забеліна, Андрія Аронова, Артема Дзюбенко, Олексія Островського, Ігоря Радецького, Андрія Стеняшина, Тетяну Расаду та багато інших, що приймали участь в адоптації новітніх ідей з ТП, та створенні програм і технологічних засобів для першої студентської фабрики програм на факультети кібернетики в Київському національному університеті та сайту ІТК ІПС НАНУ.

Двигуном прогресу у розвитку ТП були студенти, йми по-перше впроваджувалися нові ідеї автора з ТП і саме вони допомагали їх удосконалювати та створити сучасні технологічні методи і засоби, які розміщені у Інтернеті і доступні усім, хто інтересується цими питаннями. Автор постійно доповідає про розвиток ТП на багатьох конференціях СРСР, а також на УкрПрог 1998–2012, ICTERI-2012 та інших конференціях. Багата результатів опубліковано у вітчизняних та закордонних виданнях по лінії ж. Кібернетика і системний аналіз.