Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Необхідність та задачі навчальної дісциплини. Ії місце в учбовому процесі.

Поиск

 

Дисципліна «Основи програмної інженерії» входить до «Обов’язкового переліку навчальних дисциплін і практик» циклу професійно-орієнтованої та практичної підготовки згідно Освітньо-професійної програми підготовки бакалавра за фаховим спрямуванням 6.050103 «Програмна інженерія»Згідно додатку Б до пункту 6 Освітньо-професійної програми підготовки бакалавра за фаховим спрямуванням 6.050103 «Програмна інженерія» дисципліна включає наступні блоки:
3.01 Основи програмної інженерії Інженерні основи програмного забезпечення 1.ПФ.Е.03.01.01
Основи моделювання 1.ПФ.Е.02.02.01
Технології розробки ПЗ 1.ПФ.Е.03.01.02
Основи інженерії вимог до ПЗ 1.ПФ.Е.02.01.02
Письмова комунікація 4.ПФ.С.02.01.02
Система змістових модулів дисципліни, щодо складових узагальнених структур діяльності, згідно додатку А до пункту 5 Освітньо-професійної програми підготовки бакалавра за фаховим спрямуванням 6.050103 «Програмна інженерія», наступна:
Зміст уміння, що забезпечується Шифр уміння Назва змістового модуля Шифр змістового модуля
Здійснювати аналіз вимог, розробляти специфікацію програмних вимог, виконувати їхню верифікацію та атестацію 1.ПФ.Е.02.01 Типи вимог, функціональні, не функціональні, атрибути якості 1.ПФ.Е.02.01.01
Основи інженерії вимог до ПЗ 1.ПФ.Е.02.01.02
Узгодження вимог і управління ризиками 1.ПФ.Е.02.01.03
Моделювати різні аспекти системи, для якої створюється ПЗ 1.ПФ.Е.02.02 Основи моделювання 1.ПФ.Е.02.02.01
Типи моделей 1.ПФ.Е.02.02.02
Основні концепції уніфікованої мови моделювання UML 1.ПФ.Е.02.02.03
Проектувати компоненти архітектурного рішення 1.ПФ.Е.03.01 Інженерні основи програмного забезпечення 1.ПФ.Е.03.01.01
Технології розробки ПЗ 1.ПФ.Е.03.01.02
Структура та архітектура ПЗ 1.ПФ.Е.03.01.03
Стратегії і методи проектування ПЗ 1.ПФ.Е.03.01.04
Аналіз якості та оцінка програмного дизайну 1.ПФ.Е.03.01.05
Нотації та засоби підтримки проектування 1.ПФ.Е.03.01.06
Створювати чітку, стислу та точну технічну документацію у відповідності до діючих стандартів 4.ПФ.С.02.01 Рецензувати письмову технічну документацію з метою виявлення різного роду проблем 4.ПФ.С.02.01.01
Письмова комунікація 4.ПФ.С.02.01.02

 

