“ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО ИНДУСТРИИ...

60
РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ” Доклад в МЦИТС-2012 доктора физ.-мат. наук, профессора Е.М.Лаврищевой

Upload: corine

Post on 11-Jan-2016

67 views

Category:

Documents


7 download

DESCRIPTION

“ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”. Доклад в МЦИТС-2012 доктора физ.-мат. наук, профессора Е.М.Лаврищевой. Глушков В.М., Вельбицкий В.С. 1-конференция по технологии программирования (1979). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

“РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО

ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Доклад в МЦИТС-2012

доктора физ.-мат. наук, профессора

Е.М.Лаврищевой

Page 2: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Глушков В.М., Вельбицкий В.С.

1-конференция по технологии программирования (1979)

Технология программирования – это совокупность методов, способов, приемов, средств автоматизации, технологического оснащения и регламентированного порядка их использования для разработки, производства и применения ПП в заданных требованиях и с заданными показателями качества.

ТП - путь к индустрии программ.

Page 3: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Історичні дані про індустрію

ІНДУСТРІЯ – виробництво різних видів продуктів для масового використання

Ідея В.М.Глушкова – Фабрики програм за принципом сборочного конвеєра (1975).

Постанова ДКНТ СМ СРСР – «Создание ГосФАП и РФАП» (1966-1996) та «Программные средства как продукция производственно-технического назначения» (1972).

Програмна інженерія – якість, продуктивність, індустрія Технологія програмування (1968).

Системи автоматизації виробництва програм і систем 1976-1990 (ПРИЗ, РТК, ПРОЕКТ, АПРОП, ДИСУППП, ДЕЛЬТАСТАТ, АЛЬФА, БЕТА…).

Композиционнное программирование (1979). Програмостроительній институт (1982-1984). Сборочное программирование Ершов А.П., Лаврищева Е. М. (1980-

1988). “От ручного труда к конвейрной сборки программ” К. Чернецки,

У.Айзенекер (2005). Continuous integration M. Fowler (2006). “Фабрики программ. Потоковая сборка программ” Дж.Гринфильд,

Г.Ленц, “Технологіческая схема фабрики” В. Авдошин –(2007, 2010).

“Фабрики програм у інформаційному світі” (2009). Сборочный конвеєр ЕПАМ (Белоруссия) -2010 Экспериментальная фабрика КНУ имени Тараса Шевченко.

Page 4: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Концепция академика В.М. Глушкова

(1975 г.)

«Пройдет 20–30 лет, программы будут выпускаться, как на сборочном конвейере автомобилей из готовых «деталей» фабрики Форда.

Появятся фабрики программ, работающие по принципу сборки в автомобильной промышленности».

Глушков считал, что в перспективе выпуск программной продукции будет на индустриальной основе и будет осуществляться на линиях сборочного конвейера.

Концепция сборочного конвейера постоянно развивается как инструмент индустрии

Page 5: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Глушков В.М. «Фундаментальные исследования и технология программирования» (1980 г.)

три основные направления технологии программирования:

модульная система автоматизации программирования «АПРОП» развивается из стандартизованных программных заготовок «снизу-вверх»;

метод формализованных технических заданий для проектирования сложных программных комплексов с использованием нескольких алгоритмических языков для описания отдельных блоков на уровнях последовательной детализации проекта;

Р-технология программирования предоставляет графические средства проектирования «сверху- вниз», начиная с описания структур данных в системах управления».

Актуальной задачей перспективного развития ТП Глушков В.М. считал «развитие технологии комплексного проектирования вычислительных систем, когда проектирование технических средств системы совмещено в едином процессе с проектированием ее базисного матобеспечения».

Page 6: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

А.П.Ершов «Отношение методологии и технологии программирования» Всесоюзная Конференция по ТП 1986 г.

Перспективные направления 1985– 1995 гг.

«Второе направление (сборочное программирование) Язык спецификации регламентирован. Переход от протопипа к промышленной версии регламентирован. Язык разработки – формализованный язык высокого уровня со средствами

модуляризации. Язык программирования объединен с языком разработки. допуская комплексирование с ассемблерными модулями….».

