- •Перелік термінів та позначень
- •Передмова
- •Частина 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. Програма курсу «Технологія програмування іс»
4.3.2. Базисні ресурси фабрики програм
Одна з головних цілей фабрики складається в акумулюванні знань, створених у процесі рішення типових задач, і застосуванні їх у майбутніх проектах. Фабрика є способом опису багаторазово використовуваних рішень і організації їх по предметних областях, у яких ці задачі виникають. Ядром функціонування фабрики є база знань, у якій розміщається набір вимог, задач і багаторазово використовуваних рішень для застосування на лінії. Нові продукти розробляються по лініях програмних продуктів (software product lines) і мовам DSL шляхом завдання специфіки предметної області [5] для рішення поставлених задач. Є лінії що побудовані на архітектурних каркасах [8], а саме, застосування зразків і бібліотеки коду ПП [37–40, 46].
Базис фабрики:
– система дисципліни SE для підтримки наукових і прикладних робіт на фабрики;
– ресурси і активи, необхідні для функціонування фабрики;
– лінії виробництва програм;
– база знань,
– модельно–орієнтовані методи розробки програм тощо.
Головнним базисом фабрики є лінії виробництва спеціальних програм, які будуються засобами мета технології для відображення:
сфери застосування продукту, що виготовляється;
функціональної полноти процесів для побулови програмного продукту;
здатності до внесення змін у набір функцій процесів та і продукту.
– розширення структури лініїї «точками варіантності» для поповнення функціональності ліній та відповідних продуктів, а також внесення змін в них тощо.
Розробка лінії продукту складається з завдання загального аналізу вимог, побудови процесів проектування і розробки гнучкої архітектури сімейства продуктів на заданому наборі КПВ, активів і reuses для реалізації деякої функціональності продукту, що будується.
Усі програмні ресурси та їхні інтерфейси зберігаються у сховищах (бібліотеках, репозиторіях) для подальшого пошуку іншими фахівцями з метою подальшого застосування. Тобто, повторне використання стає капіталомістким видом діяльності на фабрики ПП. Крім того, використовується багата інших ресурсів та дисциплін, що тлумачуть процеси виробництва різних програмних продуктів на будь-яких фабриках програмної продукції.
В межах досліджень щодо розвитку програмної інженерії нами запропонована класифікація нових дисциплін, що спрямовані на індустріальне виробництво ПП [37–40, 46] (рис.1.3.).
Рис. 1.3. Класифікація дисциплін програмної інженерії
Різновиди ресурсів для фабрики
Пропонується набір технічних, технологічних і загальних ресурсів фабрики, необхідних для виконання підпроцесів базового процесу (БП) програмної інженерії і спрямованих на виконання договорів щодо ПП із замовником.
Технічні ресурси – платформи, процесори (Intel, IBM, Apple, MS; комунікації ( OSI, TCP/IP; комп’ютери користувачів; файли й сервери; локальні та глобальні комп’ютерні мережі; електронна пошта; техніка налагодження, тестери тощо.
Технологічні ресурси – бібліотеки, репозитарії готових ПП (КПВ, reuses, аssеts, applications, domains, systems); методики методів програмування зборочного типу (модульного, компонентного, сервісного, UML і ін.); керівництва й методики з мов інтерфейсів (IDL, API, DII, SIDL, XML, RDF і ін.,); стандарти (каркаси, шаблони, контейнери, процеси, програмні проекти, системи й ін.).
Загальносистемні ресурси – ОС, клієнт/серверні технології, інструменти; офісні системи (рідери/райтери форматів pdf, ps, html тощо); системи документообігу; утиліти (архіватори, записувачі інформації тощо); засоби захисту інформації (антивірусні, парольні тощо); CASE-інструменти, транслятори; графічні інструменти; СКБД, тощо.
Людські ресурси фабрики – це групи розробників і служб керування проектними роботами на фабриці, виконанням планів, керування якістю, ризиком, конфігурацією та перевіркою правильності реалізації вимог проекту, тощо.
В інфраструктуру людських ресурсів згідно стандарту ISO/IEC 12207 включені ряд груп за таким призначенням (рис.1.4):
техніко-технологічної підтримки (вивчення ринку, придбання Case, ПП, консультації співробітникам тощо);
захисту інформації (паролі, ключі захисту, перевірки тощо );
технологічної служби (супроводження, підтримки ЖЦ, контролю дій тощо);
якості (SQA-група) із функціями планування та виконання ЖЦ, перевірки робіт, контроль якості робочих продуктів і документів ПП тощо;
верифікації, валідаціїі і тестування компонентів чи ПП на правильність завдання вимог, координування планів робіт з менеджером, перевірка правильності ПП у тестовому середовищі системи;
керівник проекту, що відповідає за фінансові та технічні ресурси проекту, виконання проектних угод перед замовником та керування розробкою ПП;
менеджер проекту, відповідальний за розробку проекту фабрики згідно вимог, проектні рішення й плани робіт по їх реалізації;
проектувальники і програмісти, що відповідають за розробку проектних рішень і їх реалізацію у вигляді програм, документів і інших вихідних результатів;
– керівник конфігурацією, який реєструє версії ПП, зберігає тверді копії й версії з розмежуванням доступу до них.
Рис. 1.4. Взаємодія ресурсів на фабрики
Наведені ресурси є необхідними й достатніми для будь-якого індустріального колективу виробників ПП в подальшому. Роль і призначення різних фахівців наведені також у ряді інших стандартів.
Стандартні ресурси
Міжнародний комітет по стандартизації на даний часу розробив стандарти програмної інженерії, що регламентують порядок розробки ПП із керованими методами для деякої фабрики програм. Ці стандарти є ресурсом фабрики, головні серед них слідуючі.
Базовий процес призначений для забезпечення «процесного продукування» ПП, як виду інженерної діяльності з виготовлення ПП з операціями оцінки, вимірювання, керування змінами та вдосконалення самого БП відповідно до стандарта ДСТУ ISO/IEC 15504–7 («Оцінювання процесів ЖЦ ПЗ. Настанови з удосконалення процесу»). Оцінка зрілості організації або фабрики програм задається моделлю зрілості CMM (Capability Maturity Models) інституту SEI США, а також моделі Bootstrap, Trillium тощо. Рівень зрілості визначається наявністю фінансових ресурсів, стандартів і методик та здібностей (зрілості) членів колективу фабрики, здатних виготовляти ПП в задані строки та вартість.
Життєвий цикл (ЖЦ) у стандарті ISO/IEC 12207 «Процеси ЖЦ ПЗ” регламентований різними напрямами діяльності з розробки, проектування та керування ПП, організації процесів (планування, керування і супроводження), вимірювання, оцінювання продуктів і процесів. Найбільш важливими серед них є серія стандартів: ДСТУ ISO/IEC 14598 «Оцінювання програмного продукту», стандарт ДСТУ ISO 15939 «Процес вимірювання», серія стандартів ISO/IEC 15504 «Оцінювання процесів ЖЦ ПЗ», базові стандарти з якості – ISO 9001 «Системи керування якістю. Вимоги», ДСТУ 2844–94, ДСТУ 2850–94, що регламентують різні аспекти забезпечення якості ПП, а також стандарт ISO/IEC TR 9126 «Програмна інженерія. Якість продукту».
Ядро знань SWEBOK – це стандарт опису 10 розділів (knowledge areas) і за двома категоріями. Перша категорія – це методи і засоби розробки (формування вимог, проектування, конструювання, тестування, супровід), друга категорія – методи керування проектом, конфігурацією і якістю та базовим процесом [42]. Методи ядра знань відповідають стандартним процесам ЖЦ для наповнення БП з урахуванням потреб конкретної фабрики програм з регламентованою послідовністю розробки і супроводу ПП, починаючи з вимог, виробки проектних рішень, каркасів майбутнього продукту та вибору готових компонентів для «наповнення» цього каркасу відповідним змістом.
Ядро знань менеджменту проекту – це стандарт з керування проектом РМВОК, розроблений інститутом РМІ, що містить у собі опис лексики, структури процесів та три області знань: керування змістом проекту (планування з розподілом робіт); керування якістю з контролем результатів на відповідність стандартам якості; керування людськими ресурсами організації відповідно до їх кваліфікації й професіоналізму. На теперішній час – це стандарт IEEE Std.1490 «IEEE Guide adoption of PMI Standard. A Guide to the Project Management Body of Knowledge).
Крім цих головних стандартів, є багато інших, які повинні використовуватися при виготовленні ПП в організаціях або фабриках виробництва програм.
