Page 7 - 4252
P. 7

ЛЕКЦІЯ 1


             ПОНЯТТЯ АРХІТЕКТУРИ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

                  Архітектура  програмного  забезпечення (англ.  software  architecture)  -  це
            структура програми або обчислювальної системи, яка включає програмні ком-
            поненти, видимі зовні властивості цих компонентів, а також відносини між ни-
            ми. Цей термін стосується також документування архітектури програмного за-
            безпечення. Документування архітектури ПЗ спрощує процес комунікації між
            зацікавленими  особами  (англ.  stakeholders),  дозволяє  зафіксувати  прийняті  на
            ранніх етапах проектування рішення про високорівневий дизайн системи і до-
            зволяє використовувати компоненти цього дизайну і шаблони повторно в інших
            проектах.

                  Огляд
                  Область комп'ютерних наук з моменту свого утворення зіткнулася з про-
            блемами,  пов'язаними  зі  складністю  програмних  систем.  Раніше  проблеми
            складності вирішувалися розробниками шляхом правильного вибору структур

            даних, розробки алгоритмів та застосування концепції розмежування повнова-
            жень.  Хоча  термін  "архітектура  програмного  забезпечення"  є  відносно  новим
            для індустрії розробки ПЗ, фундаментальні принципи цієї області невпорядко-
            вано  застосовувалися  піонерами  розробки  ПЗ  починаючи  з  середини  1980-х.
            Перші спроби усвідомити і пояснити програмну архітектуру системи були по-
            вні неточностей і страждали від нестачі організованості, часто це була просто
            діаграма з блоків, сполучених лініями. У 1990-ті роки спостерігається спроба
            визначити  і  систематизувати  основні  аспекти  даної  дисципліни.  Початковий
            набір  шаблонів  проектування,  стилів  дизайну,  передового  досвіду  (best-
            practices), мов опису та формальна логіка були розроблені протягом цього часу.
                   Основною  ідеєю  дисципліни  програмної  архітектури  є  ідея  зниження
            складності системи шляхом абстракції і розмежування повноважень. На сього-
            днішній день до цих пір немає згоди щодо чіткого визначення терміна "архітек-
            тура програмного забезпечення".
                   Будучи в справжній момент свого розвитку дисципліною без чітких пра-
            вил про  "правильний" шлях створення системи, проектування архітектури ПЗ
            все ще є сумішшю науки і мистецтва. Аспект "мистецтва" полягає в тому, що
            будь-яка комерційна система має на увазі наявність застосування або місії. Те,
            які ключові цілі має система, описується за допомогою сценаріїв як нефункціо-
            нальні вимоги до системи, також відомі як атрибути якості, що визначають, як
            буде  вести  себе  система.  Атрибути  якості  системи  включають  в  се-
            бе відмовостійкість, збереження зворотної сумісності, розширюваність, надій-
            ність, придатність до сервісного обслуговування (maintainability), доступність,
            безпека, зручність використання, а також інші якості. З точки зору користувача
            програмної архітектури, програмна архітектура дає напрям для руху і вирішен-


                                                            6
   2   3   4   5   6   7   8   9   10   11   12