ПРОГРАММНАЯ ИНЖЕНЕРИЯ. ФАБРИКА ПРОГРАММ И АРТЕФАКТОВ

Содержание

Слайд 2

Программная инженерия (1968-2011)

Программная инженерия – раздел компьютерных наук (Computer Science), изучающий методы и

Программная инженерия (1968-2011) Программная инженерия – раздел компьютерных наук (Computer Science), изучающий
средства построения компьютерных программ как инженерной регламентированной деятельности коллективов разработчиков программных продуктов (ПП):
определяет объекты (модули, компоненты, аспекты и др.) и операции над ними, объединяющиеся в целостный технологический процесс создания программного продукта;
обобщает накопленный опыт программирования и отражает закономерности развития технологии программирования. Расширяет содержание понятия “Программирование” путем привлечения понятийного аппарата инженерных дисциплин;
является инженерной дисциплиной, охватывающей все аспекты создания программных продуктов, начиная с формулирования требований, кончая сопровождением и снятием с эксплуатации, а также включает инженерные методы управления проектами и оценивание трудозатрат, стоимости и качества изготовления программных продуктов.
Инженерная деятельность по всем аспектам изготовления ПП планируется и декомпозируется на отдельные работы, распределяющиеся по разным категориям исполнителей.

Слайд 3

Computer Science (CS)

Компьютерная инженерия - это методы построения разных вычислительных моделей,

Computer Science (CS) Компьютерная инженерия - это методы построения разных вычислительных моделей,
компьютеров, механизмов контроля Hardware и Software.

Системная инженерия - это методы построения систем обработки информации, АСУ на основе компьютеров (Computer Systems), принципы их работы и методы управления и выполнения соответствующих классов задач.

Программная инженерия – это теория программирования, инженерия и технология построения компьютерных программных систем.

Слайд 5

Структура связей дисциплин CS

Дисциплины Computer Science:
EE - Electronic Engineering, CE

Структура связей дисциплин CS Дисциплины Computer Science: EE - Electronic Engineering, CE
- Computer Engineering, SE - Software Engineering.
Дисциплины обработки информации:
IT – Information Technology, IS – Information Systems.

Слайд 6

Программная инженерия занимает центральное место в пространстве информатики. Она дает теоретические

Программная инженерия занимает центральное место в пространстве информатики. Она дает теоретические и
и технологические средства системной и компьютерной инженерии, ИТ, ИС.

Слайд 8

Направления работ в области программной инженерии
1. SWEBOK, PMBOK (2001, 2004).
Объектно-ориентированное (UML), компонентное

Направления работ в области программной инженерии 1. SWEBOK, PMBOK (2001, 2004). Объектно-ориентированное
программи-рование (КМ), сервисное, генерационное.
Фундаментальные типы данных (FDT) ЯП – Ч.Хоар, Вирт (1974), В.Н.Агафонов (1981), Типы данных общего назначения (GDT) – Стандарт ISO/IEC 11404-1996, 2007 …
Стандарты ISO/IEC 12207- ЖЦ, ДСТУ 9126 - качество ...
Инструментальные среды разработки ПС (СОМ, СОRBA, MS.VSTS, JAVA, MSF, Grid, Oberon, Babel, Rational Rose…).
Технологические линии, Product lines.
Дисциплины индустрии ПП (наука, инженерия, экономика, управление и др.)

Слайд 9

Классификация дисциплин SE

Классификация дисциплин SE

Слайд 10

Подход к созданию научного софтвера в КНУ


Научный софтвер -

Подход к созданию научного софтвера в КНУ Научный софтвер - это теоретические
это теоретические (научные артефакты), прикладные программы (reuses, assets), информационные ресурсы и программные продукты (готовые компоненты повторного использования – КПИ).
В КНУ разработана с участием студентов экспериментальная фабрика программ и артефактов.
Фабрика программ - интегрованная инфраструктура (среда) для:
- сбора теоретических артефактов как продуктов научной деятельности студентов по дисциплинам - прикладная математика, информатика, компьютерные науки;
- описания и накопления артефактов в репозиториях или библиотеках знаний;
- сертификации артефактов и программ в форме, принятой в системе Grid;
- автоматизированной разработки программ и их сборки в сложную программу;
- выполнения построенных программ на контрольных данных;
- электронного обучения дисциплинам программной инженерии.

Слайд 11

Процессы фабрики научного софтвера:


1) разработка новых SW, программ по ТЛ, Product

