Материал: Кузьмич КУРСОВА ТРПЗ

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

абстрагування – спрощення складної дійсності шляхом моделювання класів, що відповідають проблемі, та використання найприйнятнішого рівня деталізації окремих аспектів проблеми;

поліморфізм – означає залежність поведінки від класу, в якому ця поведінка викликається, тобто, два або більше класів можуть реагувати по-різному на однакові повідомлення. Реалізовується шляхом реалізації ряду підпрограм (функцій, процедур, методи тощо) з однаковими іменами, але з різними параметрами. Залежно від того, що передається, і вибирається відповідна підпрограма [5].

1.4 Огляд коп

У зв’язку з тим, що неконтрольване застосування ООП призводить до викикнення проблем із здатністю великих програмних комплексів виконувати потрібні функції в заданих режимах та умовах застосування застосовують КОП(компонентно-орієнтоване програмування). КОП – одна з парадигм програмування, виникла як свого роду дисципліна, тобто набір певних обмежень, що накладаються на механізм об'єктно-орієнтованого програмування [7].

Це підхід, заснований на повторному використанні, для визначення, впровадження та складання в систему слабко пов'язаних незалежних компонентів. Ця практика має на меті принести однаково широку ступінь вигоди як в короткостроковій, так і в довгостроковій перспективах як для самого програмного забезпечення, так і для організацій, які спонсорують таке програмне забезпечення [7].

Працівники програмної інженерії розглядають компоненти як частину стартової платформи орієнтації на обслуговування. Компоненти відіграють цю роль, наприклад, у веб-сервісах та з недавніх пір у сервісно-орієнтованих архітектурах (SOA), завдяки чому компонент перетворюється веб-сервісом у сервіс та згодом успадковує подальші характеристики, вищі за характеристики звичайного компонента [7].

Компоненти можуть створювати або споживати події і можуть використовуватися для архітектур, керованих подіями (EDA) [7].

Індивідуальний програмний компонент – це програмний пакет, веб-служба, веб-ресурс або модуль, який інкапсулює набір пов'язаних функцій (або даних). Всі системні процеси розміщуються в окремі компоненти, так що всі дані та функції всередині кожного компонента є семантично пов'язаними (так само, як і зі змістом класів). Через цей принцип часто говорять про те, що компоненти модульні та згуртовані. Що стосується загальносистемної координації, компоненти спілкуються один з одним через інтерфейси. Коли компонент пропонує послуги для решти системи, він приймає наданий інтерфейс, який визначає послуги, якими можуть користуватися інші компоненти, і як вони можуть це робити. Цей інтерфейс можна розглядати як підпис компонента - клієнту не потрібно знати про внутрішню роботу компонента (реалізації), щоб ним скористатися. Цей принцип призводить до того, що компоненти, які називаються ікапсульованими [7].

1.4 Принципи SOLID

SOLID – це абревіатура складена з перших літер п'яти базових принципів об'єктно-орієнтованого програмування та дизайну запропонована Робертом Мартіном [9]. Принципи SOLID є дуже важливими при написанні програми так, як при їх дотриманні структура програми стає чіткою та правильною. Принципи SOLID використовуються для дизайну та розробки таких програмних систем, які, з великою ймовірністю, зможуть тривалий час розвиватися, розширятися і підтримуватися [9].

SOLID розшифровується як:

  • принцип єдиного обов'язку (Single responsibility principle): Кожен об'єкт має виконувати лише один обов'язок;

  • принцип відкритості/закритості (Open/closed principle): Програмні сутності повинні бути відкритими для розширення, але закритими для змін. Розширення певного класу/інтерфейсу може здійснюватись через його успадкування;

  • принцип підстановки Лісков (Liskov substitution principle): Об'єкти в програмі можуть бути заміненими їх нащадками без зміни коду програми;

  • принцип розділення інтерфейсу (Interface segregation principle): Багато спеціалізованих інтерфейсів краще за один універсальний. Інтерфейс може бути поділений на спеціалізовані ще на стадії проектування, заради майбутньої гнучкості програмних компонентів;

  • принцип інверсії залежностей (Dependency inversion principle): Залежності всередині системи будуються на основі абстракцій, що не повинні залежати від деталей; навпаки, деталі мають залежати від абстракцій. Модулі вищих рівнів не мають залежати від модулів нижчих рівнів [9].

1.5 MVVM

Model-View-ViewModel – це шаблон проектування, що застосовується під час проектування архітектури застосунків (додатків). Публічно вперше був представлений Джоном Госсманом (John Gossman) у 2005 році як модифікація шаблону Presentation Model. MVVM орієнтований на такі сучасні платформи розробки, як Windows Presentation Foundation та Silverlight від компанії Microsoft [8].

MVVM полегшує відокремлення розробки графічного інтерфейсу від розробки бізнес логіки (бек-енд логіки), відомої як модель (можна також сказати, що це відокремлення представлення від моделі). Модель представлення є частиною, яка відповідає за перетворення даних для їх подальшої підтримки і використання. З цієї точки зору, модель представлення більше схожа на модель, ніж на представлення і оброблює більшість, якщо не всю, логіку відображення даних. Модель представлення може також реалізовувати патерн медіатор, організовуючи доступ до бек-енд логіки навколо множини правил використання, які підтримуються представленням [8].

