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