«Было бы полезно выработать норматив по технологии второго поколения, который не затрагивая конкретного методологического или языкового наполнения, унифицировал бы:

общую этапность разработки программного продукта; нормативы производительности и надежности продукта; организационно-документационную структуру; вычислительную инструментальную среду; межмодульный интерфейс, поддерживающий принцип сборочного

программирования.

Page 7: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Стили программирования (1970-1987)

Модульное программирование Система алгоритмических алгебр (Цейтлин Г.Е.) Синтезирующее программирование (Тыугу Э.Х.) Алгебраическое программирование (Летичевский А.А.) Сборочное программирование (Лаврищева Е.М.) Визуальное Р-программирование (Вельбицкий И.В.) Композиционное программирование (Редько В.Н.) Структурное программирование (Иордан Е.) Венский метод проектирования -VDM, Raise

(Д.Бьернер, С.Джонис) Процедурное программирование Функциональное программирование…

Page 8: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Стили программирования (1990-2012)

Объектно-ориентированное программирование (Г.Буч)

UML (Г.Буч, Дж.Рамбо, А. Джекобсон) Императивный концепторный язык (Коваль В.Н.)

компонентное программирование Генерирующее программирование (К.Чернецки,

У.Айзенакер) Распределенное конструирование объектов

ORB (В.Эммерих) Сервисно-ориентированное

программирование Программирование в сематик Веб Интернет Программирование в ЯП (C++, C#, Java, VBasic,

Ada, Ruby, Python, …) для современных сред.

Page 9: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Публикации по ТП (1970-1987)

 

Page 10: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Итоговые работы по ТП (1987-1992)

Page 11: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

«Тенденция развития технологии программирования 90-х» (Андон Ф.И.,

Лаврищева Е.М., УСиМ, 1993, №3, с.22-29). Основные перспективные направления

развития ТП: 1. ООП к проектированию прикладных

систем(ПС);2. Компьютерные CASE-системы

проектирования ПС;3. Приобретение и представление знаний

об объектах и функциях приложений с помощью компонентов повторного использования - КПИ;

4. Стандартизация методов интеграции и сборки ПС из КПИ;

5. Новые подходы к реализации интерфейса компонентов;

6. Инженерия качества – подходы к достижению надежности и качества ПС.

Page 12: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Развитие инженерии качества ПС Работы по качеству в рамках СЭВ (с 1987г.) Проекты по качеству при ДКНТ (с 1992г.)

Кулаков А.Ф. Стандарт качества ПС. Парадигма инженерии качества для СОД в

МО Украины. 10 методик (1998-2002). Методы тестирования и оценки качества

ПП Диссертации (Коваль Г.И., Коротун Т.М.,

Задорожная Н.Т., Слабоспицкая О.А.). Монография «Основы инженерии качества

программных систем.- Ф.И. Андон … (2002, 2007).

Page 13: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Публикации по SE (ТП)

Page 14: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Публикации индустриального направления

Page 15: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Развитие технологии программирования

по научным проектам ГКНТ и НАНУ в Институте программных систем: ГКНТ Украины- технология качественных программ (1992-1996),- разработка технологии статистической обработки в

АСНИ(1992-1994), - технология доказательного программирования (1994-

1998), НАН Украины- Стандартизация качества, процессов ЖЦ (1998-2001),- объектно-ориентированное (1998-2001) НАНУ,- компонентное программирование (2002-2006) НАНУ,- генерирующее программирование (2007-2011) НАНУ.

Page 16: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Поддержка индустрии разработки программ и систем

Технологические и индустриальные средства

Модели - модели разработки (MDD, MDA, SOA, PIM, PSM, GDM тощо); - новые модели, построенные в фундаментальных проектах ІПС НАНУ взаемодействия программ, систем и сред (interoperability), вариабельности (variability, variatnts, змінюваність), живучести (reliability, portability); - модели жизненного цикла (спиральная, ТЛ, Product Line) для производства ПП; - модели конфигурационные, cборочные, интеграционные,

трансформационные, генерационные и др.

Методы разработки ПП - компонентный, сборочный, генерационный, сервисный, аспектный,

композиционный.