У дисципліні відображено зміст програмної інженерії з урахуванням базового ядра знань SWEBOK (http://www.swebok.org) та програми навчання Computing Curricula

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

Завдання: Студенти повинні отримати теоретичні й інженерні знання з процесів розроблення програмних систем, практики подання програм для їхнього опрацювання у середовищі сучасних інструментальних систем провідних фірм: Microsoft, IBM, Rational тощо. Крім того, вони повинні навчитись методам верифікації, валідації та тестування програм, метричного аналізу, виміру, оцінки показників якості та продуктивності продукту, а також перенесення його на іньши платформи.

Зміст дисципліни розкривається в темах:

1. Дисципліни програмної інженерії і області ядра знань -SWEBOK. Визначення програмної інженерії та її дисциплін, зміст та основні складові цих дисциплін, загальний зміст областей ядра знань-SWEBOK.

2. Стандарт і моделі життєвого циклу. Характеристики базових моделей ЖЦ, що використовуються на практиці. Основні положення стандарту 1SO/IEC 12207 і підходи до формування на його основі робочих моделей ЖЦ.

3. Аналіз та визначення вимог до програмних систем. Загальні підходи, методи аналізу предметної області та формування вимог до ПС.

4. Методи об'єктного аналізу і моделювання. Огляд методів об'єктного аналізу, побудови моделей предметних областей та проектування архітектури системи.

5. Прикладні і теоретичні методи програмування. Аналіз прикладних, теоретичних і формальних методів програмування, а також огляд їхніх засобів щодо подання та розробки ПС.

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

7. Інтерфейс, взаємодія, еволюція програм та даних. Методи інтеграції, проблеми взаємодії різномовних програм і даних у сучасних середовищах, а також методи еволюційної зміни компонентів і систем, характеристика стандарту ISO/IEC 11404-96 з опису даних, незалежних мов програмування.

8. Інженерія виробництва програмних продуктів. Базові характеристики інженерії виробництва компонентів, предметної області готових компонентів та лінії виробництва програмних продуктів, особливості сучасних середовищ для колективного виробництва ПС.

9. Моделі якості та надійності програмних систем. Моделі якості, метрики і методи виміру показників якості ПС. Класифікація математичних моделей надійності та підходи до оцінки надійності програмного продукту за деякими моделями.

10. Методи керування програмним проектом. Аналіз менеджменту програмних проектів, опис інженерних методів планування, керування роботами, ризиками та конфігурацією проекту, оцінки вартості та строків.

У результаті вивчання даної дисципліни студенти повинні:

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

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

Дисціплина підтримується курсами Основи програмування, Об’єктно-орієнтоване програмування.

Форма контролю.

В процесі викладання дисципліни проводяться лекції, лабораторні та практичні заняття в лекційних та комп’ютерних класах, виконання самостійної роботи студента. При цьому використовуються наступні методи оцінювання навчальної роботи студента: поточне тестування та опитування, захист лабораторних робіт, оцінювання виконання СРС, підсумковий іспит. Підсумковий бал за 100-бальною шкалою з дисципліни визначається як середньозважена величина, в залежності від питомої ваги кожної складової залікового кредиту.

Співвідношення оцінок за національною шкалою (чотирибальною), шкалою ECTS (семибальною) та шкалою навчального закладу (стобальною) наступне:

За національною шкалою За шкалою навчального закладу Шкалою ECTS
Відмінно 90-100 90-100 А
  Добре     75-89 85-89 В
75-84 С
  Задовільно     60-74 67-74 D
60-66 E
Незадовільно (з можливістю повторного складання)   35-59   35-59   FX
Незадовільно (з обов’язковим повторним курсом)   1-34   1-34   F

 

7.3. Тематичний план курсу.

Назва теми та її зміст  
 
  Змістовний модуль 1  
  ДИСЦИПШИ ПРОГРАМНОЇ ІНЖЕНЕРІЇ 1 ОБЛАСТІ ЯДРА ЗНАНЬ - SWEBOK. Загальне визначення дисциплін програмної інженерії. Програмна інженерія як наукова дисципліна. Програмна інженерія як інженерна дисципліна. Програмна інженерія як виробнича дисципліна. Дисципліна керування. Економічна дисципліна.   Характеристика областей знань з інженерії програмного забезпечення – SWEBOK. Інженерія вимог. Проектування програмного забезпечення. Конструювання програмного забезпечення. Тестування програмного забезпечення. Супровід програмного забезпечення. Керування конфігурацією. Керування інженерією програмного забезпечення. Процес інженерії. Методи і інструменти інженерії. Якість програмного забезпечення.  
  СТАНДАРТ І МОДЕЛІ ЖИТТЄВОГО ЦИКЛУ. Характеристика життєвого никлу стандарти 1SO/IEC 12207. Формування прикладних моделей життєвого циклу. Типи моделей життєвого циклу. Каскадна модель. Інкрементна модель. Спіральна модель. Еволюційна модель.  
  АНАЛІЗ ТА ВИЗНАЧЕННЯ ВИМОГ ДО ПРОГРАМНИХ СИСТЕМ. Загальні підходи до визначення вимог. Класифікація вимог. Аналіз і збирання вимог. Інженерія вимог. Фіксація вимог. Трасування вимог. Об'єктно-орієнтована інженерія вимог. Візуальний підхід. Текстовий підхід.  
  МЕТОДИ ОБ'ЄКТНОГО АНАЛІЗУ І МОДЕЛЮВАННЯ. Огляд об'сктно-орієнтованих методів аналізу і побудови моделей. Основні поняття об'єктно-орієнтованих методів аналізу. Метод побудови об'єктної моделі предметної області. Проектування архітектури програмних систем. Загальні підходи до проектування програмних систем. Проектування різних видів архітектур програмних систем.  
  Змістовний модуль 2  
  ПРИКЛАДНІ Й ТЕОРЕТИЧНІ МЕТОДИ ПРОГРАМУВАННЯ. Прикладне (систематичне) програмування. Структурне програмування. Об'єктно-орієнтоване програмування. UML-метод моделювання. Компонентне програмування. Аспектно-орієнтоване програмування. Генерувальне (порождувальне) програмування. Сервісно-оріентоване програмування. Агентне програмування Теоретичне програмування. Алгебраїчне та інсерційне програмування. Ексіїлікативне, номінативне програмування. Алгоритмічні алгебри.  
  МЕТОДИ ДОВЕДЕННЯ, ВЕРИФІКАЦІЇ І ТЕСТУВАННЯ ПРОГРАМ. Мови специфікації програм і їхня класифікація. Мова формальної специфікацій – VDM. Мова формальної специфікації-RAISE. Концепторна мова специфікації. Звичайна мова специфікації Spec#. Методи доведення правильності програм. Базові методи доведення. Модель доведення програми за твердженнями. Верифікація і валідація програм. Підхід до валідації сценарію вимог. Верифікація об'єктних моделей. Підхід до верифікації композиції компонентів. Загальні перспективи верифікації програм. Тестування програмних систем. Статичні методи тестування. Динамічні методи тестування. Функціональне тестування. Інфраструктура перевірки правильності програмних систем. Класифікація помилок і методи їхнього пошуку. Процес тестування за життєвим циклом. Інженерія керування тестуванням.  
  ІНТЕРФЕЙСИ, ВЗАЄМОДІЯ, ЕВОЛЮЦІЯ ПРОГРАМ І ДАНИХ. Визначення інтерфейсуу програмуванні. Інтерфейс в ООП і в сучасних середовищах. Інтерфейс між клієнтом і сервером. Інтерфейс мов програмування. Інтерфейс і взаємозв'язок мов програмування. Взаємодія різномовних програм. Стандарт 1SO/IEC 11404-96 з незалежних від мов типів даних. Перетворення даних за інтерфейсом. Перетворення форматів даних. Перетворення даних баз даних. Методи еволюційного змінювання компонентів і систем. Реінженерія програмних систем. Рефакторінг компонентів. Реверсна інженерія.  
  ІНЖЕНЕРІЯ ВИРОБНИЦТВА ПРОГРАМНИХ ПРОДУКТІВ. Інженерія компонентів повторного використання. Специфікація КПВ. Репозітарій компонентів. Мова опису інтерфейсу компонентів. Прикладна інженерія та інженерія предметної області. Прикладна інженерія. Інженерія сімейства систем домена. Стандартизація процесів інженерії домену. Інженерія Індустріального виробництва програмних продуктів. Структура лінії виробництва програмних продуктів. Конвеєрне виготовлення систем у середовищі Microsoft. Загальна характеристика інструментів Rational Rose. Засоби підтримки процесу RUP. Середовище розроблення систем – CORBA. JAVA-технологія. Оцінювання вартості системи з компонентів.  
  МОДЕЛІ ЯКОСТІ ТА НАДІЙНОСТІ ПРОГРАМНИХ СИСТЕМ. Модель якості програмних систем. Стандартні показники якості. Метрики якості. Стандартна оцінка показників якості. Керування якістю програмних систем. Моделі оцінки надійності програмних систем. Ґрунтовні поняття проблематики надійності. Класифікація моделей надійності. Маяковські та пуассонівські моделі надійності. Процеси оцінки надійності. Сертифікація програмного продукту.  
  Розділ 10. МЕТОДИ КЕРУВАННЯ ПРОГРАМНИМ ПРОЕКТОМ. Менеджмент проекту. Основні поняття та задачі. Головні цілі менеджменту проекту. Процес менеджменту проекту. Модель процесу керування проектом. Інфраструктура програмного проекту. Методи керування і планування проектом. Метод критичного шляху –СРМ. Метод аналізу й оцінки проекту-PERT. Планування і контроль проекту. Оцінювання вартості проекту. Методи керування ризиками у проекті. Керування конфігурацією системи. Формування версій й контроль конфігурації. Облік статусу й аудит конфігурації.  

7.4. Тематичний план лекцій.

Питання, які вивчаються на заняттях
Змістовний модуль 1
Загальне визначення дисциплін програмної інженерії.
Характеристика областей знань з інженерії програмного забезпечення – SWEBOK.
Характеристика життєвого никлу стандарти 1SO/IEC 12207.
Формування прикладних моделей життєвого циклу.
Типи моделей життєвого циклу. Каскадна модель. Інкрементна модель.
Спіральна модель. Еволюційна модель.
Загальні підходи до визначення вимог. Класифікація вимог. Аналіз і збирання вимог.
Інженерія вимог. Фіксація вимог. Трасування вимог.
Об'єктно-орієнтована інженерія вимог.
Візуальний підхід.
Текстовий підхід.
Методи об’єктного аналізу і моделювання.
Огляд об'сктно-орієнтованих методів аналізу і побудови моделей.
Основні поняття об'єктно-орієнтованих методів аналізу.
Метод побудови об'єктної моделі предметної області.
Проектування архітектури програмних систем.
Загальні підходи до проектування програмних систем.
Проектування різних видів архітектур програмних систем.
Змістовний модуль 2
Прикладне (систематичне) програмування.
UML-метод моделювання.
Теоретичне програмування.
Мови специфікації програм. Класифікація.
Методи доведення правильності програм. Базові методи доведення. Модель доведення програми за твердженнями.
Тестування програмних систем. Статичні методи тестування. Динамічні методи тестування. Функціональне тестування.
Визначення інтерфейсуу програмуванні. Інтерфейс в ООП і в сучасних середовищах. Інтерфейс між клієнтом і сервером.
Інтерфейс мов програмування. Інтерфейс і взаємозв'язок мов програмування. Взаємодія різномовних програм. Стандарт 1SO/IEC 11404-96 з незалежних від мов типів даних.
Методи еволюційного змінювання компонентів і систем
Прикладна інженерія та інженерія предметної області. Прикладна інженерія.
Оцінювання вартості системи з компонентів.
Модель якості програмних систем.
Моделі оцінки надійності програмних систем.
Сертифікація програмного продукту.
Менеджмент проекту. Основні поняття та задачі.
Методи керування і планування проектом.
Методи керування ризиками у проекті.

 

7.5. Тематичний план лабораторних робіт.

 

Питання, які вивчаються на заняттях
Змістовний модуль 1
Пошук нормативно правової інформації за фахом.
Візуальні технологія розробки гіпертекстових сторінок
Колективна розробка програмного забезпечення
Змістовний модуль 2
UML-метод моделювання
Тестування програмних систем
Інтерфейс і взаємозв'язок мов програмування.
Методи керування і планування програмним проектом

 

7.6. Тематичний план практичних робіт.

 

Питання, які вивчаються на заняттях
Змістовний модуль 1
SWEBOK. Інженерія вимог. Проектування програмного забезпечення. Конструювання програмного забезпечення. Тестування програмного забезпечення. Супровід програмного забезпечення. Керування конфігурацією. Керування інженерією програмного забезпечення. Процес інженерії. Методи і інструменти інженерії. Якість програмного забезпечення.
СТАНДАРТ І МОДЕЛІ ЖИТТЄВОГО ЦИКЛУ. Формування прикладних моделей життєвого циклу.
АНАЛІЗ ТА ВИЗНАЧЕННЯ ВИМОГ ДО ПРОГРАМНИХ СИСТЕМ. Загальні підходи до визначення вимог. Класифікація вимог. Аналіз і збирання вимог. Інженерія вимог. Фіксація вимог. Трасування вимог. Об'єктно-орієнтована інженерія вимог. Візуальний підхід. Текстовий підхід.
МЕТОДИ ОБ'ЄКТНОГО АНАЛІЗУ І МОДЕЛЮВАННЯ. Огляд об'сктно-орієнтованих методів аналізу і побудови моделей. Основні поняття об'єктно-орієнтованих методів аналізу. Метод побудови об'єктної моделі предметної області. Проектування архітектури програмних систем. Загальні підходи до проектування програмних систем. Проектування різних видів архітектур програмних систем.

7.7. Тематичний план самостійної роботи студентів.

Назва теми та її зміст  
 
  Змістовний модуль 1  
  Програмна інженерія як дисципліна керування та економічна дисципліна.  
  Проектування програмного забезпечення. Конструювання програмного забезпечення. Тестування програмного забезпечення. Супровід програмного забезпечення.  
  Характеристика життєвого никлу стандарти 1SO/IEC 12207.  
  Типи моделей життєвого циклу.  
  Аналіз і збирання вимог до програмних систем.  
  Об'єктно-орієнтована інженерія вимог. Візуальний підхід. Текстовий підхід.  
  Основні поняття об'єктно-орієнтованих методів аналізу. Загальні підходи до проектування програмних систем.  
  Метод побудови об'єктної моделі предметної області.  
  Проектування різних видів архітектур програмних систем.  
  Змістовний модуль 2  
  Компонентне програмування. Аспектно-орієнтоване програмування.  
  Сервісно-оріентоване програмування. Агентне програмування  
  Верифікація і валідація програм. Загальні перспективи верифікації програм.  
  Тестування програмних систем.  
  Інтерфейс в ООП і в сучасних середовищах.  
  Реверсна інженерія.  
  Репозітарій компонентів. Мова опису інтерфейсу компонентів.  
  JAVA-технологія.  
  Моделі якості програмних систем.  
  Метод критичного шляху –СРМ.  
  Метод аналізу й оцінки проекту-PERT.  

Питання для підсумкового контролю.

1. Загальне визначення дисциплін програмної інженерії.

2. Програмна інженерія як наукова дисципліна.

3. Програмна інженерія як інженерна дисципліна.

4. Програмна інженерія як виробнича дисципліна.

5. Програмна інженерія як дисципліна керування та економічна дисципліна.

6. Характеристика областей знань з інженерії програмного забезпечення – SWEBOK.

7. Інженерія вимог.

8. Проектування програмного забезпечення.

9. Конструювання програмного забезпечення.

10. Тестування програмного забезпечення.

11. Супровід програмного забезпечення.

12. Керування інженерією програмного забезпечення.

13. Процес інженерії. Методи і інструменти інженерії.

14. Якість програмного забезпечення.

15. Характеристика життєвого циклу стандарти 1SO/IEC 12207.

16. Формування прикладних моделей життєвого циклу.

17. Типи моделей життєвого циклу.

18. Каскадна модель.

19. Інкрементна модель.

20. Спіральна модель.

21. Еволюційна модель.

22. Загальні підходи до визначення вимог. Класифікація вимог.

23. Аналіз і збирання вимог.

24. Інженерія вимог.

25. Фіксація вимог.

26. Трасування вимог.

27. Об'єктно-орієнтована інженерія вимог. Візуальний підхід. Текстовий підхід.

28. Огляд об'сктно-орієнтованих методів аналізу і побудови моделей.

29. Основні поняття об'єктно-орієнтованих методів аналізу.

30. Метод побудови об'єктної моделі предметної області.

31. Проектування архітектури програмних систем. Загальні підходи та проектування різних видів архітектури програмних систем.

32. Прикладне (систематичне) програмування.

33. Структурне програмування.

34. Об'єктно-орієнтоване програмування.

35. UML-метод моделювання.

36. Компонентне програмування.

37. Аспектно-орієнтоване програмування.

38. Генерувальне (порождувальне) програмування.

39. Сервісно-оріентоване програмування.

40. Агентне програмування

41. Теоретичне програмування. Алгоритмічні алгебри.

42. Мови специфікації програм і їхня класифікація.

43. Мова формальної специфікацій – VDM.

44. Мова формальної специфікації – RAISE.

45. Концепторна мова специфікації.

46. Звичайна мова специфікації Spec#.

47. Методи доведення правильності програм. Базові методи доведення. Модель доведення програми за твердженнями.

48. Верифікація і валідація програм. Підхід до валідації сценарію вимог. Верифікація об'єктних моделей. Підхід до верифікації композиції компонентів............... Загальні перспективи верифікації програм.

49. Тестування програмних систем. Статичні методи тестування. Динамічні методи тестування. Функціональне тестування.

50. Інфраструктура перевірки правильності програмних систем. Класифікація помилок і методи їхнього пошуку. Процес тестування за життєвим циклом. Інженерія керування тестуванням.

51. Визначення інтерфейсу у програмуванні.

52. Інтерфейс в ООП і в сучасних середовищах.

53. Інтерфейс між клієнтом і сервером.

54. Інтерфейс мов програмування. Інтерфейс і взаємозв'язок мов програмування. Взаємодія різномовних програм. Стандарт 1SO/IEC 11404-96 з незалежних від мов типів даних.

55. Перетворення даних за інтерфейсом. Перетворення форматів даних. Перетворення даних баз даних.

56. Методи еволюційного змінювання компонентів і систем.

57. Інженерія компонентів повторного використання.

58. Прикладна інженерія та інженерія предметної області.

59. Інженерія індустріального виробництва програмних продуктів. Структура лінії виробництва програмних продуктів.

60. Конвеєрне виготовлення систем у середовищі Microsoft.

61. Оцінювання вартості системи з компонентів.

62. Модель якості програмних систем. Стандартні показники якості. Метрики якості. Стандартна оцінка показників якості. Керування якістю програмних систем.

63. Моделі оцінки надійності програмних систем. Ґрунтовні поняття проблематики надійності. Класифікація моделей надійності.

64. Сертифікація програмного продукту.

65. Менеджмент проекту. Основні поняття та задачі.

66. Модель процесу керування проектом.

67. Інфраструктура програмного проекту.

68. Методи керування і планування проектом.

69. Методи керування ризиками у проекті.

70. Керування конфігурацією системи. Формування версій й контроль конфігурації. Облік статусу й аудит конфігурації.

 



Поделиться:


Последнее изменение этой страницы: 2016-04-23; просмотров: 567; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.142.42.247 (0.013 с.)