600 likes | 974 Views
“ РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ”. Доклад в МЦИТС-2012 доктора физ.-мат. наук, профессора Е.М.Лаврищевой. Глушков В.М., Вельбицкий В.С. 1-конференция по технологии программирования (1979).
E N D
“РАЗВИТИЕ ТЕХНОЛОГИИ ПРОГРММИРОВАНИЯ ДО ИНДУСТРИИ ПРОГРАМНОЙ ПРОДУКЦИИ” Доклад в МЦИТС-2012 доктора физ.-мат. наук, профессора Е.М.Лаврищевой
Глушков В.М., Вельбицкий В.С. 1-конференция по технологии программирования (1979) Технология программирования – это совокупность методов, способов,приемов, средств автоматизации, технологического оснащения и регламентированного порядка их использования для разработки, производства и применения ПП в заданных требованиях и с заданными показателями качества. ТП - путь к индустрии программ.
Історичні дані про індустрію ІНДУСТРІЯ – виробництво різних видів продуктів для масового використання • Ідея В.М.Глушкова – Фабрики програм за принципом сборочного конвеєра (1975). • Постанова ДКНТ СМ СРСР – «Создание ГосФАП и РФАП» (1966-1996) та «Программные средства как продукция производственно-технического назначения» (1972). • Програмна інженерія – якість, продуктивність, індустрія Технологія програмування (1968). • Системи автоматизації виробництва програм і систем 1976-1990 (ПРИЗ, РТК, ПРОЕКТ, АПРОП, ДИСУППП, ДЕЛЬТАСТАТ, АЛЬФА, БЕТА…). • Композиционнное программирование (1979). • Програмостроительній институт (1982-1984). • Сборочное программирование Ершов А.П., Лаврищева Е. М.(1980-1988). • “От ручного труда к конвейрной сборки программ” К. Чернецки, У.Айзенекер (2005). • Continuous integration M.Fowler (2006). • “Фабрики программ. Потоковая сборка программ” Дж.Гринфильд, Г.Ленц, “Технологіческая схема фабрики” В. Авдошин –(2007, 2010). • “Фабрики програм у інформаційному світі” (2009). • Сборочный конвеєр ЕПАМ (Белоруссия) -2010 • Экспериментальная фабрика КНУ имени Тараса Шевченко.
Концепция академика В.М.Глушкова (1975 г.) «Пройдет 20–30 лет, программы будут выпускаться, как на сборочном конвейере автомобилей из готовых «деталей» фабрики Форда. Появятся фабрики программ, работающие по принципу сборки в автомобильной промышленности». Глушков считал, что в перспективе выпуск программной продукции будет на индустриальной основе и будет осуществляться на линиях сборочного конвейера. Концепция сборочного конвейера постоянно развивается как инструмент индустрии
Глушков В.М. «Фундаментальные исследования и технология программирования» (1980 г.) три основные направления технологии программирования: • модульная система автоматизации программирования «АПРОП» развивается из стандартизованных программных заготовок «снизу-вверх»; • метод формализованных технических заданий для проектирования сложных программных комплексов с использованием нескольких алгоритмических языков для описания отдельных блоков на уровнях последовательной детализации проекта; • Р-технология программирования предоставляет графические средства проектирования «сверху- вниз», начиная с описания структур данных в системах управления». Актуальной задачей перспективного развития ТП Глушков В.М. считал «развитие технологии комплексного проектирования вычислительных систем, когда проектирование технических средств системы совмещено в едином процессе с проектированием ее базисного матобеспечения».
А.П.Ершов «Отношение методологии и технологии программирования» Всесоюзная Конференция по ТП 1986 г. Перспективные направления 1985– 1995 гг. «Второе направление (сборочное программирование) • Язык спецификации регламентирован. • Переход от протопипа к промышленной версии регламентирован. • Язык разработки – формализованный язык высокого уровня со средствами модуляризации. • Язык программирования объединен с языком разработки. • допуская комплексирование с ассемблерными модулями….». «Было бы полезно выработать норматив по технологии второго поколения, который не затрагивая конкретного методологического или языкового наполнения, унифицировал бы: • общую этапность разработки программного продукта; • нормативы производительности и надежности продукта; • организационно-документационную структуру; • вычислительную инструментальную среду; • межмодульный интерфейс, поддерживающий принцип сборочного программирования.
Стили программирования (1970-1987) • Модульное программирование • Система алгоритмических алгебр (Цейтлин Г.Е.) • Синтезирующее программирование (Тыугу Э.Х.) • Алгебраическое программирование (Летичевский А.А.) • Сборочное программирование (Лаврищева Е.М.) • Визуальное Р-программирование (Вельбицкий И.В.) • Композиционное программирование (Редько В.Н.) • Структурное программирование (Иордан Е.) • Венский метод проектирования -VDM, Raise (Д.Бьернер, С.Джонис) • Процедурное программирование • Функциональное программирование…
Стили программирования (1990-2012) • Объектно-ориентированное программирование (Г.Буч) • UML (Г.Буч, Дж.Рамбо, А. Джекобсон) • Императивный концепторный язык(Коваль В.Н.) • компонентное программирование • Генерирующее программирование(К.Чернецки, У.Айзенакер) • Распределенное конструирование объектов ORB(В.Эммерих) • Сервисно-ориентированное программирование • Программирование в сематик ВебИнтернет • Программирование в ЯП (C++, C#, Java, VBasic, Ada, Ruby, Python, …) для современных сред.
«Тенденция развития технологии программирования 90-х» (Андон Ф.И., Лаврищева Е.М., УСиМ, 1993, №3, с.22-29). Основные перспективные направления развития ТП: 1. ООП к проектированию прикладных систем(ПС); 2. Компьютерные CASE-системы проектирования ПС; 3. Приобретение и представление знаний об объектах и функциях приложений с помощью компонентов повторного использования - КПИ; 4. Стандартизация методов интеграции и сборки ПС из КПИ; 5. Новые подходы к реализации интерфейса компонентов; 6. Инженерия качества – подходы к достижению надежности и качества ПС.
Развитие инженерии качества ПС • Работы по качеству в рамках СЭВ (с 1987г.) • Проекты по качеству при ДКНТ (с 1992г.) Кулаков А.Ф. Стандарт качества ПС. • Парадигма инженерии качества для СОД в МО Украины. 10 методик (1998-2002). • Методы тестирования и оценки качества ПП • Диссертации (Коваль Г.И., Коротун Т.М., Задорожная Н.Т., Слабоспицкая О.А.). • Монография «Основы инженерии качества программных систем.- Ф.И. Андон … (2002, 2007).
Публикации индустриального направления
Развитие технологии программирования по научным проектам ГКНТ и НАНУ в Институте программных систем: ГКНТ Украины - технология качественных программ (1992-1996), - разработка технологии статистической обработки в АСНИ(1992-1994), - технология доказательного программирования (1994-1998), НАН Украины - Стандартизация качества, процессов ЖЦ (1998-2001), - объектно-ориентированное (1998-2001) НАНУ, - компонентное программирование (2002-2006) НАНУ, - генерирующее программирование (2007-2011) НАНУ.
Поддержка индустрии разработки программ и систем Технологические и индустриальные средства Модели - модели разработки (MDD, MDA, SOA, PIM, PSM, GDM тощо); - новые модели, построенные в фундаментальных проектах ІПС НАНУ взаемодействия программ, систем и сред (interoperability), вариабельности (variability, variatnts, змінюваність), живучести (reliability, portability); - модели жизненного цикла (спиральная, ТЛ, Product Line) для производства ПП; - модели конфигурационные, cборочные, интеграционные, трансформационные, генерационные и др. Методы разработки ПП - компонентный, сборочный, генерационный, сервисный, аспектный, композиционный. Методы тестирования и оценки ПП - тестирование программ, систем, веб-приложений и др.; - методы верификации и доказательства, - оценка качества, стоимости, затрат, уровня процессов. Стандарти SE, IT - ISO/IEC 12207 -ЖЦ, ISO/IEC 11404 –GDT, ДСТД 9126-качество…
Появление Фабрик програм для развития индустрии 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. Сборочный конвейер ЕПАМ…
Основні елементи індустрії ПП • готовые программные компоненты(артефакты,программы, системы, reuses, assets, КПИ и т.п.); • интерфейс,как спецификатор паспортных данных готовых разнородных ресурсов, независимо от языка программирования, в языке спецификации интерфейса (IDL, API, SIDL, WSDL, RAS и т.п.); • операционная среда,содержащая системные программные средства и инструменты для поддержки сборки (интеграции) разнородных ресурсов; • ТЛ, продуктовыелинии (Product Lines) производства ПП; • метод разработки (сборка, композиция КПИ, UML, DSL и др.); • сборочный конвейер (конфигурация, комплекс, пакет).
Технології індустріального напряму Технологія проектування КПВ і ПС • об’єктно-компонентний метод (ОКМ), • компонентний, генерувальний метод, • сервісно-орієнтований підхід. Технологія розробки ПП за: • ЖЦ, продуктовими лініями, ТЛ. • графомовами DSL, WorkFlow, Use case, UML2. • конструювання по БП СПСіз КПВ, assets. Технологія взаємодії програм, систем і середовищ. Технологія варіабельності ПС і СПС. Технологія навчання прийомам виробництва ПС. ІТК сайт– http://sestudy.edu-ua.net
1. Теорія об’єктно-компонентного програмування (ОКМ) • - об’єктна і компонентна алгебри метода ОКМ з операціями проектування різнорідних КПВ (reuses, assets, servises), • - операції збирання і перетворювання даних до різних форматів сучасних середовищ (VS.Net, IBM, Corba, Eclipse тощо) за допомогою нових згенерованих примітивних функції GDT стандарту ISO/IEC 11404–2007 до FDT МП (і зворотно), • -зменшення обсягу робіт з виробництва систем сімейства СПС за рахунок готових КПВ, операцій компонентної алгебри та системи трансформації GDTFDT. • - Незахищена докторська дисертація Грищенка В.М.
Компонентное программирование • Компоненты повторного использования (КПИ); • Репозиторий онтологии программной инженерии на основе КПИ • Компонентная алгебра сборки КПИ. • Программная система, семейство систем • Монография 2 издание «Сборочное программирование» • Инструментально-технологический комплекс (ИТК) изготовления СПС из КПИ.
Компонент повторного використання (КПВ) • Модель КПВ = (T, I, F, R, S), • T – тип компонента, I – интерфейс компонента; • F– функціональність; R – реалізація; S– сервіс взаємозв’язків • з компонентами і середовищем; • мова специфікації інтерфейсів КПВ (IDL, АРІ, OSWL, XML…); • зборка компонентів і КПВ: інженерія застосувань, доменів, сімейств програм і систем; • модель репозиторія для подання КПВ для різних предметних областей.
Компонентнаалгебра: операції зборки • interconect PS (A, B,C, IntA, IntB, IntC) - взаємодія програм A, B,C за їх інтерфейсами IntA, IntB, IntC; • redevelop PS (IntA, IntB) – перебудова типів даних А, В; • linkconfigSPS (Al1, Bl1, Cl1 (IntidlA, IntidlB, IntidlC) – зборка шляхом конфігурування програм A, B, C в одної МП L1 і їх параметри в інтерфейсі подані мовою IDL; • makeawayPS (A) – віддалити з системи PS програму А; • addPS (A, C) – додати компоненти А, С до системи PS; • insertF PS – вставити модуль F в систему PS; • rename AB –змінити ім’я ; • redoingx, yBD–передати дані x, yв БД за відповідним форматом.
Принцип сборочного конвейера ПС • Сброчный конвейер академика Глушкова (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.
Сборочное программирование в ГП основано на • наличии большого количества разнообразных КПИ и ГОР, как объектов сборки; • паспортизации объектов сборки; • наборе стандартных правил сопряжения объектов и средств автоматизации процесса сборки; • метод представления ТЛ (последовательность операций постепенного изготовления и установления связей между разнородными объектами, образовывая системы или семейства ПП.
Сборочное программирование Сборочное программирование - способ объединения, комплексирования, конфигурирования ПС из готовых разнородных объектов посредством интерфейса (межмодульного, межъязыкового и технологического). • Межмодульный интерфейс – это модуль-посредник между двумя связываемыми программными объектами, выполняющий функции передачи, приема и преобразования нерелевантных данных между ними. • Межъязыковый интерфейс – совокупность средств и методов представления и преобразования структур данных и языков программирования друг в друга с помощью алгебраических систем. • Технологический интерфейс – совокупность методов и средств для осуществления процессов и операций ТЛ при реализации программного продукта.
Продолжение Монографии • «Связь разноязыковых модулей в ОС ЕС» (М.:1982, Финансы и статистика, 127с.). Дано описание языка спецификации интерфейса и библиотеки межъязыкового интерфейса (64 функции); • «Сборочное программирование. Основы индустрии программных продуктов» (2009). Теория сборки и основы индустрии, стандарты, языки описания интерфейсов - API, IDL, SIDL и др.
Генерирующее программирование • Обеспечение качества компонентов на процессах создания СПС в среде ГП; • Разработка теории интероперабельности (интерфейса взаимодействии программ, ПС, СПС), вариабельности (изменения вариантов ПС, адаптивности), жизнедеятельности (безотказности и живучести ПС); • Методология сборочного конвейера объектов и компонентов; • Объектно-компонентный метод - ОКМ; • Алгебра компонентов и КПИ для ведения репозитория; • Генерация типов данных передаваемых между разноязыковыми программами; • Конфигурационный метод реализации модели GDM; • Онтология доменов, СПС; • Технология обученияC#, Java, SE; • Инструментальные средства поддержки ГП.
2. Теорія взаємодії систем і середовищ включає розвинутий апарат інтерфейсу систем та механізми обробки даних, що передаються по мережі з загальних і глобальних сховищ типа Grid і Cloud. Модель взаємодії Мвззабезпечує інтероперабельність і міграцію систем, розроблених у одному гетерогенному середовище в інше, розширюючи межі їх виконання.Взаємодія – це сумісність двох і більше об'єктів Модель взаємодії Мвз = {Мпр, Мсис, Мсеред},де Мпр = {Com, Int, Pro} – модель програми, Мсис = {Cpc, Int, Pro }– модель системи, Мсеред = {Envir, Int, Pro}– модель середовища, в якому INT,PRO відображають сукупність інтерфейсів та протоколів, що передають дані між програмами через мережу. Мвз по відношенню до стандартної моделі відкритих систем OSI є моделлю верхнього рівня, реализується сервісом Eclipse. Модель Visual Studio Eclipse Модель CORBA Visual StudioEclipse
Загальна схема взаємодії систем і середовищ в Інтернеті
Реалізація взаємодії сучасних середовищ через Eclipse в ІТК
процесом управління варіантами СПС, починаючи з завдання вимог до отримання готового продукту СПС за базовим процесом розв’язання задач планування КПВ з репозиторію та забезпечення адоптивності к новим умовам функціонування і ї зміни у сімействі СПС.Підготовлено до захисту дисертаційну роботу, в якої розроблено модель варіабельності СПС, теорію управління процесом варіабельності артефактів і структури СПС та реалізовано програмну підтримки процесу варіабельностів межах інструментально-технологічного комплексу (ІТК). 3. Теорія моделювання варіабельності СПС
Модельваріабельності в ГП Модель варіабельності в СПС – це трійка взаємопов’язаних моделей: 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).
Зборка варіабельних програм через конфігуратор ІТК
4. Метод забезпечення життєздатності ПС доменів та застосувань, орієнтований на безвідмовне функціонування ПС в процесі супроводження та доробки (реінженерії) компонентів під нові вимоги замовника СПС.Модель життєздатності ПС включає:– модель програмної системи сімейства у UML;– узагальнені сценарії функціонування ПС;– модель простежування змін основних сценаріїв функціонування ПС;– показники життєздатності ПС (адаптовність, стабільність, відмовостійкість, тестовність);– метрики та методи оцінки показників життєздатності ПС.
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.
Процес оцінювання якості 1. Моделювання функційних і нефункційних вимог СПС. 2. Оцінювання специфікацій СПС. 3. Оцінка архітектури ПС в залежності від вимог. 4. Оцінювання якості КПВ. 5. Оцінювання якості членів СПС за характеристиками. Базові характеристики якості ПС: q1: функціональність (functionality), q2: надійність (realibility), q3: зручність застосування (usability), q4: ефективність (efficiency), q5: супроводженість (maitainability), q6: переносність (portability). 6 q1 = a1j m1j w1j j=1
6. Методологія виробництва СПС Ця методологія є відповіддю на виклик керівництва держави щодо індустрії програмної продукції Міститькомплексну технологію виробництва за новими дисциплінами SE різних складових елементів СПС шляхом виконання технологічних ліній в ІТК: • розробки окремих КПВ, • сервісного обслуговування КПВ за інтерфейсами у репозиторію, • збирання, конфігурування різномовних КПВу СПС, • взаємодії Visual Studio Eclipse, CORBA Visual StudioEclipse, • тестування КПВ і інтерфейсів членів СПС, • оцінювання якісних показників СПС та затрат на розробку, • навчання МП C#, Java, VBasic, • навчання дисциплінам SE.
6. Інструментально-технологічний комплекс - ІТК ГП
Веб-сайт ІТК ГП (http://sestudy.edu-ua.net) підтримує спектр технологій виробництва СПС із готових КПВ і ГОР за простішими лініями поступового виробництва окремих елементів СПС і зборки їх у готовий ПП, інтероперабельний відносно названих гетерогенних середовищ.
Веб-сайтпредназначен для обучения фундаментальным аспектам ПИ: • ТЛ (их 15) изготовления разных программ и КПИ в ЯП; • технологии сборки готовых КПИ в новые ПП; • методам взаимодействия систем и сред; • технологическим средствам и стандартам электронного учебника«Программная инженерия» на http://programsfactory.univ.kiev.ua Технология обучения в ИТК включает: • стандарты жизненного цикла (ЖЦ); • преобразование (генерацию) типов данных GDT–FDT (ISO/IEC 11404) для обработки данных в гетерогенных средах; • языки DSL (Domain Specific Language) описания онтологий доменов (ЖЦ и вычислительная геометрия); • взаимодействию программ, систем и сред; • онтологии доменов ЖЦ и вычислительной геометрии; • технологии программирования в ЯП среды VS.Net; • веб-сервис для выполнении операторов ИТК конвейерного типа.
Засоби ІТК 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); • засоби тестування й оцінювання програм і КПВ.
Схема генерации типов данных GDTФТД для разных сред
Підхід до реалізации GDT<=> FDT Розроблено набір функцій для генерації типів даних в мові XML: • функцій перебудови типів даних МП1, …, МП n; • функцій подання типів даних ФДТ; • функцій представлення GDT для оброблення з апробованої схеми ФДТ; • функцій відображення GDT<=>FDT.
Задачі реалізації функційперебудови: 1) Розроблення алгоритмів функцій для перетворення типів даних GDT (примітивних, агрегатних і генерованих) до FDT типів даних (простим, структурним і складним) МП і використання в середовища взаємодії різномовних компонентів, підсистем і проектів ІТК; 2) Технологія специфікації зовнішніх типів даних компонентів, підсистем і систем засобами GDT із накопиченням їх в бібліотеки середовища фабрики ГП; 3) Розробка сервісу опису формату нових посередників stub з операціями звертання до відповідних функцій GDT<=>FDT для передачі взаємодіючому компонентові перебудованих нерелевантних типів даних. 4) Адоптація функцій до середовища типа Grid.
7. Експериментальна фабрика програм студентів КНУ