MVVM використовується для відокремлення моделі та її відображення. Необхідністю цього є надання можливості змінювати їх незалежно одну від одної. Наприклад, розробник працює над логікою роботи з даними, а дизайнер – з користувацьким інтерфейсом [8].

Шаблон MVVM ділиться на три частини: модель (Model), як і в класичному шаблоні MVC, Модель являє собою фундаментальні дані, що необхідні для роботи застосунку. Вид(View), як і в класичному шаблоні MVC, – це графічний інтерфейс, тобто вікно, кнопки тощо. Модель вигляду (ViewModel, що означає «Model of View» ) з одного боку є абстракцією Вигляду, а з іншого надає обгортку даних з Моделі, які мають зв'язуватись. Тобто вона містить Модель, яка перетворена до Вигляду, а також містить у собі команди, якими може скористатися Вигляд для впливу на Модель. Фактично ViewModel призначена для того, щоб :

  • здійснювати зв'язок між моделлю та вікном;

  • відслідковувати зміни в даних, що зроблені користувачем;

  • відпрацьовувати логіку роботи View (механізм команд) [8].

1.6 База даних

В програмі використовується система керування базами даних Sql Server для збереження даних [11]. База даних це сукупність даних, організованих відповідно до концепції, яка описує характеристику цих даних і взаємозв'язки між їх елементами; ця сукупність підтримує щонайменше одну з областей застосування. Система керування базами даних – це система, заснована на програмних та технічних засобах, яка забезпечує визначення, створення, маніпулювання, контроль, керування та використання баз даних [11].

SQL Server – комерційна система керування базами даних, що розповсюджується корпорацією Microsoft. Мова, що використовується для запитів- Transact-SQL. Transact-SQL є реалізацією стандарту ANSI та ISO щодо структурованої мови запитів SQL із розширеннями. Використовується як для невеликих і середніх за розміром баз даних, так і для великих баз даних масштабу підприємства. Microsoft SQL Server як мову запитів використовує версію SQL, що отримала назву Transact-SQL (скорочено T-SQL), яка є реалізацією SQL-92 (стандарт ISO для SQL) з багатьма розширеннями. T-SQL дозволяє використовувати додатковий синтаксис процедур, що зберігаються і забезпечує підтримку транзакцій (взаємодія бази даних з керуючим застосунком) [11].

Microsoft SQL Server також підтримує Open Database Connectivity (ODBC) –інтерфейс взаємодії застосунків з СУБД. Версія SQL Server надає можливість підключення користувачів через веб-сервер-сервіси, що використовують протокол SOAP. Це дозволяє клієнтським програмам, не призначеним для Windows, кроссплатформенно з'єднуватися з SQL Server [1],[11].

SQL Server підтримує дзеркалювання та кластеризацію баз даних. Кластер серверу SQ – це сукупність однаково конфігурованих серверів; така схема допомагає розподілити робоче навантаження між декількома серверами. Усі сервери мають одне віртуальне ім'я, а дані розподіляються за IP-адресами машин кластеру протягом робочого циклу. Також у разі відмови або збою на одному з серверів кластеру доступне автоматичне перенесення навантаження на інший сервер [11].

SQL Server підтримує надлишкове дублювання даних за трьома сценаріями:

  • знімок: Виконується «знімок» бази даних, який сервер відправляє одержувачам;

  • історія змін: Всі зміни бази даних безперервно передаються користувачам;

  • синхронізація з іншими серверами: Бази даних декількох серверів синхронізуються між собою. Зміни усіх баз даних відбуваються незалежно на кожному сервері, а під час синхронізації відбувається звірка даних. Дублювання такого типу передбачає можливість вирішення протиріч між базами даних [11].

1.7 Технологія ado.Net

ADO.NET надає узгоджений доступ до таких джерел даних, як SQL Server і XML, а також до джерел даних, що надаються за допомогою ODBC. Призначені для користувача функції, які залежать загальні дані, можуть використовувати ADO.NET для з'єднання з цими джерелами даних і для отримання, обробки і поновлення наявних в них даних. ADO.NET розділять доступ до даних і обробку даних на дискретні компоненти, які можуть використовуватися окремо або разом. ADO.NET включає постачальників даних .NET Framework для з'єднання з базою даних, виконання команд і отримання результатів. Ці результати, поміщені в об'єкт ADO.NET DataSet, обробляються безпосередньо, щоб вони могли бути надані користувачеві нерегламентованим чином, об'єднані з даними з багатьох джерел або передавання даних між рівнями. Об'єкт DataSet також може незалежно використовуватися постачальником даних .NET Framework для управління локальними для додатка даними або даними, джерелом яких є XML [4].

Основними перевагами ADO.NET є

  • підтримка XML. ADO також підтримує XML;

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

  • простота програмування. Компоненти даних ADO.NET в Visual Studio інкапсулюють функціональні можливості доступу, що допомагає розробляти програмні продукти значно швидше і з меншою кількістю помилок [4].

Источник: https://studfile.net/preview/14690636/