- •Інженерія програмного забезпечення
- •Загальні вимоги до програмного забезпечення
- •Процеси життєвого циклу програмного забезпечення
- •Керування процесом проектування програмного забезпечення
- •Прототипування програмних систем.
- •Архітектурне проектування програмних систем
- •Архітектура розподілених систем
- •Проектування систем реального часу
- •Об‘єктно-орієнтоване проектування програмних систем.
- •Візуальне проектування об‘єктно-орієнтованих систем
- •Динамічні моделі об‘єктно-орієнтованих систем
- •Моделі реалізації об‘єктно-орієнтованих програмних систем
- •Проектування інтерфейсу користувача
- •Тестування програм та систем
- •Структурне тестування програмного забезпечення.
- •Методи та засоби автоматизації тестування програмного забезпення
- •Системне програмування
- •Дати оцінку основним правилам автоматичного перетворення типів.
- •Розкрити сутність адресної арифметики при роботі з вказівниками.
- •Обґрунтувати алгоритм та представити програмний код для реалізації програми, що сумує з 0 по 3 біт першого числа та з 3 по 6 біт другого числа.
- •Розкрийте поняття програмна модель мікропроцесора.
- •Проаналізувати типи даних в мові асемблер.
- •Проаналізувати особливості роботи із масивами в мові асемблер.
- •Проаналізувати структуру програми мовами програмування з родини асемблерів(синтаксис ассемблера).
- •Організувати на асемблері ехе-програму, щоб перекодувати символи строки шляхом додавання до літери строки кодів символів таблиці(Код мовою Asembler).
- •Організувати ехе-програму , щоб перекодувати символи з однієї таблиці в іншу(код мовою асемблера).
- •Організація баз даних
- •Моделі даних: ієрархічна, мережева, реляційна, об‘єктно-реляційна, нереляційна.
- •NoSql або постреляційні бази даних
- •Реляційна модель даних. Операції реляційної алгебри.
- •Нормалізація відношень при проектування реляційної моделі.
- •Поняття первинних ключів. Роль функціональних залежностей. Зовнішні та батьківські ключі.
- •Нормалізація відношень: перша, друга та третя нормальні форми
- •Визначення другої нормальної форми. Правило приведення. Повна функціональна залежність.
- •Визначення третьої нормальної форми. Правило приведення. Транзитивна залежність.
- •Семантичне моделювання та когнітивний аспект.
- •Проектування баз даних: концептуальне, логічне, фізичне
- •Модель «сутність-зв‘язок» або er-модель
- •Нормалізація даних в er-моделі
- •Case-засоби проектування баз даних.
- •Мова маніпулювання даними sql. Побудова запитів.
- •Адміністрування даних. Засоби підтримки цілісності баз даних
Архітектурне проектування програмних систем
Архітектурним проектуванням називають перший етап процесу проектування, на якому визначають підсистеми, структуру керування і взаємодію підсистем. Мета архітектурного проектування – опис архітектури програмного забезпечення. Архітектурне проектування є з’єднувальною ланкою між процесом проектування і процесом розроблення вимог до створюваної системи.
Існують різні підходи до процесу архітектурного проектування, які залежать від професійного досвіду, а також майстерності та інтуїції розробників. Але можна виділити декілька етапів, загальних для всіх процесів архітектурного проектування.
Структурування. На цьому етапі система подається сукупністю незалежних підсистем та визначається їх взаємодією.
Моделювання керування. Розробляється базова модель керування взаємодіями між частинами системи.
Модульна декомпозиція. Підсистема поділяється на окремі модулі. Тут визначаються типи модулів та їх взаємозв’язки.
Ці етапи перетинаються, накладаються один на одний. Етапи можуть повторюватися для більш детального опрацювання архітектури, поки проект не буде задовольняти системні вимоги.
Підсистема – це незалежний елемент системи, який має власні операції (методи). Підсистеми складаються з модулів і мають певні інтерфейси, за допомогою яких вона взаємодіє з іншими підсистемами.
Модуль це компонент системи, що надає один або кілька сервісів іншим. Модуль може використовувати сервіси, підтримувані іншими модулями. Цей компонент ніколи не розглядається як незалежна система. Модулі зазвичай складаються з ряду інших, більш простих компонентів
Структурування системи. На першому етапі процесу проектування архітектури система поділяється на кілька взаємодійних підсистем. На абстрактному рівні системну архітектуру зображають графічно у вигляді блоксхеми, у якій окремі підсистеми подаються окремими блоками. Підсистему також можна розбити на кілька частин; на діаграмі ці частини зображуються прямокутниками всередині великих блоків. Потоки даних і/або потоки керування між підсистемами позначають стрілками. Така блок-схема дає загальне уявлення про структуру системи.
Моделі керування. У моделі структури системи показані всі підсистеми, з яких вона складається. Для того щоб підсистеми функціонували як єдине ціле, необхідно керувати ними. Структурні моделі не містять ніякої інформації з керування. У моделях керування на рівні архітектури проектується потік керування між підсистемами. Можна виділити такі основні типи керування в програмних системах: Централізоване керування, Подійне керування, Модель виклику-повернення, Модель диспетчера, Децентралізоване керування.
Модульна декомпозиція. Після розроблення системної структури в процесі проектування відбувається етап декомпозиції підсистем на модулі. Між поділом системи на підсистеми і поділом підсистем на модулі немає істотних відмінностей. Оскільки компонентів модулів зазвичай менше ніж компонентів підсистем, можна використовувати спеціальні моделі декомпозиції: об’єктну модель та модель потоків даних. При цьому система складається з функціональних модулів, які отримують на вході дані і перетворюють їх деяким чином у вихідні дані. Такий підхід часто називають конвеєрним.