Архітектура програмного забезпечення: визначення

Абстрактно, програмна архітектура включає в себе опис елементів, з яких будуються системи, взаємодія між цими елементами, структурами, які визначають їх склад, і обмеження на ці моделі.

Програмна архітектура складається лише з двох частин:

  1. Компоненти. Компонент являє собою модуль програмного  забезпечення, що виконує деякі функції під час виконання. Прикладами компонентів можуть бути програми, об’єкти, процеси, клієнти та сервера, бази даних і т.д.
  2. З’єднувачі. З’єднувач являє собою механізм, який виступає посередником комунікації, координації та співробітництва між компонентами. З’єднувачі описують взаємодії між цими компонентами.

[ШОУ і ГАРЛАН]

Програмна архітектура = {Елементи, Форма, Пояснення}

Елементи програмної архітектури:

  • Елементи даних. Елементи даних є ті, які містять інформацію, яка використовується і перетворюється;
  • Обробка елементів. Це ті компоненти, які підтримують трансформацію елементів даних;
  • З’єднувальні елементи. Вони є “склеювання”, що містить різні фрагменти архітектури разом. Наприклад, виклик процедур, доступ до загальних даних і повідомлень.

Архітектурні форми складаються з зважених властивостей і відносин:

  • Відносини. Відносини використовуються для обмеження ‘Розташування’ архітектурних елементів – тобто, вони обмежують, як різні елементи можуть взаємодіяти і як вони організовані у відношенні один до одного в архітектурі.
  • Властивості. Властивості використовуються для обмеження вибору архітектурних елементів – тобто властивості використовуються для визначення обмежень на елементи в бажаного ступеня з архітектури.
  • Вага. Може бути пов’язана з властивістю або відношенням що визначає важливість властивості або відношення.
  • Обгрунтування охоплює мотивацію вибору архітектурного стилю, елементів і форми. Пояснює,що задоволення системних обмежень визначається відповідно до вимог користувачів, як функціональних, так і нефункціональних.

[Перрі,Волф]

Програмна архітектура програми або обчислювальної системи є структура чи структури системи, яка включає програмні елементи, зовні видимі властивості цих елементів і зв’язків між ними.

Нижче наводяться основні поняття, що використовуються у визначенні.

  • Компоненти. Тому що архітектура може складатися з більш ніж одного типу структури, існує більш ніж один вид компонента, більш ніж один вид взаємодії між компонентами. Визначення не вказує, чим є архітектурні компоненти і відносини.
  • Зовні видимі властивості. Зовні видимих властивостей відносяться до припущень,що з компонентів  можна зробити інші компоненти, такі як послуги, що надаються, експлуатаційні характеристики, обробки помилок, загальні використання ресурсів, і так далі.
  • Структури. Програмні системи відрізняються багатьма структурами. Кожна структура є абстракцією по відношенню до різних критеріїв. Кожна абстракція “википає ‘деталі програмного забезпечення.

Отже, кожна структура може використовувати свої власні позначення, відображати власний вибір архітектурного стилю, і самостійно визначати, що означає компонент, взаємозв’язок, обгрунтування, принципи і керівні вказівки.

[Басс, Клементс, Казман]

Роль архітектури в проектуванні програмного забезпечення

1. Зв’язок між зацікавленими сторонами

2. Прийняття ранніх проектних рішень

a. Архітектура визначає  обмеження  на виконання

b.Архітектура диктує організаційну структуру

c. Архітектура пригнічує або підтримує системні атрибути якості

d.Архітектура полегшує керування змінами

e. Архітектура допомагає в еволюційному прототипуванні

3. Представлення переносної абстракції системи

f.  Лінійки продуктів будуються на основі спільної архітектури

g.Системи можуть бути побудовані з використанням великих, зовні розроблених  елементів

h.Чим меньше тим більше: вігідно обмежувати словник проектних альтернатив

4. Архітектура може бути основою для начання

Архітектурно-економічний цикл

Цілі компанії породжують вимоги, які породжують архітектуру, що породжує систему.

Три важливі речі:

– Певні приклади вдалої архітектури, які, з одного боку задовольняють вимогам, а з іншого боку розширюють спільну, технічну базу.

– Методи оцінки архітектури, яка проводиться до побудови системи на її основі, яка сприяє зниженню ризиків, які пов’язані з реалізацією безпрецедентних проектів.

–  Методи інкрементної (крок за кроком) архітектурно-орієнтованої розробки, яка дозволяє своєчасно виправляти недоліки проектів.

Програмна архітектура – це результат технічних, економічних та соціальних факторів впливу.