Інженерія програмного забезпечення

ОПИС ДИСЦИПЛІНИ

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

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

Центральним завданням інженерії програмного забезпечення є інженерне проектування – різновид діяльності з прийняття рішень. Важливим аспектом даної задачі є необхідність застосування відповідних процесів на численних рівнях абстракції.

Ефективне використання специфічних для предметної області методів, засобів і компонент в більшості випадків забезпечує успішність розробок з її використанням. Програмна інженерія ґрунтується на цілому ряді дисциплін.

Основним завданням вивчення навчальної дисципліни «Інженерія програмного забезпечення»:

Здатність до абстрактного мислення, аналізу і синтезу.

Здатність до навчання та самонавчання (пошуку, оброблення та аналізу інформації з різних джерел).

Здатність застосовувати знання у практичних ситуаціях.

Навички використання інформаційних і комунікаційних технологій

та фахових компетентностей бакалавра з комп’ютерної інженерії:

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

Здатність створювати системне та прикладне програмне забезпечення комп’ютерних систем та мереж.

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

Здатність аргументувати вибір методів розв’язування спеціалізованих задач, критично оцінювати отримані результати, обґрунтовувати та захищати прийняті рішення.

У результаті вивчення навчальної дисципліни «Інженерія програмного забезпечення» студент набуде певні програмні результати, зокрема:

Знати новітні технології в галузі комп’ютерної та телекомунікаційної інженерії.

Вміти системно мислити та застосовувати творчі здібності до формування принципово нових ідей.

Вміти розробляти програмне забезпечення для вбудованих і розподілених застосувань, мобільних і гібридних систем, розраховувати та експлуатувати типове для спеціальності обладнання.


СТРУКТУРА КУРСУ

Тематичний план дисципліни «Інженерія програмного забезпечення» складається з п’яти змістових модулів. Кожний модуль представляє собою досить самостійний блок дисципліни, який логічно пов'язує кілька навчальних елементів дисципліни за змістом і взаємозв'язками.

Для визначення рівня засвоєння слухачами навчального матеріалу використовуються такі форми та методи навчання:

1) лекційні заняття, на яких викладається теоретичний матеріал, наводяться практичні приклади; заняття проводяться з використанням технічних та мультимедійних засобів;

2) лабораторні заняття, на яких слухачі створюють програмні продукти, використовуючи отримувані знання у галузі;

3) консультації, які проводяться з метою допомоги студентам у виконанні їх індивідуальних завдань та роз’яснення окремих розділів теоретичного матеріалу, відпрацювання студентами пропущених занять.

МОДУЛЬ 1. ВВЕДЕННЯ В ПРОГРАМНУ ІНЖЕНЕРІЮ І ЖИТТЄВИЙ ЦИКЛ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ (ПЗ)

Т.1.1. Визначення спеціальності Програмна інженерія. Аналіз і характеристика галузей знань SWEBOK

Т.1.2. Життєвий цикл ПЗ по стандарту ISO \ IEC 12207 і зв'язок його з ядром знань програмної інженерії SWEBOK. Моделі Життєвого циклу для розробки програмних систем

МОДУЛЬ 2. МЕТОДИ ВИЗНАЧЕННЯ ВИМОГ У ПРОГРАМНІЙ ІНЖЕНЕРІЇ

Т.2.1. Визначення понять і видів вимог. Види вимог

Т.2.2. Розробка вимог. Матриця вимог.

МОДУЛЬ 3. МОДЕЛЮВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

Т.3.1. Архітектурне проектування Архітектура розподілених систем

Т.3.2. Об'єктно-орієнтоване проектування

Т.3.3. Проектування систем реального часу

Т.3.4. Проектування з повторним використанням компонентів

Т.3.5. Проектування інтерфейсу користувача

МОДУЛЬ 4. ТЕХНОЛОГІЇ РОЗРОБКИ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

Т.4.1. Життєвий цикл програмного забезпечення: моделі та їх особливості

Т.4.2. Методологічні основи технологій розробки програмного забезпечення. Методи об'єктно-орієнтованого аналізу і проектування програмного забезпечення. Мова моделювання UML

МОДУЛЬ 5. ПИСЬМОВА КОМУНІКАЦІЯ. ДОКУМЕНТУВАННЯ ПРОЕКТУ ПРОГРАМНОЇ ЗАБЕЗПЕЧЕННЯ

Т.5.1.Документування етапів розробки програмного забезпечення. Верифікація та атестація програмного забезпечення

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

МОДУЛЬ 6. УПРАВЛІННЯ ПРОЕКТОМ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

Т.6.1. Управління проектами

Т.6.2 Оцінка вартості програмного продукту

Т.6.3. Надійність програмного забезпечення

Т.6.4. Удосконалення виробництва програмного забезпечення