Процессы фабрики научного софтвера: 1) разработка новых SW, программ по ТЛ, Product
Lines с помощью средств, инструментов и
сервисов соответствующей оперционной среды.
2) Описание спецификатора артефакта или программы по стандартам типа WSDL.
3) Ведение (запись, обработка) артефактов, программ и их спецификаторов в репозиторию.
4) сборка готовых КПИ, программ в продукт.
5) тестирование и оценивание ПП.

Слайд 12

Проблемы индустрии программ и артефактов
Индустрия ПП в мире дает более 100

Проблемы индустрии программ и артефактов Индустрия ПП в мире дает более 100
млрд. дол.
Вклад Украины в индустрию ПП - 1.3%, в основном за услуги рынка программистов.
Государственная программа «Развитие индустрии ПП в Украине» 2011р. (http://www.index.org.ua) ориентирована на индустриальное изготовление, аутсорcинг и внедрение программных продуктов в разные сферы деятельности государства с использованием информационных и коммуникационных технологий.
Необходимо обучение студентов методам и приемам производства программных продуктов.
Государство должно давать заказы на построение софтвера с участием студентов ВУЗов.

Слайд 13

Подход к обучению программной инженерии в КНУ

Разработан сайт http://programsfactory.univ.kiev.ua,
на

Подход к обучению программной инженерии в КНУ Разработан сайт http://programsfactory.univ.kiev.ua, на котором
котором можно обучаться:
– технологии разработки программ средствами C# VS.Net;
– технологии разработки программ на языке Java;
– технологичной дисциплине “Программная инженерия” SE);
ттехнологии сертификации научных артефактов (компонентов, reuses, assets, serviсes и др.), разработанных студентами по шаблонам, принятым в инфраструктуре европейского проекта Grid, для размещения КПИ в репозитории (библиотеке) КНУ и возможного их переноса в международные библиотеки для обмена артефактами между студентами.

Слайд 14

Структура шаблона спецификатора КПИ


Структура шаблона спецификатора КПИ

Слайд 15

САЙТ ФАБРИКИ ПРОГРАММ КНУ

САЙТ ФАБРИКИ ПРОГРАММ КНУ

Слайд 16

Общая структура линий разработки артефактов на сайте КНУ

Линия разработки

Линия сборки

Общая структура линий разработки артефактов на сайте КНУ Линия разработки Линия сборки

Слайд 17

Базовые научные элементы фабрик программ

