1 / 34

Національна академія наук України Інститут програмних систем

Національна академія наук України Інститут програмних систем. Доктор фіз.-мат. наук, професор Лавріщева Катерина Михайлівна. Програмна інженерія – зміст дисципліни. Що таке програмна інженерія ?.

steel-rivas
Download Presentation

Національна академія наук України Інститут програмних систем

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Національна академія наук УкраїниІнститут програмних систем Доктор фіз.-мат. наук, професор Лавріщева Катерина Михайлівна Програмна інженерія – зміст дисципліни

  2. Що таке програмна інженерія? Визначення 1. Програмна інженерія (Software Engineering) - це система методів, способів і дисципліни планування, розробки, експлуатації і супроводу програмного забезпечення (ПЗ), призначена для промислового виробництва. Вона є інженерною дисципліною, що охоплює всі аспекти створення ПЗ від початку формулювання вимог, розроблення продукту і до використання. (SWEBOK) Це визначення охоплює лише інженерний аспект програмної інженерії.

  3. Визначення програмної інженерії як науки Визначення 2. Програмна інженерія – розділ комп’ютерних наук (Computing Science), який вивчає методи і засоби побудови комп’ютерних програм як теоретичної і інженерної діяльності розробників або колективів: • визначає об’єкти (модулі, компоненти, сервіси тощо) та операції над ними для поєднання їх у складні програмні системи (Applications, Domains); • узагальнює накопичений досвід програмування та відбиває закономірності розвитку програмування як науки; • є системою знань, що включає теорії, методи програмування, а також методи доказу, верифікації, тестування з застосуванням математичних моделей надійності та якості; • інтегрує в собі принципи математики та інших фундаментальних дисциплін: теорії алгоритмів та логіка, теорія управління, аналізу та синтезу; • формує прикладні методи побудови і виробництва програмних продуктів, створює нові технології та інструменти забезпечення програмування;

  4. Теоретичний фундамент програмної інженерії Програмна інженерія інтегрувала в собі принципи математики та фундаментальних наук: теорія алгоритмів, математична логіка, теорія управління, теорія множин і доказу.

  5. Теоретичний базис програмної інженерії для побудови програм • теорія алгоритмів – нормальні алгоритми, обчислювальні функції, машина Тьюринга, алгоритмічні алгебри, граф–схеми, моделі алгоритмів тощо; • математична логіка це логічні числення і висловлювання наукового створення правильних умововиведень формальним шляхом; • теорія керування це принципи, методи та загальні закони планування і керування щодо отримання і оброблення інформації в деяких кібернетичних і управлінських системах; • теорія доказу – математична теорія доведення за аксіомами і твердженнями шляхом виводу з них теорем (теорема о непротирічності, алгоритмічно не вирішувані проблеми тощо), теорія верифікації програм (VDM, RAISE, Z, метод індукцій Хоара, Дейкстри тощо); • теорія множин для формального подання різних сукупностей об’єктів (квантори загальності, існування, операції над множинами) тощо.

  6. Програмування в широкому розумінні – це наука ПІ, правила і закони інженерної діяльності, які сформувалися на основі методів керування, планування, оцінювання продукту та трудовитрат на його побудову, вартості та якості. Теорія побудови програм це граф-схеми, структурні схеми, функції і композиції, принципи дескриптивності, номінації, а також теорія верифікації тощо. Практика побудови програм це застосування практичних методів програмування і відповідних інструментів для їх опису, перебудови, верифікації, тестування і оцінювання показників результату побудови. Програмна інженерія – це наука і інженерія програм. Їх перетин – це є теорія і практика побудови програмних об’єктів

  7. Характеристика науки програмної інженерії Наука ПІ включає: • Поняття і об’єкти; • Теорії, методи програмування і керування розробленням і ресурсами; • Засоби і інструменти забезпечення розроблення програмного продукту. Основні поняття – дані та їх структури, функції і композиції, аксіоми і твердження, об’єкти, класи, програми.

  8. Цільові об’єкти програмної інженерії

  9. Способи виготовлення об’єктів програмної інженерії

  10. Середовища і інструменти програмної інженерії Базисом розроблення цільових об’єктів є мови, інструменти та середовища перетворення у програмний продукт

  11. Характеристика інженерії ПІ • Інженерія ПІ – це способи застосування теорії програмування, технологічних правил і процедур, процесів ЖЦ, методик вимірювання і оцінки виконання діяльності щодо виготовлення програмного продукту для певного виду цільового об’єкту. Складові інженерії ПІ: Ядро – набір областей знань; БПО – схема діяльності; Стандарти – набір правил і положень; Інфраструктура – модель ресурсів; PMBOK – схеми керування проектом.

  12. Інженерію програмних продуктів можна розглядати з двох взаємозв’язаних точок зору: Як інженерну дисципліну, яка охоплює всі аспекти створення програмних продуктів, починаючи від формулювання вимог, закінчуючи супроводом і зняттям з експлуатації, а також включає інженерні методи керування проектами і оцінювання трудовитрат, вартості і якості виготовлення програмних продуктів. Як інженерну діяльність виготовлення ПП, що планується і декомпозується на окремі роботи і розподіляються між різними категоріями виконавців на процесах ЖЦ. У цій діяльності інженери різних категорій застосовують теоретичні методи, засоби та відповідні стандарти; Інженерна діяльність у програмній інженерії практично вже відпрацьована і за своєю сутністю близька до інженерної діяльності у промисловості

  13. Ядро знаньSWEBOK – набір професійних знань предмета програмної інженерії. Основна спрямованість SWEBOK - відображення інженерного підходудо розроблення і супроводу програмних продуктів.

  14. Ядро знаньSWEBOK (організаційні області)

  15. Процес програмної інженерії • множина логічно зв’язаних видів діяльності з визначення, проектування і розроблення програмних систем; • Набір процесів ЖЦ, які згруповані за категоріями - основні процеси, процеси підтримки, організаційні процеси • орієнтовані не лише на розробку програмної системи, але і на організацію і керування проектом. Процес програмної інженерії є основою базового процесу організації (БПО) щодо розроблення різних програмних проектів. Процеси на рівні проектів розробляються шляхом пристосування БПО до цілей конкретного проекту. Визначення базового процесу – формалізований опис (мета-рівень) елементів, які повинні включатися у процеси програмних проектів, а також зв'язків між цими елементами.

  16. Інфраструктура– інтегрований набір технічних, технологічних (методичних) ресурсів організації–розробника, необхідних для виконання процесу програмної інженерії колективами проектів з розроблення програмних продуктів. • Наявність інфраструктури і БПО, спроможних забезпечити створення продукту необхідної якості в межах заданої вартості, визначає рівень готовності організації до створення програмних продуктів.

  17. Загальна інфраструктура проекту Інфраструктура – це фундамент для виконання процесу програмної інженерії в організації

  18. Стандарти програмної інженерії Базовий стандарт програмної інженерії – ISO/IEC 12207 (ДСТУ 3918) Процеси життєвого циклу програмного забезпечення. В ньому процеси згруповані за категоріями - основні процеси, процеси підтримки, організаційні процеси Стандарти: ISO/IEC 9000 – 1,2,3; ДСТУ 2844, 2850 – регламентують систему керування та забезпечення якості, а також вимірювання і оцінювання.

  19. Менеджмент проекту – це керування розробленням проекту, а саме, планування, контроль, оцінювання і сертифікація.Базується на РМВОК (Project Managementbody ofknowledge) - ядрі знань з менеджменту (стандарт IEEE Std. 1490:2003). Загальна структура складових менеджменту проектів

  20. Три “кити” програмної інженерії Проведений розгляд питаньвиробництва програмних продуктів на процесовій і інженерній основі демонструє, що сформувався такий змістовний трикутник інженерії ПІ. В ньому головні елементи програмної інженерії пов’язані між собою, доповнюють один одного і слугують головній меті ПІ – підвищенню технологічності та якості розроблення програмних продуктів різного призначення.

  21. Практичне застосування інженерних аспектів

  22. Архітектура засобів підтримки проекту компанії Майкрософт

  23. Розподіл користувачів сімейства продуктів за категоріями

  24. Фундаментальні результатиРозроблена комплексна методологія програмування, яка об'єднує теорію, інженерію і практику створення ПС з урахуванням вимог та умов сучасних середовищ і нових платформ. В ній систематизовано, формалізовано і вдосконалено такі базові знання в програмуванні : • традиційне програмування - методи розробки вимог, моделей предметних областей, проектування окремих компонентів, інтеграції і взаємодії різномовних компонентів у сучасних середовищах та платформах; • інженерія програмування – упорядкований набір методів інженерії типових компонентів та ПВК, як готових «деталей», cімейств систем, оцінки їх застосовності в нових проектах, планування робіт по проектах та їх розподілу по задачах процесів ЖЦ, керування колективною розробкою, а також оцінки якості, вартості та строків виготовлення програмного продукту; • математичні моделі та об'єктно-компонентний метод проектування ПС – алгебра об'єктного аналізу предметної області, зовнішня та внутрішня компонентні алгебри, моделі компонентів, середовищ і ПС. • інженерія якості - методи керування якістю через вимірювання та перевірку відповідності проміжних і кінцевих результатів проектування встановленим цілям якості, а також методи тестування програмних продуктів.

  25. Перспективи програмної інженерії • Розроблення єдиної теорії створення та аналізу програм; • Побудова інтегрованого набору інструментів верифікації для всіх етапів ЖЦ; • Створення репозиторію формальних специфікацій для верифікованих програм; • Мовно-орієнтоване програмування; • Комп’ютеризація математичних знань тощо…

  26. Прикладні результатиРозроблено технологічні основи побудови ПС, базовані на побудованій новій об'єктно-компонентній теорії • технологія компонентного проектування, в яку включена нова модель ЖЦ і методика об'єктно-компонентного проектування та програмування, що значно покращує сучасний процес розробки систем з різних типів компонентів і ПВК; • інформаційне та методичне забезпечення інфраструктури розробки програм з ПВК, що базується на онтології проблемної області (Онтоаспект); • методологія створення проблемно-орієнтованих технологій з напрацьованих метатехнологічних моделей, методів та інструментів; • типові рішення і програмні засоби інтеграції інформаційних ресурсів в рамках АІС НАН України; • нормативно–методичний матеріал та монографії з інженерії якості програмних систем, які систематизовано розкривають і узагальнюють глибинні питання і методи забезпечення якості. Не мають аналогу в Україні і СНД; • Монографій - 10 • Дисертацій – 9 (з них 2 докторських)

  27. Публікації за тематикою програмної інженерії(1982 – 2007) Статей у фахових журналах та працях конференцій > 100

  28. Публікації за тематикою програмної інженерії(1982 – 2007)

  29. Підручники за тематикою програмної інженерії(1982 – 2007)

  30. Базові положення для навчання: Curricula 2001, 2004 Рекомендації щодо викладання програмної інженерії та інформатики у ВНЗ –Computing Curricula-2001: Computer Science.–Перев. с англ. – Интернет– Университет Информационных технологий, М.: 2007.–462с. Особиста програма навчання. Досвід навчання: МФТІ (2000-2007). Курс „Програмна інженерія” (64г.) два семестри 5 курс, залік, іспит. Інтернет–курси „Програмна інженерія”, „Менеджмент проекту” www.ukrsoftpro.com (2003-2005), семестр. Сертифікат курсу. КНУ ім. Шевченка (2007) Курси «Методи програмування», „Інженерія вимог”, „Інженерія верифікації, тестування,якості”. 4, 5 курси, заліки, іспити. Участь в конкурсах: Microsoft, МГУ ім.Ломоносова „О подготовке курсов по Software Engineering», SE Context -2006: – тема «Методы и средства SE » - сертифікат переможця конкурсу; – електронний курс лекцій - www.msdnaacr.net/curriculum/license.aspx; Microsoft України і АПН „Вчитель-новатор -2007”, www.itcomp.edu-ua.net – тема „Computer Science –програмна інженерія” , електронний варіант. Напрями навчання

  31. Підхід до стандартизації навчання ПІ Тенденції стандартизації: • вимоги, ціль дисципліни і зв’язок з наукою, знаннями, технологіями; • інтернаціоналізація всіх сфер, гармонізація з міжнародними стандартами; • структура навчальних програм, комп’ютерна підтримка дисципліни; • формування творчих здібностей і навичок; • індивідуалізація освіти; • кваліфікація випускника бакалавра; • кваліфікація магістра, як розвиток бакалавра або перекваліфікація. Структура стандарту дисципліни ПІ: • учбовий план, • програма дисципліни, • посібник з електронною версією, • засоби дистанційного навчання з електронною версією, • контрольні тести навчання, • накопичення робіт у середовищі; • оцінка рівня кваліфікації випускника.

  32. Програма курсубазової кафедри МФТІ кафедра“Теоретическая кибернетика и методыоптимального   управления” факультета управления и прикладной математики «МЕТОДЫ И СРЕДСТВА SOFTWARE ENGINEERING» • Введение и структура SE 2 часа • Ядро SE и содержание его разделов 2 часа • Модели жизненного цикла ПО 4 часа • Функциональные и нефункциональные требования 2 часа • Формальные методы проектирования и доказательства 4 часа • Проектирование средствами UML и RUP 4 часа • Объекты и данные 2 часа • Интерфейсы, маршалпинг данных, протоколы 4 часа • Повторное использование (reusing) 2 часа • Методы тестирования, верификации и сертификации ПО 4 часа • Управление конфигурацией и качеством 4 часа • Методы сопровождения и эволюции ПО 2 часа • Проверка соответствия ПО заданным требованиям 2 часа • Базовые стандарты SE 2 часа • Менеджмент проектов. Методы планирования и оценки 4 часа • Cистема Microsoft Project 2часа • Распределенные среды и системы поддержки (Com, • Corba, Java, Rational Rose идр.) 2 часа • Объектно-компонентная разработка 4часа • Аспектное, сервисное и порождающее программирование 4 часа • Агентно-ориентированный подход. Агенты и Интернет 4 часа • Microsoft Framework Solution, Visual Studio Team System 4 часа

  33. Викладання курсу «МЕТОДЫ И СРЕДСТВА SOFTWARE ENGINEERING» Практические занятия (18-24 часа) • Создание пилотных проектов в среде разработки (Microsoft Framework Solution, Visual Studio Team System, JAVA, UML, Rational Rose) и планирование с помощью Microsoft Project. • Разработка сервисных компонентов средствами Java для Web. • Описание для размещения reuse-компонентов в GreenStone. • Разработка агентов (брокера, архивариуса, диспетчера и др.) для работы с информационными ресурсами в среде Интернет. Семинарские занятия (12-20 часов) • Анализ зарубежных статей по проблематике SE. Обсуждение. • Научные доклады по современным методам, системам в SE и новым разработкам. • Анализ новых технических решений в области SE и предложения студентов.

More Related