РЕКОМЕНДОВАНА ЛІТЕРАТУРА

Основна

  1. Лавріщева К.М., ПРОГРАМНА ІНЖЕНЕРІЯ.–К.– 2008.–319 с.

  2. Иан Соммервил. Инженерия программного обеспечения. 6-е издание. –М.; Спб. – Киев, 2002. – 623 с.

  3. Орлов С.А. Технологии разработки программного обеспечения. – Спб.: Питер, 2002. – 463 с.

  4. Мацяшек, Лешек. А. Анализ и проектирование систем. Разработка инфорамционных систем с использованием UML. –М.: Издательский дом “Вильямс”.

  5. Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения. Пер. с англ. – СПб. Питер. 2002.

  6. Практическая программная инженерия на основе учебного примера [Электронный ресурс] / Л. А. Мацяшек, Б. Л. Лионг ; пер. с англ. — 2-е изд. (эл.). — М. : БИНОМ. Лаборатория знаний, 2012. — 956 с. : ил. — (Программисту).

  7. Программная инженерия. Теория и практика: учебник / О.А. Антамошкин. Красноярск. — Сиб. Федер ун-т. 2012 – 247с.

  8. ДСТУ 3396.2-97 "Захист інформації. Технічний захист інформації. Терміни і визначення"

  9. НД ТЗI 2.5-004-99. Критерії оцінки захищеності інформації в комп'ютерних системах від несанкціонованого доступу.

  10. ГОСТ 34.201-89 Види, комплектність і позначення документів при створенні автоматизованих систем.

  11. ГОСТ 34.601-90 Автоматизовані системи. Стадії створення., 2001.–528с.(Гл.9)

  12. Основы инженерного творчества. Половинкин. М-88

  13. www.asm.org/servіng/se/code.hfm.



Допоміжна

  1. Jotterbarn D., Mіller K., Rogerson S. Software Engіneerіng Code of Ethіes іs Approved / Cоmmunіcatіons of the AСM.– v.42. – №1O. – 1999.– p.1O2 –1O7

  2. Андон Ф.И., Яшунин А.Е., Резниченко В.А. Логические модели интеллектуальных информационных систем. – Киев: Наукова думка, 1999.

  3. Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуальных систем. - Спб.: Питер, 2001.

  4. Глибовець М.М., Олецький О.В. Штучний інтелект. - К.: "КМ Академія", 2002.

  5. Джексон П. Введение в экспертные системы. – М.: Издательский дом «Вильямс», 2001.

  6. Плескач В.Л., Рогушина Ю.В., Кустова Н.П. Інформаційні технології та системи. - К.: "Книга", 2004.

  7. Ситник В.Ф. та ін. Системи підтримки прийняття рішень. — К.: Техніка, 1995.


Інформаційні ресурси

Використовувані стандарти

  1. ISO/IEC 12207:1996 Information Technology – Software life–cycle processes;

  2. 12207/FPDAM 1.2 – Software Engineering – Life Cycle Processes // ISO/IEC JTC1/SC7 N2413, Software & System Engineering Secretariat, Canada. – 2001. – 62p.

  3. DTR 15271 Information Technology – Guide for ISO/IEC 12207 (Software Life Cycle Processes);

  4. IEEE/IEA Std. 12207.1:1997 Software Life Cycle processes – Life Cycle data;

  5. ISO/IEC JTC1/SC7 N2172a (Draft ISO/IEC TR 16326:1999). Software Engineering – Guide for the Application of ISO/IEC 12207 to Project Management;

  6. ISO/IEC TR 15504 Information Technology – Software Process Assessment Part 1 – Part 9;

  7. IEEE Std. 1058:1998 IEEE Standard for Software Project Management Plans

  8. IEEE Std. 1044:1993 IEEE Standard Classification for Software Anomalies

  9. IEEE Std. 1044–1:1995 IEEE Guide to Classification for Software Anomalies

  10. ISO/IEC 15026:1998 Information Technology – System and Software Integrity Levels;

  11. ISO/IEC JTC1/SC7 N2207:1999 IEC 60300: Dependability management – Part 3–13: Application Guide – Project risk management;

  12. ISO/IEC JTC1/SC7 N2198:1999 2nd Working Draft On Risk Management Terminology и др.


Платформа Сoursera.org (рос. та англ. мовами)

  1. Он-лайн курс «Introduction to Software Product Management» Introduction to Software Product Management | Coursera

  2. Он-лайн курс «Managing an Agile Team» Managing an Agile Team | Coursera

  3. Он-лайн курс «Agile Planning for Software Products» Agile Planning for Software Products | Coursera

  4. Он-лайн курс «Software Product Management Capstone» Software Product Management Capstone | Coursera

  5. Он-лайн курс «Специализация Software Testing and Automation» Software Testing and Automation | Coursera