
- •Перелік термінів та позначень
- •Передмова
- •Частина 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. Методи індустрії виробицтва програм і систем
- •4.1. Загальні основи методології виробництва пс і спс
- •4.1.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. Програма курсу «Технологія програмування іс»
2.2. Парадигма об’єктно-орієнтованого програмування
Об’єктно-орієнтоване програмування (ООП) визначає стратегію побудови предметної моделі ПрО, згідно теорії Г.Буча відповідно якої вісь світ складається з об’єктів. Розробники систем мають мислити в термінах об'єктів і методів їх виконання. Об'єкт, як певна сутність ПрО перебуває в різних станах і має певний набір операцій, які пов’язані з об’єктом, надають іншим об’єктам послуги (сервіси) для виконання методів, а їх стан залежить від значень атрибутів. Об'єкти створюються відповідно до визначення класу об’єктів, в якому описуються всі їхні атрибути й операції.
Модель об’єктної ПС можна розглядати як набір взаємодіючих об'єктів, що мають власний стан і набір операцій, які впливають на стан інших об'єктів. Об'єкти приховують інформацію про значення станів, операцій і обмежують доступ до них.
ООП має багата засобів для проектування ПрО. Основними поняттями є:
– типізація (typing, subtyping) – абстракція об‘єктів;
– сервіс-функція над атрибутами (automatic attribute operation);
– класифікація, генерація, поліморфізм та успадкування об‘єктів;
– діаграми та схеми, що відображають об’єкти та їх відношення у різних частинах моделі ПрО і. др.
Для ООП сформульовані концепції, функції, правила та операції проектування об’єктної моделі (ОМ) та відповідної програмної системи. Їх сутність розглядається нижче.
2.2.1. Базові концепції ооп
До базових концепцій ООП проектування об’єктних моделей ОМ) відносяться такі:
– концепція узагальнення понятійній структури ПрО, що відповідає формальному поняттю трикутника Фреге, згідно якої об’єкт є денотатом з власним ім’ям та певним змістом;
– теоретико-множинна концепція, яка базується на принципі відміни при впорядкуванні визначених за першою концепцією відношень залежності між множинами об’єктів та теоретико-множинних операціях над об’єктами (об’єднання, різниці, декартового добутку тощо);
– логіко-алгебраїчна концепція для опису множини об’єктів як алгебраїчної системи з визначеною сукупністю предикатів певної сигнатури;
– концепція поведінки об’єктів в залежності від терміну їх функціонування та сформованих ними станів, що фіксуються в діаграми переходів станів і використовуються при виконанні об’єктів.
Дані концепції покладені в основу визначення рівнів проектування ОМ з забезпеченням її повноти та коректності [31, 45]. Головною рисою рівнів проектування є зовнішні та внутрішні характеристики об’єктів та їх опис на заданій множині об’єктів з встановленням типів взаємовідношень: спеціалізація, агрегація, класифікація, асоціація, екземплярізація тощо.
Будь яка ПрО подає собою сукупність понять, пов'язаних деякою множиною відношень, яка визначає її поведінку на протязі часу. Базові поняття мають наступний від:
об’єктна орієнтація = об’єкти + успадкування
Кожне поняття ПрО, разом з його властивостями та особливостями поведінки у середовищі, є окремий об'єкт, а уся ПрО – це сукупність об'єктів зі зв'язками, які встановлюються на базі відношень між цими об'єктами. У ролі об'єкту виступають як абстрактні образи, так і конкретні фізичні предмети або групи предметів з зазначеною підмножиною їх характеристик та функцій.
Визначення об'єкту, як базисного поняття побудови ОМ, застосовується на двох припущеннях:
– для кожного об'єкта однозначно визначається його відповідність до сутності ПрО, включаючи відображення необхідних зв'язків та особливостей поведінки;
засіб подання ПрО за об'єктним підходом визначає міру повноти відображення сутності та поведінки як об'єкту, або міру адекватності його сприйняття замовником.
Повнота відображення сутності, що задається об'єктом, відповідає мірі абстракції та її відображенню у час його опису.
Визначення об'єкту. Для одночасного урахування обох вимог у запропонованої концепції запроваджується понятійна структура, що відповідає поняттю трикутника Фреге (рис. 2.1) згідно якої об'єкт є денотатом. Символ використовується для ідентифікації об'єкту, а денотат відповідає рівню знань виконавця про сутність модельованого світу, що відбивається об'єктом.
Природно, що денотат можна ідентифікувати різним чином, використовуючи для цього обрані алфавіти, та одному об'єкту можуть відповідати декілька концептів, відображаючи обраний рівень абстракції. Кожному трикутнику Фреге у обраній логічній системі буде відповідати певний об'єкт з власним ім'ям та певним змістом.
Об’єкт – іменована частина дійсної реальності з певним рівнем абстракції відносно вибраної предметної області та з цілком обумовленої поведінкою. Поданням об’єкту є понятійна структура у вигляді трикутника Фреге.
Рис.2.1. Трикутник Фреге
Об'єкти інтерпретуються як понятійна структура відповідно трикутнику Фреге, яка складається з власного ідентифікатору, денотату, чи то образу предмету або абстрактної компоненти, на який вказує цей ідентифікатор, і концепту, що визначає змістовність цього денотату, виходячи з мети концептуального моделювання.
Будимо використовувати принцип відміни для розглядання об'єкту як окремий елемент ПрО, характеристики якого служать для відрізнення його між усіма іншими компонентами ПрО.
Цей принцип базується на припущенні, що сутність об'єкту визначається через його особливість, яка, у свою чергу, розуміється як зовнішня відміна від інших об'єктів. Внутрішні особливості об'єкту (його структура, внутрішні характеристики), якщо вони безпосередньо не впливають на зовнішні відміни, і для концептуального моделювання значення не мають.
Концепція об’єктного аналізу ПрО з метою проектуванні ОМ з об’єктів та відповідний логіко-математичний апарат на кожному рівні розглядаються на наступних рівнях:
– узагальнюючий для визначення базових понять ПрО, що аналізується, у вигляді <ім'я об'єкту> <концепт>;
– структурний для теоретико-множинного упорядкування об'єктів та подання їх в виді графу, що реструктурується операціями упорядкування;
– характеристичний для поширення графу характеристиками об’єктів та їх властивостей, отриманих при виконанні структурного аспекту;
– поведінковий для визначення поведінки та взаємозв'язків між об'єктами, а також для контролю та коректування зв’язків у побудованому графу ОМ.
Цим рівням відповідають операції:
– узагальнення поняття об'єкту у вигляді денотату у відповідності з застосованою теорією Фреге;
– теоретико-множинного впорядкування операцій над множинами об’єктів (об'єднання, перехрещення, різниці, додатку, симетричної різниці);
– логіко-алгебраїчного подання об'єктів у вигляді алгебраїчної системи з відповідними операціями над множиною об'єктів і їх характеристиками;
– інтерпретації поведінки об'єктів з урахуванням зв’язків між характеристиками та часу їх існування в ОМ.
Сутність чотирьох рівнів проектування ОМ ПрО міститься у послідовному їх застосуванні, починаючи з узагальненого і закінчуючи поведінковим. Це проектування завершується формалізованим описом сутностей ПрО.
Для кожної концепції на базі визначених понять формулюється своє власне визначення принципу відміни об'єктів, що обумовлює трансформацію подання та опису об'єктів, отриманих у рамках використання інших концепцій.
У даної методології аналізу ПрО розглядаються наступні концепції. Концепція узагальнення призначено для виділення і опису сутностей ПрО у процесі аналізу ПрО з використанням відповідних понятійних структур – трикутники Фреге і з повним зняттям неоднозначності та невизначеності об'єкту ПрО. Згідно теорії Геделя-Бернайса об'єкту ставиться у відповідність поняття класу.
Теоретико-множинна концепція після виконання першого рівня проектування об'єктів ПрО дає структурне впорядкування об’єктів за допомогою бінарного відношення належності. Поняття класу замінюється поняттям множини. Якщо об'єкт є елементом іншого об'єкту, то він визначається множиною. При цьому не кожен об'єкт є елементом будь якого іншого об'єкту (класу). Наприклад, об'єкт, що відповідає усій ПрО для певної ОМ, не є елементом будь якого іншого об'єкту у цієї ОМ. При цьому умова визначення об'єкту формулюється наступним чином: кожен об'єкт обов'язково є множиною або елементом іншої множини. Порядок елементів множини може бути визначений через побудову відображення певної рахункової множини (наприклад, множиною природних чисел) з поданою множиною. Об'єкт вирізняється з множини усіх елементів завдяки використання побудованого відображення. За даною концепцією над об'єктами виконуються звичайні теоретико-множинні операції – об'єднання, перехрещення, різниці, додатки, симетричної різниці, декартового добутку. Конкретизацією поняття об'єкту є:
– клас – це об'єкт, який подає собою множину;
– екземпляр класу – це об'єкт, що є елементом певної множини, яка сама є класом;
– об'єднаний клас – це множина, що є прямою сумою декількох інших множин;
– клас-перехрещення – це множина, яка є загальною частиною інших множин;
– агрегований клас – це множина, яка є підмножиною певного декартового добутку декількох інших множин.
Логіко-алгебраїчна концепція розглядає множину об'єктів ПрО як алгебраїчну систему із сукупності предикатів певної сигнатури, які відповідають умовам концептуального моделювання ПрО за операціями:
– 0-арними для завдання констант в усталених характеристиках ПрО;
– унарними для відображення властивостей окремих об'єктів;
– бінарними для завдання взаємозв'язків між окремими парами об'єктів.
Властивість об'єкту. Це унарний предикат, що визначається на множині об'єктів ПрО та приймає значення істини на даному об'єкті. Об'єкт має наступні властивості. Зовнішня властивість об'єкту це будь який-небудь аспект проблемної орієнтації об'єкту в рамках даної моделі ПрО. Внутрішня властивість об'єкту визначає статус об'єкту як множини та, в загальному випадку, сумісно з іншими внутрішніми властивостями об'єкту приймає участь у формуванні його виду.
Об'єкт, що має одночасно статус як множини, так і елемента якій-небудь множини, притаманні обидва виду властивостей – зовнішня та внутрішня.
Характеристика об'єкту – це сукупність властивостей (унарних предикатів), що є підмножиною множини, виділених у системі предикатів та вдовольняючи умові, за якої на кожному об'єкті приймає значення істини одночасно не більш, ніж один предикат з сукупності, що визначає характеристику. Характеристика може бути зовнішньою, відображаючи проблемну властивість об’єкта і внутрішнію як особливості в середині об’єкту.
Між об’єктами можуть бути взаємовідносин типа: множина – множина (узагальнення, спеціалізації, агрегації, деталізації); елемент множини – елемент множини (класифікації, екземплярізації); елемент множини – множина; множина – елемент множини.
Концепція опису поведінки об’єктів орієнтована на розгляд залежностей характеристик об'єктів ПрО від часу існування об'єкту, яка задається моделлю подій та повідомлень.