Page 7 - 4252
P. 7
ЛЕКЦІЯ 1
ПОНЯТТЯ АРХІТЕКТУРИ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
Архітектура програмного забезпечення (англ. software architecture) - це
структура програми або обчислювальної системи, яка включає програмні ком-
поненти, видимі зовні властивості цих компонентів, а також відносини між ни-
ми. Цей термін стосується також документування архітектури програмного за-
безпечення. Документування архітектури ПЗ спрощує процес комунікації між
зацікавленими особами (англ. stakeholders), дозволяє зафіксувати прийняті на
ранніх етапах проектування рішення про високорівневий дизайн системи і до-
зволяє використовувати компоненти цього дизайну і шаблони повторно в інших
проектах.
Огляд
Область комп'ютерних наук з моменту свого утворення зіткнулася з про-
блемами, пов'язаними зі складністю програмних систем. Раніше проблеми
складності вирішувалися розробниками шляхом правильного вибору структур
даних, розробки алгоритмів та застосування концепції розмежування повнова-
жень. Хоча термін "архітектура програмного забезпечення" є відносно новим
для індустрії розробки ПЗ, фундаментальні принципи цієї області невпорядко-
вано застосовувалися піонерами розробки ПЗ починаючи з середини 1980-х.
Перші спроби усвідомити і пояснити програмну архітектуру системи були по-
вні неточностей і страждали від нестачі організованості, часто це була просто
діаграма з блоків, сполучених лініями. У 1990-ті роки спостерігається спроба
визначити і систематизувати основні аспекти даної дисципліни. Початковий
набір шаблонів проектування, стилів дизайну, передового досвіду (best-
practices), мов опису та формальна логіка були розроблені протягом цього часу.
Основною ідеєю дисципліни програмної архітектури є ідея зниження
складності системи шляхом абстракції і розмежування повноважень. На сього-
днішній день до цих пір немає згоди щодо чіткого визначення терміна "архітек-
тура програмного забезпечення".
Будучи в справжній момент свого розвитку дисципліною без чітких пра-
вил про "правильний" шлях створення системи, проектування архітектури ПЗ
все ще є сумішшю науки і мистецтва. Аспект "мистецтва" полягає в тому, що
будь-яка комерційна система має на увазі наявність застосування або місії. Те,
які ключові цілі має система, описується за допомогою сценаріїв як нефункціо-
нальні вимоги до системи, також відомі як атрибути якості, що визначають, як
буде вести себе система. Атрибути якості системи включають в се-
бе відмовостійкість, збереження зворотної сумісності, розширюваність, надій-
ність, придатність до сервісного обслуговування (maintainability), доступність,
безпека, зручність використання, а також інші якості. З точки зору користувача
програмної архітектури, програмна архітектура дає напрям для руху і вирішен-
6