Проектування програмних систем

Питання до контрольної роботи № 1

 

Тема 1. Основні поняття про програмні системи та їх проектування

Поняття інформаційної системи. Класифікація інформаційних систем. Складність програмних систем. Необхідність інженерії програмних систем.

Поняття проекту. Керування проектом. Планування проекту. Моніторинг проекту.

Тема 2. Технології проектування програмних систем

Поняття технології проектування. Життєвий цикл програмного забезпечення. Стадії життєвого циклу. Стандарти проектування. Процеси життєвого циклу розробки систем.

Моделі життєвого циклу програмних систем: каскадна, інкрементна, еволюційна. Поняття про уніфікований процес розробки систем (RUP). Фази та дисципліни RUP.

Тема 3. Методології проектування програмних систем

Поняття методології проектування систем. Концепції (парадигми) програмування. Структурний підхід до проектування. Алгоритмічна декомпозиція задачі. Висхідне та низхідне проектування. Технологія структурного проектування.

Об’єктно-орієнтована методологія розробки систем. Основні положення об’єктної моделі. Об’єкти і класи. Відношення між класами. Принципи ООП.

Тема 4. Засоби моделювання програмних систем

Моделювання бізнес-процесів. Нотація BPMN. Діаграми функціональної декомпозиції FDD. Діаграми потоків даних DFD. Уніфікована мова моделювання UML. Історія виникнення та призначення UML. Основні компоненти UML: сутності, відношення, діаграми. Класифікація діаграм.

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


Питання до контрольної роботи № 2

Тема 5. Моделювання предметної області.

Вивчення предметної області. Випадки використання системи (Use Case). Сценарії випадків використання. Візуалізація (побудова діаграм) випадків використання системи.

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

Моделювання структури системи. Способи виявлення класів. Діаграми класів UML. Властивості класів. Атрибути, операції класів. Взаємозв’язки між класами. Асоціації, наслідування, залежність. Агрегація та композиція. Діаграми об’єктів UML. Інтерфейси.

Поняття архітектури програмної системи. Логічна та фізична архітектура системи. Архітектурні стилі. Вибір архітектури системи. Проектування на основі обов’язків. Принципи розподілу обов’язків між об’єктами. Шаблони GRASP.

Архітектурні шаблони. Принцип Model-View Separation. Архітектурний шаблон Модель-Подання-Контролер (Model-View-Controller). Проектування на основі шаблонів (патернів). Шаблони проектування GoF.

Тема 7. Моделювання поведінки системи.

Моделювання та специфікація поведінки програмних систем. Діаграми взаємодії. Діаграми послідовності та комунікації. Діаграми діяльності. Діаграми станів.

Тема 8. Процес розробки програмного забезпечення.

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

Керування якістю програмного забезпечення. Тестування програмного забезпечення. Стратегії тестування. Типи тестів. Модульне та функціональне тестування. Приймальні випробовування.

Розробка програмних систем на основі тестування (TDD). Створення модульних тестів. Фреймворки для модульного тестування. Поняття про рефакторинг. Розгортання та супровід системи.