Методы тестирования и оценки ПП - тестирование программ, систем, веб-приложений и др.; - методы верификации и доказательства, - оценка качества, стоимости, затрат, уровня процессов.

Стандарти SE, IT - ISO/IEC 12207 -ЖЦ, ISO/IEC 11404 –GDT, ДСТД 9126-качество…

Page 17: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Появление Фабрик програм для развития индустрии

 

1.Система АПРОП (ИК) в ОС ЕС для объединения разноязыковых модулей по методу сборки;

2.    Система Sun Microsystems (IBM) со сборкою разнородных програм и развитие новой модели SOA, Web-сервис, Ruby, Script тощо;

3.  OMA-архитектура, система CORBA (OMG) для взаимодействия клиєнта и сервера через Stub (для клиєнта), skeleton, Dill (для сервера) брокером ORB;

4. Фабрика «ручной» сборки разноязыковых програм Инга Бейя в языках (VC++, VBasic, Matlab, Java, Visual Works, Smalltalk тощо) для современных сред;

5.     Фабрики программ бизнесных программ с use case UML и МDA Дж.Гринфильда;

6.  Среда – MS.VSTS для производства программ и ПП разного назначения с участием специалистов с разных держав мирового сообщества;

7. Фабрика программ Г.Ленца по схеме изготовления программ в среде .Net;

8.  Инфраструктура системы Grid – тестирования, сборки и сертификации научных программ, ПП для вычисления в сети Европроекту;

9. Сборочный конвейер ЕПАМ…

Page 18: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Фабрики программ (2005)

Page 19: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Навчання аспектам индустрии

Page 20: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Навчання (продовження)

Page 21: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Основні елементи індустрії ПП

готовые программные компоненты (артефакты, программы, системы, reuses, assets, КПИ и т.п.);

интерфейс, как спецификатор паспортных данных готовых разнородных ресурсов, независимо от языка программирования, в языке спецификации интерфейса (IDL, API, SIDL, WSDL, RAS и т.п.);

операционная среда, содержащая системные программные средства и инструменты для поддержки сборки (интеграции) разнородных ресурсов;

ТЛ, продуктовые линии (Product Lines) производства ПП;

метод разработки (сборка, композиция КПИ, UML, DSL и др.);

сборочный конвейер (конфигурация, комплекс, пакет).

Page 22: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Технології індустріального напряму Технологія проектування КПВ і ПС - об’єктно-компонентний метод (ОКМ),- компонентний, генерувальний метод,- сервісно-орієнтований підхід.

Технологія розробки ПП за:- ЖЦ, продуктовими лініями, ТЛ.- графомовами DSL, WorkFlow, Use case, UML2. - конструювання по БП СПС із КПВ, assets.

Технологія взаємодії програм, систем і середовищ. Технологія варіабельності ПС і СПС. Технологія навчання прийомам виробництва ПС. ІТК сайт – http://sestudy.edu-ua.net

Page 23: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

1. Теорія об’єктно-компонентного програмування

(ОКМ)- об’єктна і компонентна алгебри метода ОКМ з операціями проектування різнорідних КПВ (reuses, assets, servises),- операції збирання і перетворювання даних до різних форматів сучасних середовищ (VS.Net, IBM, Corba, Eclipse тощо) за допомогою нових згенерованих примітивних функції GDT стандарту ISO/IEC 11404–2007 до FDT МП (і зворотно),- зменшення обсягу робіт з виробництва систем сімейства СПС за рахунок готових КПВ, операцій компонентної алгебри та системи трансформації GDT FDT.- Незахищена докторська дисертація Грищенка В.М.

Page 24: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Компонентное программирование

Компоненты повторного использования (КПИ);

Репозиторий онтологии программной инженерии на основе КПИ

Компонентная алгебра сборки КПИ. Программная система, семейство систем Монография 2 издание «Сборочное

программирование» Инструментально-технологический

комплекс (ИТК) изготовления СПС из КПИ.

Page 25: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Компонент повторного використання (КПВ)

Модель КПВ = (T, I, F, R, S),

T – тип компонента, I – интерфейс компонента;

F – функціональність; R – реалізація; S – сервіс взаємозв’язків з компонентами і середовищем;

