
- •4. Інженерія систем і програмного забезпечення
- •4.1. Складні та великі системи
- •4.1.1. Властивості систем: емерджентність, адитивність, еквіфінальність
- •4.1.2. Відкриті та закриті системи; класифікація за призначенням, походженням, видом елементів, способом організації
- •4.1.3. Спільне та відмінності складних і великих систем
- •4.2. Моделі систем
- •4.2.1. Склад і структура системи; моделі типу чорної та білої скриньки.
- •4.2.2. Концептуальні, математичні і комп’ютерні моделі
- •4.2.3. Зв’язок між системою та моделлю. Ізо- та гомоморфізм
- •Гомоморфізм
- •Гомоморфізм Гомоморфізм Ізоморфізм
- •4.3. Інформаційні системи
- •4.3.1. Поняття, цілі, значення, класифікація за функціональністю, масштабом, сферою застосування
- •4.3.2. Забезпечення інформаційних систем: організаційне, інформаційне, математичне, програмне, технічне, лінгвістичне, методичне, правове.
- •4.4. Аналіз вимог
- •4.4.1. Класифікація вимог до програмного забезпечення. Джерела та методи збирання вимог
- •4.4.2. Вимоги користувача (варіанти використання та історії користувачів).
- •4.4.3. Функціональні та нефункціональні вимоги, обмеження, структуризація функціональних вимог.
- •4.5. Проєктування програмного забезпечення
- •4.5.1. Види проєктування: структурне, обєктно-орієнтоване, архітектурне, інтерфейсне
- •4.5.2. Парадигми проєктування: функціональна декомпозиція згори вниз, архітектура, орієнтована на дані, об'єктно-орієнтований аналіз та проєктування, подієво-керована архітектура
- •4.5.3. Ідентифікація класів предметної області. Uml-діаграми ієрархії класів: моделювання підсистем, класів та зв’язків між ними
- •4.5.4. Проєктування сценаріїв реалізації варіантів використання на основі uml-діаграм послідовностей та комунікації
- •4.5.5. Основні патерни проєктування mvc, Abstract Factory, Facade, Decorator, Flyweight, Visitor, Observer, Proxy, Strategy, Chain of Responsibility
- •4.6. Реалізація програмного забезпечення
- •4.6.1. Вимоги до оформлення коду: стиль, розбиття на структуровані одиниці, найменування змінних, класів, об’єктів.
- •4.6.2. Засоби автоматичної ґенерації програмного коду
- •4.6.3. Налагодження: Точки зупинки (Breakpoints), Спостереження за змінними (Variable Watch), Виведення на консоль (Console Output), Налагоджувач (Debugger), Аналізатори коду (Code Analyzers)
- •4.6.4. Керування конфігурацією програмного забезпечення та контроль версій
- •4.6.5. Постійна інтеграція/постійне впровадження (Continuous Integration/Continuous Delivery)
- •4.7. Забезпечення якості: спільне та відмінності процесів тестування, верифікації, валідації
- •4.7.1. Тестування методами білої та чорної скрині
- •4.7.2. Рівні тестування: модульний, інтеграційний, системний, валідаційний.
- •4.7.3. Розробка через тестування (Test-driven development)
- •2. Види тестування зручности використання:
- •3. Проведення ефективного тестування зручности використання
- •4. Вирішення крайніх випадків в тестуванні зручности використання
- •4.8. Командна робота, підходи до розробки програмного забезпечення (пз)
- •4.8.1. Класичні моделі розробки пз: каскадна (водопадна), ітераційна, інкрементна
- •4.8.2. Промислові технології розробки. Rup, msf, Agile, Scrum, Extreme Programming (xp), Kamban.
- •4.8.3. Ролі та обов'язки у команді проекту, переваги командної роботи, ризики та складність такої співпраці
- •3. Ролі членів групи в моделі процесу розробки
- •4.8.4. Основні етапи планування і виконання іт проекту. Життєвий цикл іт проекту.
Гомоморфізм
Гомоморфізм Гомоморфізм Ізоморфізм
Рис. 1. Взаємозв'язок між: системою, моделлю та дослідником
Оскільки знання про досліджувану систему S2, сформоване в результаті її пізнання, неповне, деякі аспекти функціонування Sl невідомі дослідникові, а тому й відображення її у свідомості (система S2) гомоморфне. У процесі дослідження системи нас цікавить не вся сума знань про систему, а лише деякі її аспекти, тому уявлення про модель системи в свідомості (система S3) — це результат гомоморф-ного відображення S2 в S3. Внаслідок цієї ж причини відображення системи S1 в модель S4 також носить гомоморфний характер. Уявлення про модель S3 ізоморфно відображається в S4 — модель системи.
Моделювання — це ітераційний процес, під час якого уявлення про модель постійно поповнюються та корегуються — можливо, аж до зміни первинних уявлень. Відповідно до цього змінюється модель. Подібність моделі до оригіналу завжди неповна, тобто модель лише приблизно відображає деякі властивості оригіналу. Внаслідок цього реальна система може мати різноманітні гомоморфні моделі, які між собою не будуть ізоморфними. Отже, поняття гомоморфізму дозволяє теоретично обгрунтувати процес моделювання та множинність моделей системи.
Ізоморфі́зм — властивість, що виражає однаковість будови якихось сукупностей елементів, незалежно від природи цих елементів. Взаємна однозначність між системами або об'єктами, що розглядаються. Строго доведений ізоморфізм для систем різної природи дозволяє переносити знання з однієї галузі на іншу.
Ізоморфізм може означати:
Ізоморфізм — взаємно-однозначна бієкція (відображення) елементів математичної структури на іншу зі збереженням структури.
Ізоморфізм графів
Ізоморфізм груп
Теореми про ізоморфізми
Ізоморфізм — явище заміщення у кристалічних ґратках одних атомів на інші, близькі за властивостями.
Ізоморфізм — однаковість за формою мікроекономічних моделей, які описують поведінку споживача і поведінку фірми.
В алгебрі гомоморфізм — це зберігаюче структуру відображення[en] між двома алгебричними структурами того ж самого типу (наприклад, двома групами, двома кільцями, двома векторами просторами).
Слово гомоморфізм у перекладі з давньогрецької грец. homos – однаковий і грец. morphe – форма, вид.[1] Цей термін з'явився ще в 1892, його припусували німецькому математику Феліксу Клейну (1849—1925). Гомоморфізми двох векторних просторів також називають лінійними відображеннями, а їх дослідженнями займається лінійна алгебра.
Поняття гомоморфізму було узагальнено під назвою морфізм для багатьох структур, що не мають множини-носія або не є алгебраїчними. Це узагальнення — відправна точка теорії категорій
Гомоморфізм може також бути ізоморфізмом, ендоморфізмом, автоморфізмом і т.п. (дивись нижче). Кожен з цих гомоморфізмів може бути визначений способом, який можна узагальнити до будь-якого класу морфізмів.
4.3. Інформаційні системи
4.3.1. Поняття, цілі, значення, класифікація за функціональністю, масштабом, сферою застосування
Інформацíйна система (англ. Information system) — сукупність організаційних і технічних засобів для збереження та обробки інформації з метою забезпечення інформаційних потреб користувачів.
За ДСТУ 2392-94: Інформаційна система — комунікаційна система, що забезпечує збирання, пошук, оброблення та пересилання інформації[1].
Закон України «Про захист інформації в інформаційно-телекомунікаційних системах» визначає інформаційну (автоматизовану) систему як організаційно-технічну систему, в якій реалізується технологія обробки інформації з використанням технічних і програмних засобів [2].
В українському законодавстві встановлені наступні визначення терміну:
Інформаційна система — автоматизована система, комп'ютерна мережа або система зв'язку[3].
Інформаційна система — організаційно-технічна система обробки інформації за допомогою технічних і програмних засобів[4].
Інформаційна система — система, призначена для одержання, обробки, зберігання, відображення та/або реєстрації даних про технічний стан конструкцій, систем, елементів, їх властивості та/або функціонування[5].
Будь-яка база даних створюється для вирішення маси різнотипних проблем, але все ж основна мета створення інформаційної системи – це пошук, аналіз та збереження інформації. Такі інформаційні масиви, функціонування яких підтримується сучасними комп'ютерами, дозволяють зберігати величезні кількості даних та швидко надають доступ до будь-якого цікавого для файлу. Крім цього існує велика кількість інших цілей.
Зберігання даних різних структурних типів. У сучасному світі вже не існує інформаційних баз, які б працювали з файлами тільки одного типу. Мета інформаційної системи в сучасному світі – це зберігання різнотипних даних. Зазвичай, для підвищення функціональності таких інформаційних систем використовують кілька носіїв даних, кожен з яких містить в собі файли певної структури.
Аналіз та прогноз функціонування потоків інформації. Бази даних обробляють файли та вивчають способи їх отримання та передачі. Це робиться для того, щоб можна було стандартизувати пристрої, що забезпечують роботу інформаційних систем, та мінімізувати час обробки та передачі даних.
Дослідження та створення нових способів зберігання та відображення інформаційних масивів. Дана мета покликана зменшити будь-які витрати на зберігання інформації, а також створити нові способи, за допомогою яких відповідна запиту користувача інформація швидше перебувала в базі даних та відображалася на моніторі.
Створення програм та техніки, за допомогою яких інформація, створена для сприйняття людиною, могла б прийматися приладами, що забезпечують функціонування та розвиток інформаційної системи. Це програми та пристрої на подобу тих, які дозволяють в автоматичному режимі вносити текст з паперу в інформаційну систему комп'ютера.
Створення нових пошуково-інформаційних засобів, для автоматизації та прискорення процесу, а також пошуку потрібних файлів. Мета інформаційної системи в такому випадку – це автоматичне перетворення запиту користувача із звичайного мови у програмний код.
Створення спеціальних інформаційних мереж, в які входять: банки даних, термінали передачі, центри обробки та засоби для швидкого зв'язку. По суті, інформаційні системи в сучасному світі здійснюють величезну кількість функцій, без яких не могли б функціонувати ніякі інші системи.
Місією інформаційної системи є переробка інформації, потрібної для ефективного управління всіма ресурсами організації, створення інформаційного та технічного середовища для управління її діяльністю. Інформаційна система може існувати і без застосування комп'ютерної техніки — це питання економічної доцільності.
В залежності від функціонального призначення можна виділити такі системи:
Керувальні (АСК ТП, АСКВ);
Проектувальні (САП);
Наукового пошуку (АСНД, АІПС, експертні системи);
Діагностичні, моделювальні;
Систем підготовки прийняття рішення (СППР).
За масштабністю інформаційні системи поділяються на такі групи:
одиничні;
групові;
корпоративні;
глобальні.
Одиничні ІС реалізуються, як правило, на автономному персональному комп'ютері без використання комп'ютерної мережі. Така система може містити декілька простих додатків із спільним інформаційним фондом. Подібні комплекси можуть бути створені за допомогою таких локальних систем управління базами даних як Clipper, FoxPro, Paradox, MS Access тощо. Наприклад, "ІС: Бухгалтерія", АРМ.
Групові ІС орієнтовані на колективне використання інформації і найчастіше будуються на базі локальної обчислювальної мережі. При розробці таких додатків найчастіше використовуються сервери баз даних (SQL-сервери) для робочих груп. Серед найбільш відомих таких серверів є Oracle, InterBase, Sybase, тощо.
Корпоративні ІС призначені для великих компаній і можуть підтримувати територіально віддалені вузли і мережі. Як правило, вони мають ієрархічну клієнт-серверну структуру зі спеціалізацією серверів. При розробці таких систем можуть використовуватись ті ж сервери баз даних, що й при розробці групових ІС. Для корпоративних систем найбільш поширеними є сервери Oracle, DB2, Microsoft SQL Server.
Глобальні ІС охоплюють територію держави чи континенту. Прикладом такої інформаційної системи є глобальна мережа Інтернет.
За сферою застосування інформаційні системи можна умовно поділити на чотири групи:
системи обробки трансакцій (операцій з базою даних) - призначені для ефективного відображення предметної області в будь-який момент часу (OLTP - OnLine Transaction Processing);
системи підтримки прийняття рішень - за допомогою комплексу запитів здійснюється аналіз даних в різних аспектах: часових, просторових, і т.п.;
інформаційно-довідкові системи базуються на гіпертекстових документах і мультимедійних засобах. Найбільший розвиток такі системи отримали в мережі Інтернет;
офісні інформаційні системи - призначені для перетворення паперових документів в електронні, автоматизації діловодства і управління документообігом.