ПРОГРАММНАЯ ИНЖЕНЕРИЯ. ФАБРИКА ПРОГРАММ И АРТЕФАКТОВ Е.М.Лаврищева, профессор кафедры Теории и технологии программирования КНУ.

Презентация:



Advertisements
Похожие презентации
Направление «Информатика и вычислительная техника» Бакалавр по направлению подготовки Информатика и вычислительная техника науки должен решать следующие.
Advertisements

Направление «Информатика и вычислительная техника» Бакалавр по направлению подготовки Информатика и вычислительная техника науки должен решать следующие.
Лекция 3 Архитектура информационных систем. Вопросы лекции 1. Архитектура информационной системы 2. Архитектурный подход к реализации информационных систем.
Из проекта ГОС по направлению «Прикладная информатика» © МЭСИ, 2006.
Презентация дисциплины по выбору Для студентов, обучающихся по направлению «Прикладная информатика» (магистерская программа «Прикладная информатика.
Лекция 3. Программное обеспечение информационных технологий По дисциплине: «Информационные технологии в коммерческой деятельности»
Дисциплина «Технология разработки программного обеспечения» Тема 1 « Основы разработки Тема 1 « Основы разработки программного продукта » программного.
Колмыкова Оксана Владимировна Кафедра ИСПИ Ауд
Учебный Центр Luxoft Обучение от экспертов программной инженерии.
Разработка программного обеспечения (Software Engineering) Часть 1. Введение.
Лекция 1 Учебные вопросы : Вопрос 1. История возникновения и понятие CASE- технологии. Вопрос 2. Особенности внедрения CASE- технологии. Вопрос 3. Основные.
Учебный курс Стандартизация и сертификация программного обеспечения Лекция 7 доктор технических наук, профессор, проректор по информатизации, заведующий.
Факультет бизнес - информатики НИУ ВШЭ – Пермь На факультете ведется подготовка бакалавров по направлениям: Бизнес-информатика Программная.
г. Андреев Илья Александрович, преподаватель-методист Роль и значение технологических инноваций фирмы «1С» для развития научных школ.
ГОРОДСКОЙ МЕТОДИЧЕСКИЙ ЦЕНТР mosmetod.ru Примерная программа учебного предмета «Информатика»
Специальность Автоматизация технологических процессов и производств Аэрокосмический институт
БИЗНЕС – ИНФОРМАТИКА ( БАКАЛАВРИАТ ) Кафедра « Экономическая информатика » Институт экономики и финансов МИИТ а.
Моделирование бизнес-процессов управления жизненным циклом изделий научно-производственного предприятия Саровский физико-технический институт.
Специальность « Организация защиты информации»
Кафедра «Кибернетика» Дипломная работа по направлению «Прикладная математика и информатика» на тему: Разработка приложения для управления.
Транксрипт:

ПРОГРАММНАЯ ИНЖЕНЕРИЯ. ФАБРИКА ПРОГРАММ И АРТЕФАКТОВ Е.М.Лаврищева, профессор кафедры Теории и технологии программирования КНУ

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

3 Computer Science (CS) Компьютерная инженерия - это методы построения разных вычислительных моделей, компьютеров, механизмов контроля Hardware и Software. Компьютерная инженерия - это методы построения разных вычислительных моделей, компьютеров, механизмов контроля Hardware и Software. Системная инженерия - это методы построения систем обработки информации, АСУ на основе компьютеров (Computer Systems), принципы их работы и методы управления и выполнения соответствующих классов задач. Системная инженерия - это методы построения систем обработки информации, АСУ на основе компьютеров (Computer Systems), принципы их работы и методы управления и выполнения соответствующих классов задач. Программная инженерия – это теория программирования, инженерия и технология построения компьютерных программных систем. Программная инженерия – это теория программирования, инженерия и технология построения компьютерных программных систем.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Действующие фабрики программ общего типа 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 – тестирование, сборка и сертификация научных программ, ПП для вычисления в международной сети Европроекта.

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

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

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

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

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

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

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

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

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