мова специфікації інтерфейсів КПВ (IDL, АРІ, OSWL, XML…);

зборка компонентів і КПВ: інженерія застосувань, доменів, сімейств програм і систем;

модель репозиторія для подання КПВ для різних предметних областей.

Page 26: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Компонентна алгебра: операції зборкиперації зборкиinterconect PSinterconect PS ( (AA, , BB,, CC, , IntAIntA, , IntBIntB, , IntCIntC) - ) - взаємодія програм взаємодія програм AA, , BB,, CC за їх інтерфейсами за їх інтерфейсами IntAIntA, , IntBIntB, , IntCIntC;;

redevelop PSredevelop PS ( (IntAIntA, , IntBIntB) –) – перебудова типів даних А, В; перебудова типів даних А, В;

linkconfiglinkconfig SPSSPS ( (AAll11, B, Bll11, , CCll11 ( (IntIntidlidlAA, , IntIntidlidlBB, , IntIntidlidlCC) – зборка шляхом ) – зборка шляхом конфігурування програм конфігурування програм AA, B, , B, CC в одної МП в одної МП LL11 і їх параметри в і їх параметри в інтерфейсіінтерфейсі подані мовою подані мовою IDLIDL;;

makeawaymakeaway PSPS ( (AA) – ) – віддалити з системи віддалити з системи PSPS програму програму АА;;

addadd PSPS ( (AA, , CC) –) – додати компоненти додати компоненти А, СА, С до до системи системи PSPS; ;

insertinsert F F PSPS – – вставити модуль вставити модуль FF в в систему систему PSPS; ;

rename Arename A B B –– змінити імзмінити ім’’яя ; ;

redoingredoing xx, , yy BDBD –передати дані –передати дані xx, , yy в БДв БД за відповідним за відповідним форматом.форматом.

Page 27: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Принцип сборочного конвейера ПС

Сброчный конвейер академика Глушкова (1975);

Сборочное программирование, Ершов А.П. (1986),

Лаврищева Е.М. (1991, 2009), технология сборочного программирования, Липаев В.В. (1992);

Рroduct Lines of Software Engineering Institute of UA (2002);

Потоковая сборка, Дж. Гринфильд, К.Шорт - Фабрики разработки программ (2004),

Сборочный конвейер К.Чернецки и У. Айзенакер (2005);

Продолжающаяся интеграция по принципу конвейера М. Фаулера «Соntinuous integration» (2006),

Практика фабрики программного обеспечения в Dot.Net, Г.Ленц (2007),

Cборочный конвейер ЕПАМа (Belarus) для построения программных продуктов из components and artifacts, Д.Змитроченок (2008),

Экспериментальная фабрика программ в КНУ имени Тараса Шевченко (http://programsfactory.univ.kiev.ua) 2011.

Page 28: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Сборочное программирование в ГП

основано на наличии большого количества

разнообразных КПИ и ГОР, как объектов сборки; 

паспортизации объектов сборки; наборе стандартных правил сопряжения

объектов и средств автоматизации процесса сборки;

метод представления ТЛ (последовательность операций постепенного изготовления и установления связей между разнородными объектами, образовывая системы или семейства ПП.

Page 29: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Сборочное программирование Сборочное программирование - способ

объединения, комплексирования, конфигурирования ПС из готовых разнородных объектов посредством интерфейса (межмодульного, межъязыкового и технологического).

Межмодульный интерфейс – это модуль-посредник между двумя связываемыми программными объектами, выполняющий функции передачи, приема и преобразования нерелевантных данных между ними.

Межъязыковый интерфейс – совокупность средств и методов представления и преобразования структур данных и языков программирования друг в друга с помощью алгебраических систем.

Технологический интерфейс – совокупность методов и средств для осуществления процессов и операций ТЛ при реализации программного продукта.

Page 30: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Продолжение

Монографии «Связь разноязыковых модулей в ОС

ЕС» (М.:1982, Финансы и статистика, 127с.). Дано описание языка спецификации интерфейса и библиотеки межъязыкового интерфейса (64 функции);

«Сборочное программирование. Основы индустрии программных продуктов» (2009). Теория сборки и основы индустрии, стандарты, языки описания интерфейсов - API, IDL, SIDL и др.

Page 31: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Генерирующее программирование Обеспечение качества компонентов на процессах

создания СПС в среде ГП; Разработка теории интероперабельности

(интерфейса взаимодействии программ, ПС, СПС), вариабельности (изменения вариантов ПС, адаптивности), жизнедеятельности (безотказности и живучести ПС);

Методология сборочного конвейера объектов и компонентов;

Объектно-компонентный метод - ОКМ; Алгебра компонентов и КПИ для ведения

репозитория; Генерация типов данных передаваемых между

разноязыковыми программами; Конфигурационный метод реализации модели GDM; Онтология доменов, СПС; Технология обучения C#, Java, SE; Инструментальные средства поддержки ГП.

Page 32: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

2. Теорія взаємодії систем і середовищ

включає розвинутий апарат інтерфейсу систем та механізми обробки даних, що передаються по мережі з загальних і глобальних сховищ типа Grid і Cloud. Модель взаємодії Мвз забезпечує інтероперабельність і міграцію систем, розроблених у одному гетерогенному середовище в інше, розширюючи межі їх виконання. Взаємодія – це сумісність двох і більше об'єктів

Модель взаємодії Мвз = {Мпр, Мсис, Мсеред}, де Мпр = {Com, Int, Pro} – модель

програми, Мсис = {Cpc, Int, Pro } – модель системи, Мсеред = {Envir, Int, Pro} – модель середовища, в якому INT, PRO відображають сукупність інтерфейсів та протоколів, що передають дані між програмами через мережу.

Мвз по відношенню до стандартної моделі відкритих систем OSI є моделлю верхнього рівня, реализується сервісом Eclipse. Модель Visual Studio Eclipse Модель CORBA Visual Studio Eclipse

Page 33: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Загальна схема взаємодії систем і середовищ в Інтернеті

Репозиторій

КПВ

asse

ts

reus

e

Page 34: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Реалізація взаємодії сучасних середовищ через Eclipse в ІТК

GG

RR II DD

CORBAIBM

Class Sphere

MS Visual Studio

JAVA

ORBМови

програмування ( C,VC++,VC#,

SmallTalk, Java, Кобол, Visual Basic, Ada-96)RPC, бібліотеки

програм

Мови програмування

( C,VC++,VC#, Java)

Бібліотеки програм (DLL):

CLR, CTS, CLS

RMI брокер

Бібліотеки програм

ECLIPSE

Плагіни до інтрументів

і засобів

Бібліотеки програм

Мови програмування

( Алгол, ПЛ/1, Кобол, Фортран, Асемблер)

Бібліотеки програм

Page 35: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

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

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

3. Теорія моделювання варіабельності СПС

Page 36: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Модель варіабельності в ГП

Модель варіабельності в СПС – це трійка взаємопов’язаних моделей:1) варіабельності структури СПС ( SV );2) варіабельності артефактів СПС ( AV );3) інтегрована модель оцінювання рівня варіабельності ( EV ).1). SV відображає характеристики (features) СПС

SV = CF; Gt, TRt , t = 1,2,3,4; Constr; Dep , (1) де CF = SF, LF – граф характеристик (SF) і варіантного підпорядкування (LF);

Gt = Ft, LFt – граф з унікальною вершиною(Ft) артефактів (вимог, архітектури, систем тощо), поєднаних зв’язками LFt;

TRt – двосторонні зв’язки трасовності графуt

Constr і Dep – предикати на множині CF(t=1,…,4Ft) обмежень й залежностей властивостей продуктів СПС.

2). AV уніфіковано завдання продуктів СПС (програмні й непрограмні), що є в репозиторії модель має вигляд

