
- •Перелік термінів та позначень
- •Передмова
- •Частина 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. Програма курсу «Технологія програмування іс»
Контрольні питання і завдання до частини 4
1. Охарактеризуйте загальні основи виробництва ПС.
2. Дайте характеристики моделі взаємодії.
3. Наведіть основні лінії виробництва програм.
4. Охарактеризуйте дисципліни програмної інженерії.
5. Чи необхідні ці дисципліни в індустрії програмних продуктів.
6. Визначте основні інструментальні засоби організації обчислень програм і систем.
7. Визначте новий тип програмного ресурсу – сервіси та веб-сервиси.
8. Як створюються нові технології розроблення спеціальних продуктів.
9. Визначити модель якісті програмного продукту.
10. Дайте перелік показників якісті ПС
11. Які характеристики є економічними.
12. Назовить методи оцінювання програмних систем.
13. Як розробляються програми в середовищі Windows.
14. У чому зміст інженерії програм і систем.?
15. Які є методи тестування і набор метрік для оцінки ПС.
Список літератури до частини 4
К.М.Лавріщева, Г.І.Коваль, Л.П.Бабенко, О.О.Слабоспицька, П.П.Ігнатенко. Нові теоретичні засади технології виробництва сімейств програмних систем у контексті ГП – Електронна монографія, ДРНТІ.– №67–УК–2011 від 5.10.11.–377 с.
Коваль Г.І., Колесник А.Л., Лавріщева К.М., Слабоспицька О.О. Удосконалення процесу розроблення сімейств програмних систем елементами гнучких методологій // Проблеми програмування . – 2010. – №2–3. – C. 261 – 270.
Лаврищева Е.М. Концепція індустрії наукового софтвера і підхід до обчислення наукових задач // Проблеми програмування, №1, 2011. – С. 3–17.
Анісімов А.В., Лавріщева К.М., Шевченко В.П. Про індустрію наукового софтвера.–Conf. Theoretical and Applied Aspects of Cybernetics, Kiev, Febrary, 2011, Febrary, Ukraine.
Лавріщева К.М., Слабоспицька О.О., Коваль Г.І., Колесник А.О. Теоретичні аспекти керування варіабельністю в сімействах програмних систем.–Вісник КНУ, серія фіз.–мат.наук. – 2011. – №1. – С. 151–158.
Лаврішева К.М. Взаємодія програм, систем й операційних середовищ // Проблеми програмування, №3, 2011.– с.13–24.
Островський А.И. Подход к обеспечению взаимодействия программных сред JAVA и Ms.Net.– Проблеми програмування, 2011.–№2.–с.37–44.
Радецький І.О Один з підходів до забезпечення взаємодії середовищ MS.Net і Eclipse // Проблеми програмування, №2, 2011.– с.45–52.
Аронов А. О. Дзюбенко А. І. Підхід до створення студентської фабрики программ // Проблеми програмування, №3, 2011.– с.42–49.
Слабоспицька О.О. Технологічна модель процесу автоматизованого виробництва сімейств програмних систем // Проблеми програмування. – 2011 – № 1. – С. 39–48.
Колесник А. Підхід до конфігуровання компонентів повторного використання // Проблеми програмування, №4, 2011.– с.57–64.3.
Стеняшин А.Ю. Про формальний опис типів і структур даних в різнорідних програмах.– Проблеми програмування, №2, 2011.– с.50–61.
Зінькович В.М . Онтологічне моделювання предметної області з проблематикою e–science’ // Проблеми програмування. – 2011 – № 3. – С. 91–99
Грищенко В.М., Куцаченко Л.І. Автоматизова інформаційна система підтримки міжнародної діяльності НАНУ. – Державний департамент інтелектуальної власності.– Свідотство № 32304 від 23.12.2009.
Колесник А.Л. Механізми забезпечення варіабельності в сімействах програмних систем // Проблеми програмування. – 2010. – №1. – C. 35–44.
Лаврищева Е.М. Теория и практика фабрик программных продуктов.–Кибернетика и
системный анализ.–№6, 2011.–с. 145–158.
Андон П.І., Лавріщева К.М. Теоретичні і прикладні підходи до індустрії програмної продукції.– Теза.– Матер.праць “Міжнародного наукового конгресу з розвитку інформаційно-комунікаційних технологій та розбудови інформаційного суспільства в Україні при Кабміні Україні (17–18 листопада 2011 р.).– Київ.– с.6–7.
Анісімов А.В., Лавріщева К.М. Початок електронного навчання програмної інженерії в
КНУ для виробництва програм і артефактів. Теза.– Там же.– с.8–9.
Лавріщева К.М. Теоретичні та прикладні аспекти побудови програмних систем
(TAAPSD’2010), 4–8 жовтня, 2010. – С. 274–285.
Лавріщева К.М. Про державну підтримку розвитку наукового софтвера.–Теза в
Матер. “VІІІ всеукр.наук.–метод.конференції”.–Кієв, 24–25травня 2011р.– с.82–85.
Стеняшин А.Ю. Особливості мовного підходу до опису моделей доменів.–Теза в Матер. “VІІІ всеукр.наук.-метод.конференції”.–Кієв, 24–25травня 2011р.– с.101–106.
Коротун Т.М., Слабоспицька О.О., Коваль Г.І. Експертно-аналітичний моніторинг якості навчального процесу у закладах вищої освіти (ISSN 2076–81842010) // Інформаційні технології і засоби навчання.–2010.– №4 (18). Режим доступу до журналу: http://www.ime.edu-ua.net/em.html
Колесник А.Л. Підходи до забезпечення варіабельності схем баз даних у сімействах програмних систем // Молодь і наука: сучасний стан, проблеми та перспективи національного відродження України: Матеріали ІІ Міжвузів. студентської науково-практичної конференції, К.: МНТУ, 2010. – С. 323 –324.
Ігнатенко П.П. Проблеми забезпечення життєздатності програмних систем та підходи до їх вирішення // Проблемы программирования. – 2002. – №3–4. – С 21
Основы инженерии качества программных систем / Ф.И.Андон, Г.И.Коваль, Т.М. Коротун, Е.М.Лаврищева, В.Ю. Суслов / Под ред. И.В. Сергиенко. – К.: Академпериодика. – 2007. – 680 с.
Липаев В.В. Обеспечение качества программных средств. – М: СИНЕРГ. – 2001. – 380 с.
ДСТУ 3918–99 Інформаційні технології. Процеси життєвого циклу програмного забезпечення. – Київ. – Держстандарт України. – 2000. – 49 с.
Лаврищева Е.М., Коротун Т.М. Построение процесса тестирования программных систем // Проблемы программирования.–2002. – № 1–2. – С. 272–281.
Задорожна Н.Т., Лаврищева К.М. Кероване проектування документообігу в управлінських інформаційних системах // Проблеми програмування. – 2006. – №4. – С. 37–47.
PMBOK, 2001 – Industrial Advisory Board of the Guide to the PMBOK, “A Guide to the Project Management Body of Knowledge” // www.pmbok.org
Software Engineering Body of Knowledge (SWEBOK). // ISO/IEC JTC1/SC7 N2517. Software & System Engineering Secretariat, Canada, 2001. – 220 p.
Липаев В.В. Тестирование программ. –М.: Радио и связь. – 1986. –296 с.
Бабенко Л.П., Лаврищева К.М. Основи програмної інженерії. – К.: Знання. – 2001. – 269 с.
Capability Maturity Model for Software, Version 1.1 / M.Paulk, B.Curtis at all // CMU– SEI– 93–TR–024, Soft. Engin. Institute, Pittsburg PA 15213, Feb. – Pittsburg. – 1993. – 82 p.
Мороз Г. Б., Лаврищева Е. М. Модели роста надежности ПО: Препр. / АН Украины. Ин–т кибернетики; 92–38. – Киев.: 1992.– 25 с.
Липаев В.В. Надежность программного обеспечения АСУ. –М.: Энергоиздат. – 1983. – 240 с.
Грищенко В.Н. Лаврищева Е.М. Компонентно-ориентироованное программирование. Состояние, направления и перспективы развития // Проблемы программирования. – 2002. – № 1–2. – С. 80–90.
Коротун Т.М Тестирование информационных систем с учетом риска // Проблемы программирования. – 2000. – №.1–2. – C. 385–392.
Коротун Т.М. Модель определения критерия завершения тестирования на основе анализа риска отказа и ее реализация // Проблемы программирования. – 2001. – № 1–2.– С.63–68.
-
ЧАСТИНА 5.
ПРОГРАМНА ІНЖЕНЕРІЯ – АСПЕКТИ РЕАЛІЗАЦІЇ НА САЙТІ ІТК ІПС
ЗБИРАЛЬНОЇ ТЕХНОЛОГІЇ
5.1. Реаізація технологій програмування на сайті ІТК ІПС
Сайт ІТК ІПС містить розділи, перелік яких наведений на рис.3 за змістом. Збоку рисунку наведено короткий зміст головних розділів сайту.
Усі розділи і підрозділи сайту побудовані по одній схемі, включаючи сторінки, що містять загальний теоретичний опис, приклад, що ілюструє освітлювану технологічну тему (розроблених в одному середовищ ІТК), детальне опис приклада, завантаження приклада на виконання і т.п.
Для відображення вмісту сайту була обрана архітектура, проміжна між статичними веб-сторінками і характерною архітектурою Model—View—Controller (MVC).
Усі сторінки, що відображають статті по тематиках сайту, будуються по єдиному шаблону, що включає в себе наступні основні елементи:
– заголовок, єдиний для всіх сторінок, що містить банне (позицію) підрозділу сайту і його назву;
– головне меню, що включає в себе панель вибору мови і посилання для навігації по розділах сайту;
– панель навігації, що містить посилання для переходу до різних підрозділів поточної статті;
– рядок поточного місцезнаходження;
– зміст статті;
– «підвал», що містить свідомості про авторів сайту.
Формування динамічних компонентів сторінки, до яких відносяться всі перераховані вище елементи, крім заголовка і «підвалу», здійснюється за допомогою мови програмування PHP. При цьому використовується деревоподібна структура представлення розділів і відповідних їм статей, що дозволяє без особливих зусиль формувати всі деталі сторінки. Для довгострокового збереження інформації, на зразок заголовків статей і їхнього вмісту, використовується база даних SQLite, що відрізняється від аналогів відсутністю необхідності у виділеному сервері. У зв'язку з частими повторами в різних статтях одноманітних елементів (наприклад, нумерованих рисунків і таблиць з інформацією про скачані файли), зміст статей, крім стандартних HTML-тегів, може включати також XML-теги, що перед відображенням сторінки перетворяться певним чином у HTML за допомогою препроцесора.
Принцип роботи з сайтом. Користувач обирає ключеві слова необхідної позиції (технологічної) строки сайту (див.леворуч схеми – рис.3), потім натискується на нею для виконання, а далі по наведеної схемі для кожної позиції сайту дані в рамки – клавіші дій, які треба виконати по кожної технології сайту:
Опис Приклад Закрити.
Технологія веб-сервіс має такі кнопки:
Опис Приклад ЗапускЗакрити
Кнопка запуск визначає виконання прикладу на рабочому столі сайти. По даному прикладу буде виконано клавішу запуск и по неї послідовно натискувати на повідомлення. Загрузити, Запустити і тощо. Аналогічно буде і для інших прикладів технології.
Спектр технологій ІТК ІПС
Розроблений нами ТП подано на даному сайті у вигляді наступного спектру спрощених ліній технологій [8, 27] :
1). Специфікація КПВ (компонентів повторного використання) й їх паспортів та навчання програмуванню VS.Net,
2). Робота з репозиторієм компонентів і КПВ;
3). Розробка КПВ;
4). Зборка різномовних програм і компонентів у ПС з конвертування несумісних типів даних у інтерфейсах зв’язку;
5). Конфігурування КПВ у складну структуру ПС по точкам варіантності;
6). Опис доменів мовою DSL;
7). Оцінювання якості й витрат на розробку ПС;
8). Технологія використання веб-сервісів Java та MS.Net;
9) онтологія з обчислювальної геометрії;
10). Генерація (трансформація ) типів даних (GDT стандарту ISO/IEC 11404 до ТД в МП).
Далі дається опис ліній технології та прикладів, що демонструють зміст той чи іншої технологічної лінії та результат її виконання. В цих технологіях використані прикладні і програмні реалізації студентів в процесі виконання лабораторних і дипломних робіт та уведені до складу сайту.
Отдельним розділом подано опис процесу е-навчання нормативному курсу «Програмна інженерія» (см. програму Додаток 1) та курсу «Технологія програмування» (см. програму курсу – Додаток 2). Лекціоний курс в основному викладений в розділах даного посібнику, на сайті ІТК і сайті фабрики програм, де можна вчитися мовам програмування C# і Java та тестувати приклади.