Ядро знаний SWEBOK (Software Engineering Body of

Базовые научные элементы фабрик программ Ядро знаний SWEBOK (Software Engineering Body of

Knowledge) международного комитета при ACM и
IEEE Computer Society.  
Методы программирования сборочного типа.
Ключевые понятия программной инженерии: качество,
продуктивность, индустрия (Наур, 1968). Средства
автоматизации.
Система дисциплин разработки ПП на фабрике программ.
Методология сборки программ (Greenfield, Chernetcky, др.).
Линии продуктов (Product lines) SEI США.
Хранилища (библиотеки) готовых продуктов, как деталей.
Среды взаимодействия ПП.

Слайд 18

Фабрика сборки программ

это интегрированная инфраструктура сборочного производства
компонентов, подсистем, систем,

Фабрика сборки программ это интегрированная инфраструктура сборочного производства компонентов, подсистем, систем, модулей
модулей (блоков), семейств
систем, АСУ, АСУТП и др.
Предназначена для выполнения государственных, коммерческих
и др. заказов на ПП.  
Базис инфраструктуры сборочного производства ПП:
  среды сборки (SUN ONC, MS.Net, Corba, IBM, Java, Oberon, Babel,
Grid, Eclipse и др.);
линии разработки и сборки ПП;
методы программирования;
  комплекс ресурсов (научных, инженерных, технических,
технологических, экономических, финансовых, людских
ресурсов и др.);
библиотеки (репозитории) готовых ПП, КПИ, интерфейсов, др.

Слайд 19

СРЕДСТВА АВТОМАТИЗАЦИИ ФАБРИКИ

   хранилища готовых программ (компонентов, подсистем,
систем, модулей, семейств

СРЕДСТВА АВТОМАТИЗАЦИИ ФАБРИКИ хранилища готовых программ (компонентов, подсистем, систем, модулей, семейств систем
систем и др.;
библиотеки (репозитории) интерфейсов, классов и др.;
инструменты сборки (интеграторы, сборщики, брокеры
запросов, конверторы данных и программ, пруверы,
конфигураторы, ... ); 
инструменты инженерии ПП - экспертизы, метрического
анализа, измерения, оценки качества и надежности, стоимости
ПП и работ, сертификации;
языки программирования и трансляторы, компиляторы,
редакторы, отладчики ПП ЯП;
 средства защиты и безопасностипрограмм и данных;
стандарты OSI, ЖЦ, качества, метрики;
инструменты методов и моделей (UML, сервисный, SOA, MDD,
DSL …).

Слайд 20

Типы фабрик программ

для производства ПП из готовых КПИ (reuse), одиночных

Типы фабрик программ для производства ПП из готовых КПИ (reuse), одиночных программ
программ и
Системных программ (ОС, сред, трансляторов…);
Семейств систем (АСУ, АСУТП…);
Бизнесных программ;
Коммерческих программ;
Бортовых систем (космос, авиация, коллайдер,…);
Унаследованных программ (Legasy Systems);
Студенческих программ;
Утилизации и перестройки программ;
Отдельных Tools (космических, медицинских приборов, мобильных телефонов, компьютеров и др.).
 …

Слайд 21

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

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

Технические и технологические ресурсы фабрики платформы, процессоры компьютеров (Intel, HP, IBM, Apple,
MS,
Cray, …);
средства коммуникации ( OSI, TCP/IP, HTTP…);
библиотеки, репозитории готовых ПП (КПИ, Reuses, Аssets,
Applications, Domains, Systems);
методики программирования для методов сборочного типа
(модульного, компонентного, сервисного, UML и др.);
руководства по языкам интерфейсов (IDL, API, DII, SIDL, XML,
RDF и др.);
стандарты ЯП, качества, процессов ЖЦ, СММI и др.
стандарты на артефакты ПП (модели, каркасы, шаблоны,
контейнеры, процессы, проекты, системы и др.);
методические руководства по сервису и обслуживанию.

Слайд 23

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


Линия продуктов - это сборочный конвейер из

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

Слайд 25

Действующие фабрики программ общего типа

1.    Система АПРОП (ИК), которая работала в среде

Действующие фабрики программ общего типа 1. Система АПРОП (ИК), которая работала в
ОС ЕС и объединяла разноязыковые модули через интерфейсные посредники методом сборки;
2.    Система Sun Microsystems (IBM) со сборкой разноязыковых программ и новыми направлениями производства сложных ПП по модели SOA, Web-сервисы, Ruby, Script и др.;
3.  OMA-архитектура или система CORBA (OMG) обеспечивает взаимодействие клиента и сервера через модули-посредники Stub (для клиента), skeleton, Dill (для сервера), которые передают внешние данные брокеру для выполнения их клиентом или сервером;
4. Фабрика «ручной» сборки разноязыковых программ Инга Бейя с использованием интерфейсных посредников, конфигурационных файлов в средах (VC++, VBasic, Matlab, Java, Visual Works Smalltalk и др.);
5.     Фабрики программ для бизнес-программ в UML и МDA - Дж.Гринфильда;
6.   Современная коллективная сетевая среда MS.VSTS для производства программ и ПП разного назначения по контрактам специалистов разных стран мира;
Фабрика программ Г.Ленца по схеме производства программ в .Net;
7.    Инфраструктура системы Grid – тестирование, сборка и сертификация научных программ, ПП для вычисления в международной сети Европроекта.

Слайд 26

Основные средства среды АПРОП

Основные средства среды АПРОП

Слайд 27

Основные средства среды IBM

Основные средства среды IBM

Слайд 28

Основные средства среды CORBA

Основные средства среды CORBA

Слайд 31

Конвейерная разработка ПП в MS.VSTS

Конвейерная разработка ПП в MS.VSTS

Слайд 32

Фабрика программ Г.Ленца

Фабрика программ Г.Ленца

Слайд 33

Фабрика для сборки и вычислений- Grid

Фабрика для сборки и вычислений- Grid

Слайд 34

ФУНКЦИОНАЛЬНЫЕ ПРОЦЕССЫ НА ФАБРИКИ СБОРКИ ПРОГРАММ

сборка разнородных компонентов в ПП;

ФУНКЦИОНАЛЬНЫЕ ПРОЦЕССЫ НА ФАБРИКИ СБОРКИ ПРОГРАММ сборка разнородных компонентов в ПП; тестирование
тестирование компонентов, ПП, сбор данных;
взаимодействие компонентов, ПП в средах и сетях;
конвертирование и генерация типов данных ФДТ и
GDT (General Data Types) для использования в
ЯП и разнородных средах;
измерение и оценка качества (надежности,
эффективности, продуктивности и др.) ПП;
- экспертиза семейств процессов и СПС продуктов;
сертификация ПП для повторного использования;
вариабельность для изменения ПП;
- управление программным проектом.

Слайд 35

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

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