AV = AF1, AF2, AF3, AF4 , f(aft) = rt; gt, trt, t = 1,2,3,4; con; dep, (2)

де AFt={f(aft)} – множина формальних подань артефактів СПС типу t; елементи кортежу f(aft) – підграфи відповідних графів з моделі (1); con і dep – звуження предикатів Constr і Dep з (1).

Page 37: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

AppFabric

*.exe*.dll

Eclipce / TFS

Web Interface

*.cs/*.xoml

*.jre

*.dll/*.exe/*.jre*.doc/ *.xls

Configurator

РозробникПС

B

A

2

1

3

4

56

Зборка варіабельних програм через конфігуратор ІТК

Page 38: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

4. Метод забезпечення життєздатності ПС

доменів та застосувань, орієнтований на безвідмовне функціонування ПС в процесі супроводження та доробки (реінженерії) компонентів під нові вимоги замовника СПС.

Модель життєздатності ПС включає:–         модель програмної системи сімейства у UML;–         узагальнені сценарії функціонування ПС;–         модель простежування змін основних сценаріїв функціонування ПС;–         показники життєздатності ПС (адаптовність,        стабільність, відмовостійкість,    тестовність);–         метрики та методи оцінки показників життєздатності ПС.

Page 39: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

5. Унікальний підхід до інженерії якості СПС

прийняття і обґрунтування рішень стосовно розроблення якісних

членів сімейств ПС починаючи з визначення вимог; інженерія ПС за базовим ЖЦ і КПВ; генерація нових ПС із готових ресурсів з

регульованими показниками якості в процесі при конструюванні структури СПС із готових КПВ;

оцінювання показників якості КПВ на процесах ЖЦ

Модель якості компонентів і ПСМяк = {Q, A, M, W}, де Q = {q1, q2, …, qi }i = 1, 6 – множина

характеристик якості (Quality – Q);A = {a1, a2,…, aj}j=1,…,J – множина атрибутів

(Attributes – A) для властивості qi;M = {m1, m2,…, mk}k=1,K – множина метрик (Metrics –

M) для кожного елемента aj атрибута характеристики якості;

W = {w1, w2,…, wn}n=1,N – множина вагомих коефіцієнтів (Weights – W ) для метрик множини M.

Page 40: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Инженерия качества программных систем

Управление качеством в жизненном цикле

программных систем

Тестирование про-граммных систем в

условиях ограничен-ных ресурсов

Совершенствование процессов жизненного

цикла ПС

Концепция совершенство- вания процессов жизненного цикла

Модель процесса принятия обоснованных решений по управлению качеством ПС

Модель распределения ко- личественных требований к качеству ПС по ее отдель- ным программным компо- нентам с учетом приорите- тов пользователя

Модель раннего прогнози- рования качества с приме- нением аппарата байесов- ских сетей. Решение задач не только прогнозирования качества, но и диагностики процессов, изъяны в кото- рых приводят к ее снижению

Модель процесса тестирования ПС, ориентированная на управление тестирова- нием с учетом рисков отказов срыва испол- нения проектов

Модель процесса и интегри- рованная технология интелек- туального управления риска- ми программных проектов с использованием экспертного оценивания по деревьям ценностей

Адекватный теоретический аппарат оценивания процессов ЖЦ и других объектов программной инженерии с применением методов группового экспертного оценивания

Page 41: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Процес оцінювання якості1. Моделювання функційних і нефункційних вимог

СПС.2. Оцінювання специфікацій СПС.3. Оцінка архітектури ПС в залежності від вимог.4. Оцінювання якості КПВ.5. Оцінювання якості членів СПС за характеристиками.

Базові характеристики якості ПС: q1: функціональність (functionality),q2: надійність (realibility), q3: зручність застосування (usability), q4: ефективність (efficiency), q5: супроводженість (maitainability),q6: переносність (portability). 6 q1 = a1j m1j w1j

j=1

Page 42: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

6. Методологія виробництва СПС

Ця методологія є відповіддю на виклик керівництва держави щодо індустрії програмної продукції

Містить комплексну технологію виробництва за новими дисциплінами SE різних складових елементів СПС шляхом виконання технологічних ліній в ІТК:

розробки окремих КПВ, сервісного обслуговування КПВ за інтерфейсами

у репозиторію, збирання, конфігурування різномовних КПВ у

СПС, взаємодії Visual Studio Eclipse, CORBA Visual

Studio Eclipse, тестування КПВ і інтерфейсів членів СПС, оцінювання якісних показників СПС та затрат на

розробку, навчання МП C#, Java, VBasic, навчання дисциплінам SE.

Page 43: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

6. Інструментально-технологічний комплекс - ІТК

ГП

Page 44: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Веб-сайт ІТК ГП

(http://sestudy.edu-ua.net) підтримує спектр технологій

виробництва СПС із готових КПВ і ГОР за простішими лініями поступового виробництва окремих елементів СПС і зборки їх у готовий ПП, інтероперабельний відносно названих гетерогенних середовищ.

Page 45: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Веб-сайт предназначен для обучения фундаментальным аспектам ПИ:

- ТЛ (их 15) изготовления разных программ и КПИ в ЯП;- технологии сборки готовых КПИ в новые ПП; - методам взаимодействия систем и сред;- технологическим средствам и стандартам электронного учебника

«Программная инженерия» на http://programsfactory.univ.kiev.ua

Технология обучения в ИТК включает: - стандарты жизненного цикла (ЖЦ);- преобразование (генерацию) типов данных GDT–FDT (ISO/IEC

11404) для обработки данных в гетерогенных средах;- языки DSL (Domain Specific Language) описания онтологий

доменов (ЖЦ и вычислительная геометрия);- взаимодействию программ, систем и сред;- онтологии доменов ЖЦ и вычислительной геометрии;- технологии программирования в ЯП среды VS.Net;- веб-сервис для выполнении операторов ИТК конвейерного типа.

Page 46: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Засоби ІТК 1. Программные средства поддержки линий разработки КПИ и СПС, взаимодействия ПС и

сред, конфигурации вариантов СПС из КПИ, генерации данных;

технологии работы с Eclipse и Protégé; сборки и интеграции КПИ; оценки качества ПП, электронного обучения программированию в языках

C#, Java, SE.

2. Инструментальные средства загальносистемні засоби (Corba, JAVA, VS.Net, IBM,

Protege, MCF й Tools DSL MS.Net тощо); засоби спеціального призначення (Eclipse, Protégé)

для моделювання моделей предметних областей та додавання до репозиторію;

системи програмування з МП Visual Basic, C++, Java та мови в межах VS.Net (C#, F#, C++ , Visual Basic), системи CORBA (C++, C, Lisp, Smalltalk, Java, Pascal, PL/1, Python) та Java/RMI;

засоби з підтримки мови DSL (Tools DSL VS.Net, Eclipse-DSL, Work Flow);

засоби тестування й оцінювання програм і КПВ.

Page 47: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Схема генерации типов данных GDT ФТД для разных сред

Примитивные типы данных

Агрегатные типы данных

Сгенерированные типы данных

Библиотека GDT

Библиотека функций

отображения GDT ФТД

Библиотека ФТД

Библиотека преобразований

типов данных (ЯП1, … ЯПn)

Общие типы данных (GDT)

Промежуточная среда ФТД GDT

Ср

ед

а в

ып

ол

не

ни

я

Простые типы данных

Сложные типы данных

Структурные типы данных

Фундаментальные типы данных (ФТД)

Компоненты повторного использования

(КПИ)

КПИ в ЯПn. . . . . . . КПИ в ЯП1

Репозитарий компонентов повторного использования

Page 48: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Підхід до реалізации GDT <=> FDT

Розроблено набір функцій для генерації типів даних в мові XML:

функцій перебудови типів даних МП1, …, МП n;

функцій подання типів даних ФДТ; функцій представлення GDT для

оброблення з апробованої схеми ФДТ;

функцій відображення GDT<=>FDT.

Page 49: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Задачі реалізації функцій перебудови:

1) Розроблення алгоритмів функцій для перетворення типів даних GDT (примітивних, агрегатних і генерованих) до FDT типів даних (простим, структурним і складним) МП і використання в середовища взаємодії різномовних компонентів, підсистем і проектів ІТК;

2) Технологія специфікації зовнішніх типів даних компонентів, підсистем і систем засобами GDT із накопиченням їх в бібліотеки середовища фабрики ГП;

3) Розробка сервісу опису формату нових посередників stub з операціями звертання до відповідних функцій GDT<=>FDT для передачі взаємодіючому компонентові перебудованих нерелевантних типів даних.

4) Адоптація функцій до середовища типа Grid.

Page 50: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

7. Експериментальна фабрика програм студентів КНУ  

Page 51: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Фабрика НАУКОВОГО СОФТВЕРА КНУ

– це теоретичні (наукові артефакти), прикладні ресурси (reuses, assets) та ПП.

ФАБРИКА - інтегрована інфраструктура (середовище), що призначено для:

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

- накопичення їх у репозиторіях чи бібліотеках знань;

- автоматизованого виготовлення софтвера, програм, ПП.

- використання викладачами та студентами ВНЗ України та Росії (звернень більш 4350) технології виробництва складних програм і систем.  

Веб-сайт буде англомовним, що розширить коло користувачів в інформаційному світі.

Page 52: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Процеси фабрики наукового

софтвера:

1) розробка нових SSW, програм за ТЛ, Product

Lines за допомогою засобів, інструментів і

сервісів відповідного середовища.

2) Опис специфікатора артефакту або програми за

стандартами.

3) Запис артефактів, програм і їх специфікаторів у

репозиторії

4) зборка готових програм у ПП.

5) тестування і оцінювання ПП.

Page 53: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Технические и технологические ресурсы фабрики

платформы, процессоры компьютеров (Intel, HP, IBM, Apple, MS, Cray, …);

средства коммуникации ( OSI, TCP/IP, HTTP…);

библиотеки, репозитарии готовых ПП (КПИ, Reuses, Аssets, Applications, Domains, Systems);

методики программирования для методов сборочного типа (модульного, компонентного, сервисного, UML и др.);

руководства по языкам интерфейсов (IDL, API, DII, SIDL, XML, RDF и др.); стандарты ЯП, качества, процессов ЖЦ, СММI и др.

стандарты на артефакты ПП (модели, каркасы, шаблоны, контейнеры, процессы, проекты, системы и др.); методические руководства по сервису и обслуживанию.

Page 54: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Определение линии продукта(Product Lines)

Линия продуктов - это сборочный конвейер из готовых КПИ для удовлетворения потребностей рынка программными продуктами.

Технологическая линия включает: – условия и ограничения на ресурсы линии продуктов; – образцы, каркасы, готовые КПИ; – стратегии и методы программирования; – средства и инструменты производства ПП на линии; – контроль плана работ и выявление рисков; – прогнозирование стоимостных и технических ресурсов ПП; – управление конфигурацией; –   измерение и оценка показателей качества продукта; – сертификация ПП.

Page 55: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”
Page 56: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

8. Нова класифікація дисциплін SE

Дисципліни SEДисципліни SE

Page 57: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

9. Методологія виробництва СПС

Включає теорії взаємодії, варіабельності та

життєздатності; комплексну технологія виробництва різних складових елементів СПС;

технологічні лінії розробки окремих КПВ; сервісного їх обслуговування у репозиторію за

стандартизованими інтерфейсами; збирання шляхом конфігурування різномовних

КПВ, тестування , оцінювання якісних показників СПС та витрат на розробку.

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

Page 58: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

10. Розроблено електронну монографію«Теоретичні і прикладні засади технології виробництва

сімейств програмних систем у контексті генеруючого програмування” (Автори: Лавріщева К.М., Коваль Г.І., Л.П.Бабенко, Слабоспицька О.О., Ігнатенко П.П.), здано у ДНТІ України за №67, жовтень 2011.

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

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

Ця монографія методично підвищить індустрію виготовлення програмної продукції в Україні, став настільним підручником в софтверних організаціях і в ВНЗ України для підготовки ІТ-спеціалістів.

Page 59: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Надруковано 10 наукових статей, що знаходяться на закордонному сайті: http://Springerlink.com/openurl.asp?genre=aticle&id=do.

Серед них статті Лавріщевої К.М. щодо індустрії програм і систем:– Classification of software engineering disciplines –2008,– Compositional programming theory and practice – 2009, – Formal fundamentals of component interoperability in programming –2010, – Theory and practice of software factories –2011 тощо.

Page 60: “ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО  ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”

Благодарю за внимание