- •Перелік термінів та позначень
- •Передмова
- •Частина 1. Початок програмування в срср. Витоки розвитку
- •1.1. Поява і розвиток технології програмування (1952–2012)
- •1.2. Формування технологічних напрямів (1965–1975)
- •1.3. Становленья технології програмування (1975–1982)
- •1.4. Розвиток інтерфейсу в технології програмування (1976–1992)
- •1.5. Розвиток об’єктної технології програмування (1992–2002)
- •1.6. Індустріальні основи технології програмування (2002–2012)
- •1.7. Навчання тп у кну Тараса Шевченко (1965–2012) та філії мфті (2000–2012)
- •Контрольні питання і завдання до частини 1
- •Список літератури до частини 1
- •Частина 2. Парадигми технології програмування
- •2.1. Модульне програмування та збиральний підхід
- •2.1.1. Інтерфейс в програмуванні
- •2.1.2. Зборка модулів по а.П.Єршову
- •2.1.3. Метод зборки готових програмних елементів
- •2.1.4. Формальне подання методу збирання різномовних модулів
- •2.2. Парадигма об’єктно-орієнтованого програмування
- •2.2.1. Базові концепції ооп
- •2.2.2. Чотирьох рівневе проектування ом
- •2.2.3. Концепції об’єктного аналізу
- •2.2.4. Функції, алгебра та операції об’єктного аналізу
- •2.2.5. Моделювання моделі ПрО
- •2.2.6. Опис параметрів інтерфейсу ом
- •2.3. Парадигма uml-метода моделювання
- •2.3.1 Основні діаграми методу
- •2.3.2. Моделювання поведінки системи
- •2.3.3. Побудова пс засобами uml
- •2.4. Парадигма компонентного програмування
- •2.4.1. Теоретичні аспекти компонентного програмування
- •2.4.2. Моделі компонентного програмування
- •2.4.3. Графове подання компонентної моделі ПрО
- •2.4.4. Об’єднання компонентів. Модель середовища
- •2.4.5. Компонентна алгебра
- •2.4.6. Іінструментальні засоби кп
- •2.4.7. Технологія компонентної розробки пс
- •2.4.8. Типізація і класифікація програмних компонентів
- •2.4.9. Жц проектування пс із типових компонентів та кпв
- •Розробка вимог до пс – це формування та опис функціональних, технологічних, організаційних та ін. Властивостей програмної системи, які необхідні чи бажані з точки зору кінцевого користувача.
- •Розгортання рпс. У випадку, коли рпс створюється для конкретного замовника, який є і користувачем, то деякі завдання розгортання виконуються на попередніх етапах. До них, зокрема, відносяться:
- •Супровід рпс компонентній пс характеризується наступними особливостями.
- •2.5. Парадигма аспектно-орієнтованого програмування
- •2.5.1.Основні елементи парадигми аоп
- •2.5.2. Засоби аоп
- •2.5.3. Підтримка аоп впродовж життєвого циклу пс
- •2.5.5. Методичні аспекти аоп
- •2.6. Парадигма генерувального програмування
- •2.6.1 Предметно-орієнтована мова – dsl
- •2.6.2. Простір проблем і рішень ПрО
- •2.6.3. Інженерія ПрО і кпв
- •2.7. Сервісно-орієнтоване програмування
- •2.7.1 Базові понятті сервісу Інтернет
- •2.7.2. Сервіси wcf мs.Net з контрактами
- •2.8. Парадигми теоретичного програмування
- •2.8.1 Алгебраїчне та інсерційне програмування
- •2.8.2. Реалізація агентних програм
- •2.8.3. Експлікативне, номінативне програмування
- •2.8.4. Алгоритмічні алгебри
- •Контрольні питання і завдання до частини 2
- •Список літератури до частини 2
- •Частина 3. Моделі і засоби проектування предметних областей
- •3.1. Моделі проектування ПрО предметних областей
- •3.1.1. Концептуальні моделі пс, спс за компонентами
- •3.1.2. Моделі взаємозв’язку об’єктів
- •3.1.3. Модель інтеграції (зборка) компонентів
- •3.1.4. Тестування прикладних і інтерфейсних об'єктів
- •3.1.5. Моделі взаємодії і варіабельності пс для організації обчислень
- •3.1.6. Підхід до виконання пс в сучасних розподілених середовищах
- •3.2. Онтологічний підхід до подання знань про проблемні області
- •3.2.1. Онтологічне моделювання проблемної області
- •3.2.2. Мовний опис онтології домену чи спс
- •3.2.3. Підхід до реалізація онтології ПрО
- •3.3. Типи даних та засоби їх генерації для використання в збиральному прогрмуванні
- •3.3.1. Проблема забезпечення сумісності типів даних при зборки кпв
- •3.3.2. Аксіоматика простих типів даних
- •3.3.3. Аксіоматика структурних і складних типів даних. Структурні типи даних.
- •3.3.4. Семантичні аспекти взаємодії різнорідних програм
- •3.3.5. Характеристика типів даних для зборки програм
- •3.3.6. Фундаментальні і загальні типи даних
- •3.3.6. Баові поняття стандарту з типів даних
- •3.3.7. Перебудова загальних типів даних до фундаментальних для мп
- •3.4. Підходи і методи доказу програм
- •3.4.1. Мови специфікації програм –vdm, raise, Concept
- •3.4.2. Концепторна мова специфікації
- •3.4.3. Методи доведення правильності програм
- •3.4.4. Модель доказу програми за твердженнями
- •З.5. Проектування пс засобами жц з реалізації доменів
- •3.4.1. За загальна характеристика стандарту жц iso/iec 12207:2002
- •3.4.2. Формування конкретних моделей життєвого циклу
- •3.4.3. Підходи до моделювання ПрО мовними засобами dsl
- •3.6. Модель якості пс
- •3.6.1. Структура моделі якості
- •3.6.2. Модель витрат сосомо Боєма
- •3.6.3. Інтегрована модель витрат на спс
- •Контрольні питання і завдання до частини 3
- •Список літератури до частини 3
- •4.1.1. Моделі взаємодії компонентів у пс
- •Частина 4. Методи індустрії виробицтва програм і систем
- •4.1. Загальні основи методології виробництва пс і спс
- •4.1.2 Методологічні аспекти виробництва спс з готових ресурсів
- •4.2. Мова опису моделей взаємодії на основі xml
- •4.2.1 Подання та обмін даними в компонентних моделях
- •4.2.3 Модель конфігурації компонентів на основі xml
- •4.3. Графове подання пс і спс
- •4.3.1 Графове визначення моделі взаємодії об'єктів
- •4.3.2 Типи зв’язків об’єктів у графової моделі ПрО
- •4.4. Розробка методів побудови проблемно-орієнтованих технологій
- •4.4.1. Аналіз динаміки розвитку фабрик програм
- •4.3.2. Базисні ресурси фабрики програм
- •4.5. Загальні лінії виробництва програм з кпв
- •4.4.1. М етодологія побудови тл
- •4.4.2. Нові дисципліни індустрії наукового совтвера
- •4.4.3. Новітні засоби Grid і Cloud для обчислення задач e–sciences
- •4.4.4. Сучасні системи побудови рпс з сервісних ресурсів
- •4.4.5. Методологія розроблення тл
- •4.4.6. Принципи проектування іс
- •4.5. Методи при оцінюванні економічних характеристик проектів
- •4.5.2. Формальний апарат експертно-аналітичного оцінювання об’єктів і процесів у спс
- •4.5.3. Методи оцінки розміру
- •4.6. Створення Windows застосувань
- •4.6.1. Створення нової програми.
- •4.6.2. Властивості і дизайн програм
- •4.6.3. Компіляція програм
- •2.5. Запуск застосунка
- •4.6.4. Розширення функціональності програм
- •4.7. Інженерії тестування програмних систем
- •4.7.1. Основні поняття інженерії тестування
- •4.7.2 Становлення інженерії тестування
- •4.7.3. Методи тестування. Метрики і критерії
- •4.7.4. Інструменти тестування та оцінювання
- •4.7.5. Тестування веб-застосувань
- •Контрольні питання і завдання до частини 4
- •Список літератури до частини 4
- •5.2. Фабрика програм в кну
- •5.2.3. Створення фабрики студентів
- •5.2.4. Лінії продуктів фабрики на головної сторінки
- •5.2.5. Принципи роботи з репозиторієм програм і артефактів
- •5.2.6. Навчання дисципліні “Програмна інженерія” на фабрики
- •5.3. Репозиторій кпв
- •5.3.1. Загальний опис репозиторію
- •5.3.2. Технологія обслуговування репозиторію кпв
- •5.4. Розробка кпв
- •5.4.1. Опис моделей кпв, інтерфейсу і операцій розробки кпв
- •5.4.2. Реалізація побудови компонентної системи
- •5.4.3. Процеси технології оброблення кпв
- •5.4.4. Зборка різномовних програм у середовищі Visual Studio
- •5.5. Конфігурація кпв
- •5.5.1. Конфігурування кпв з урахуванням варіабельності
- •5.5.2. Опис прикладу використання конфігуратору програм
- •5.6. Генерація систем мовою dsl
- •5.6.1. Лінія опису та генерації доменів dsl
- •5.6.2. Опис життєвого циклу пз та його реалізації на мові dsl
- •2.7. Онтологія – обчислювальна геометрія
- •5.7.1. Онтологія домену – Обчислювальна геометрія
- •5.7.3. Опис моделі онтології ПрО «Обчислювальна геометрія»
- •5.7.4. Опис програми домену «Обчислювальна геометрія» мовою owl
- •5.8. Оцінка якості пс
- •5.8.2. Оцінка витрат на продукт
- •5.8.3. Опис модуля прогнозування трудовитрат на розробку пс
- •5.8.4. Приклад оцінювання затрат на розробку пс ас
- •5.9.1. Опис веб-технології Java ee
- •5.9.3. Приклад взаємодії Java і ms.Net через веб-сервіси
- •5.9.4. Інструкція по використанню графічного інтерфейсу прикладу
- •5.10. Генерація тд
- •5.10.1. Відображення типів даних у середовищі ітк
- •5.10.2. Система генерації загальних типів даних до фундаментальних
- •5.11. Інструментальні засоби сайта ітк
- •5. 12. Розділ сайта «Технологія навчання»
- •Контрольні питання і завдання до частини 5
- •Список літератури до частини 5
- •Післямова
- •Додаток 1. Парадигма структурного програмування
- •Додаток 2. Приклад створення служб wcf у ms Visual Studio 2010
- •Додаток 3. Онтологічний підхід з подання тестування кпв та пс
- •Додаток 4. Оцінка застосування метода сосомо на конкретних даних
- •Додаток 5. Програма курсу «Технологія програмування іс»
3.3.6. Фундаментальні і загальні типи даних
В ІПС НАНУ запропоновано нове фундаментальне рішення, щодо задач передачі даних по мережі, сутність якої полягає у розробленні оригінальної системи генерації загальних типів даних до ФДТ сучасних МП, на яких описуються програми для фізичних, біологічних і інших експериментів.
Фундаментальні типи даних – FDT визначають типи, операції над їх значеннями і форми подання їх на комп’ютері. Тип – це математичне поняття, що позначає множину значень елементів. Базовий тип є елементарним типом (ціле, дійсне та ін.), значення якого визначається апаратурою, компіляторами програм з МП та ін. Тип присвоюється змінній у програмі з МП, що визначає клас значень, кожне із яких належить одному і тільки одному типу. Операції над значеннями типу – це аксіоми, що перетворюють відображення значень одного типу в значення іншого типу. ФДТ включають прості, структурні і складні дані, множину операцій і значень типів даних, їх властивості і зв'язки з іншими типами даних. Прості типи – це перечислімо і числові, структурні – це масиви, записи тощо; складні – це множини, об’єднання, динамічні об’єкти даних, списки, послідовності, стеки, дерева та ін.
Типи даних призначені для опису функцій і програм в МП. Вони реалізуються системами програмування на різних платформах комп'ютерів у вихідний код, який є джерелом не лише для виконання програми на цій МП, але і для забезпечення взаємодії в різноманітних сучасних середовищах, коли вони відрізняються між собою. Кожна реалізована програма відображає тип даних конкретної МП, значення якого передається іншій програмі шляхом виклику (звернення) для обчислення.
Основи системи генерації GDT викладені у стандарті ISO/IEC 11404–2007 (General Data Types).
Типи даних загального призначення – GDT, подані у стандарті ISO/IEC 11404–2002, 2007 за номенклатурою і семантикою наборів типів даних, що найчастіше використовуються в МП та інтерфейсах ПС. Цей стандарт включає:
Language Independent Datatypes,
LID is the “pseudo-code” for datatypes,
XML is too low level,
UML is too high level,
LID can bind to XML, SQL, C/C++, Java, JavaScript
Стандарт ISO/IEC 11404–2007 встановлює номенклатуру та розподілену семантику для набору загальних типів даних. Він забезпечує специфікацію для незалежних від мов типів даних і визначає набір типів даних, незалежних від будь-якої конкретної МП або його реалізації. Набір достатньо повний, так що будь-який поширений тип даних, що використовується у стандартній МП чи сервісному пакеті, може перетворюватися на деякий тип даних з цього набору. Це типи даних, які є в FDT, і доповнені новими типами та засобами.
Примітивні типи даних (real, integer, char, boolean,…);
Складні типи даних (масив, запис, послідовність, портфель, контейнер,…);
Сгенеровані типи дані – це типи даних, отримані в результаті застосування генератора типів даних.
Агрегатний тип даних – це згенерований тип даних, кожне значення якого створене з інших типів даних для компонентів.
Генератор типів даних – це концептуальна операція на одному або декількох типах даних, яка створює новий тип даних.
Головною метою даного стандарту – полегшити узагальнення та обмін поняттями (нотаціями), які описують типи даних на концептуальному рівні для різних МП. Кожний тип даних, специфікований засобами стандарту, має певний базовий набір властивостей, достатній для його виділення серед інших типів даних та полегшення ідентифікації відповідного типу даних в інших стандартах. Таким чином, стандарт забезпечує одну загальну модель звернення (повідомлення) для усіх стандартів, що використовують концепцію типу даних. Кожен стандарт МП буде визначати перетворення типів даних, які підтримуються цією МП, в типи даних, які визначені у стандарті, та семантичну ідентифікацію типів даних цієї мови.
Типи даних стандарту 2007 створюють простір значень – сукупність (колекцію) значень деякого типу, що визначається одним з наступних способів: перелічення; аксіоматичне згідно основних положень; підмножиною вже визначеного простору значень; комбінацією будь-яких значень вже визначеного простору значень шляхом процедур конструювання нових значень. Кожне окреме значення належить тільки одному ТД, хоча воно може належати і декільком підтипам цього типу даних.
Модель ТД є обчислювальною і абстрактною моделлю. Вона має справу із властивостями одиниць інформації для визначення характерних операцій щодо типів даних і їх генераторів, типи даних яких можуть бути поданні у комп’ютерні системи.
Типи даних можуть належать одному сімейству, як що існує заміна, яка перетворює весь простір значень одного типу даних (domain) у підмножину (діапазон) простору значень іншого типу даних таким чином, щоб значення відношень і характеристичних операцій з домену і діапазону зберігалися.
Перша версія стандарту 11404 – 1996 року (гармонізований в Україні) пропонує LI (LI – Language Independed) типи даних, незалежні від МП, специфіковані, як примітивні (базові, незалежні від інших) типи даних і не примітивні, що повністю чи частково визначені через інші типи даних і становлять класи типів даних для використання у МП та ґрунтуються на концепції FDT.
ТД LI (від Language Independed) незалежні від МП, вони специфіковані, як примітивні (базові, незалежні від інших) типи даних і не примітивні, що повністю чи частково визначені через інші типи даних і становлять класи типів даних, реальні представники яких використані у МП, що ґрунтуються на концепції ФДТ. Механізмом звернення є виклик процедур з завданням інтерфейсу до кожного стандартного сервісного засобу або деякої системі.
У стандарті ISO/IEC 11404–1996 визначена мова для формальної ідентифікації задання семантики типів даних в LI (Independe Language) та підхід до перетворення внутрішнх типів даних МП і LI. Стандарт пропонує два види перетворень:
перетворення з внутрішніх типів даних мови до LI – зовнішне перетворення;
перетворення з LI-типів даних на внутрішні – внутрішнє перетворення.
Зовнішнє перетворення для примітивного внутрішнього типу даних визначає синтаксичні та семантичні конструкції і відношення щодо мови, які спільно та унікально подають цей внутрішній тип даних і пов’язують його з відповідним LI-типом даних, вираженим на формальній мові. Зовнішнє перетворення генератора визначає синтаксичні та семантичні конструкції та відношення мови, які спільно та унікально подають генерацію до внутрішнього типу даних.
Внутрішнє перетворення примітивного LI-типу даних або окремого згенерованого LI-типу даних пов’язане з визначеним синтаксичними і семантичними конструкціями і відношеннями мови. Таке перетворення визначає обмеження для параметричних значень будь-якої родини LI-типів даних, які виключають представників цієї родини з даного перетворення. Різні представники окремої родини LI-типів даних можуть перетворюватись на різні внутрішні типи даних.
Внутрішнє перетворення має наступні властивості для кожного:
LI-типу даних (примітивного або згенерованого) перетворення визначає, чи буде LI-тип даних підтримуватись МП і, якщо буде, то зазначає окремий відповідний тип даних;
підтриманого LI-типу даних перетворення визначає відношення між кожним допустимим значенням LI-типу даних і еквівалентним значенням відповідного внутрішнього типу даних;
значення внутрішнього типу даних перетворення визначає, чи буде це значення образом (після перетворення) якогось значення LI-типу даних і, якщо це має місце, то які значення і якого LI-типу даних перетворюються таким чином.
Обернене внутрішнє перетворення для LI-типу даних перетворює значення внутрішніх типів даних, які складають його образ, на відповідні значення LI-типу даних, використовуючи відповідність, яка встановлюється внутрішнім перетворенням. Щоб обернене внутрішнє перетворення не було двозначним, внутрішнє перетворення кожного LI-типу даних повинно бути взаємнооднозначним. Це формалізується якщо тип а:
становить значення LI–типу даних і внутрішнє перетворення перетворює а на значення а’ деякого внутрішнього типу даних, то внутрішнє перетворення не перетворює довільне значення b того ж LI–типу даних на а’, крім випадку, коли b = а;
становить значення LI–типу даних і внутрішнє перетворення перетворює а на а’ деякого внутрішнього типу даних, то обернене перетворює а’ на а;
становить значення LI–типу даних, яке виключається з домену внутрішнього перетворення, тобто не перетворюється ні на одне значення відповідного внутрішнього типу даних, то не існує жодного такого значення а’ будь–якого внутрішнього типу даних, що обернене перетворює а’ на а.
Обернене внутрішнє перетворення для мови становить колекцію обернених внутрішніх перетворень LI-типів даних.
