Архітектура програмного забезпечення (англ. software architecture) — спосіб структурування програмної або обчислювальної системи, абстракція елементів системи на певній фазі її роботи. Система може складатись з кількох рівнів абстракції і мати багато фаз роботи, кожна з яких може мати окрему архітектуру.
Дослідження архітектури програмного забезпечення намагається визначити як найкраще розбити систему на частини, як ці частини визначають та взаємодіють одна з одною, як між ними передається інформація, як ці частини розвиваються поодинці і як все вищеописане найкраще записати використовуючи формальну чи неформальну нотацію.
Архітектура повинна будуватись щоб найкраще відповідати вимогам до системи що створюється, згідно принципу "[en]".
Згідно Perry та Wolf архітектурою є набір елементів що мають певну форму (властивості і обмеження що накладаються на елементи), і їх [en] (англ. rationale). Обґрунтування фіксує мотиви вибору певного архітектурного стилю, елементів і обмежень. Рой Філдінг вважає що обґрунтування необхідне на етапі створення архітектури, і корисне надалі але не є невід'ємним її елементом. Тому що архітектура має набір властивостей що дозволяють їй задовольняти вимоги, і незнання цих вимог може призвести до змін що порушують архітектуру, але до архітектури входять властивості а не вимоги. Наприклад можна не знати що в "архітектуру" стола закладену вимогу стійкості, і тому він повинен мати більше двох ніжок. Не знаючи про цю вимогу, ми можемо відпиляти забагато ніжок і стіл впаде. Але це тому що ми порушили архітектурне обмеження "мати три чи більше ніжок".
Терміном "Архітектура" також називають документування архітектури програмного забезпечення. Документування архітектури ПЗ спрощує процес комунікації між зацікавленими особами, дозволяє зафіксувати прийняті на ранніх етапах проєктування рішення про високорівневий дизайн системи і дозволяє використовувати компоненти цього дизайну і шаблони проєктування повторно в інших проєктах.
Огляд
Область комп'ютерних наук з моменту свого утворення зіткнулася з проблемами, пов'язаними зі складністю програмних систем. Раніше проблеми складності вирішувалися розробниками шляхом правильного вибору структур даних, розробки алгоритмів і [en]. Хоча термін «архітектура програмного забезпечення» є відносно новим для індустрії розробки ПЗ, фундаментальні принципи цієї області невпорядковано застосовувалися піонерами розробки ПЗ починаючи з середини 1980-х. Перші спроби зрозуміти і пояснити програмну архітектуру системи були повні неточностей і страждали від нестачі організованості, часто це була просто діаграма з блоків, з'єднаних лініями. В 1990-ті роки спостерігається спроба визначити і систематизувати основні аспекти даної дисципліни. Початковий набір шаблонів проєктування, архітектурних стилів, найкращих практик та [en] були розроблені протягом цього часу. Основною ідеєю дисципліни архітектури ПЗ є ідея зниження складності системи шляхом абстракції і розмежування повноважень. Досі немає згоди щодо чіткого визначення терміну «архітектура програмного забезпечення».
Будучи, наразі, дисципліною без чітких правил про «правильний» шлях створення системи, проєктування архітектури ПЗ є поєднанням науки і мистецтва. Аспект мистецтва полягає в тому, що будь-яка комерційна система передбачає наявність застосування або . Ключові цілі, які має система, описуються з допомогою [en] як нефункціональні вимоги до системи, також відомі як атрибути якості, які визначають, як буде поводитись система. Атрибути якості системи включають в себе відмовостійкість, збереження зворотної сумісності, розширюваність, надійність, супроводжуваність, доступність, безпека, зручність використання, а також інші якості. З точки зору користувача програмної архітектури, програмна архітектура дає напрям руху і вирішення завдань, пов'язаних зі спеціальністю кожного такого користувача, наприклад, зацікавленої особи, розробника ПЗ, Служба технічної підтримки, спеціаліста по супроводу, спеціаліста по розгортанню ПЗ, тестера, а також кінцевих користувачів. У цьому сенсі архітектура програмного забезпечення насправді об'єднує різні точки зору на систему. Можливість об'єднати кілька різних точок зору на систему є аргументом на захист необхідності і доцільності створення архітектури ще до етапу розробки ПЗ.
Історія
Початок архітектурі програмного забезпечення як концепції було покладено в науково-дослідницькій роботі Едсгера Дейкстри в 1968 році і [en] на початку 1970-х. Ці вчені підкреслили, що структура системи ПЗ має важливе значення, і що побудова правильної структури - критично важливо. Популярність вивчення цієї області зросла з початку 1990-х років разом з науково-дослідницькою роботою по дослідженню архітектурних стилів (шаблонів), мов описания архітектури, документування архітектури і формальних методів.
У розвитку архітектури програмного забезпечення як дисципліни відіграють важливу роль науково-дослідницькі установи. Мері Шоу і Девід Герлан з університету Карнегі-Меллон написали книгу під назвою «Архітектура програмного забезпечення: перспективи нової дисципліни в 1996 році», в якій висунули концепції архітектури програмного забезпечення, такі як компоненти, з'єднувачі (connectors), стилі і так далі. У Каліфорнійському університеті в Ірвайні, інститут по дослідженню ПЗ насамперед досліджує архітектурні стилі, мови опису архітектури і динамічні архітектури.
Першим стандартом опису програмної архітектури є стандарт [en]: ANSI / IEEE 1471—2000: Рекомендації по опису переважно програмних систем. Він був прийнятий в 2007 році, під назвою ISO ISO / IEC 42010:2007.
Проєктування архітектури програмних систем
Проєктування архітектури ПЗ — це процес розроблення, що виконується після етапу аналізу і формулювання вимог. Задача такого проєктування — перетворення вимог до системи у вимоги до ПЗ і побудова на їхній основі архітектури системи. Побудова архітектури системи здійснюється шляхом визначення цілей системи, її вхідних і вихідних даних, декомпозиції системи на підсистеми, компоненти або модулі та розроблення її загальної структури. Проєктування архітектури системи може проводитися різними методами (стандартизованим, об’єктно-орієнтованим, компонентним і ін.), кожний з яких пропонує свій шлях побудови архітектури, а саме, визначення концептуальної, об’єктної й інших моделей за допомогою відповідних конструктивних елементів (блок-схем, графів, структурних діаграм тощо).
Об’єктний підхід
Проєктування системи може здійснюватися на основі об'єкто-орієнтованого моделювання ПрО методом UML, який дозволяє враховувати аспекти, властиві діючим особам (акторам) системи, створювати сценарії виконання системи тощо. Об’єктний стиль проєктування — це декомпозиція майбутньої системи на окремі підсистеми (пакети), визначення функціональних і нефункціональних вимог і об’єктної моделі предметної області. Носіями інтересів, можливостей і дій в системі (або пакеті) є діючі особи — актори. Пакет може складатися з об’єктної моделі, варіантів використання, що визначають сценарії поведінки системи, склад об’єктів і методів їхньої взаємодії. Поведінка об’єктів відображується діаграмами, що задають послідовність взаємодії об’єктів (діаграми послідовностей, взаємодії), правилами переходу від стану до стану (діаграми станів), а також діаграмами кооперації, в яких діючі особи зображуються графічно. Об’єкти і відповідні їм діаграми варіантів використання задають загальну архітектурну схему системи, у рамках якої здійснюється реалізація структури і специфіки поведінки компонентів. Загальна концепція об’єктного проєктування — це побудова всіх сценаріїв, екранних діаграм для керування ними і їх випробування в різних варіантах використання. На вибір варіантів використання впливають нефункціональні вимоги (наприклад, забезпечення конфіденційності, швидкодії й ін.). На основі моделі опису вимог і понять проводиться уточнення складу і змісту функцій системи, методів їхньої реалізації у вигляді сценаріїв і діаграм потоків даних, у яких відображається взаємодія об’єктів як обмін повідомленнями між елементами системи для передачі даних і одержання відповіді після виконання операцій. Моделі вимог визначають призначення і місце вимог у таких системах. Цьому сприяють розроблені національні, корпоративні і відомчі стандарти. Вони фіксують правила формування нефункціональних вимог, у яких відображаються відомості про взаємодію і захист даних у системі. При цьому поведінка об’єктів представляється діаграмами UML, вони можуть уточнюватися при перегляді моделей вимог і складу об’єктів системи. Перегляд починається з вимог і пошуку місць локалізації для внесення необхідних змін у модель. Зміни можуть стосуватися функціональних і нефункціональних вимог у зв’язку з уточненням замовником обмежень на структуру системи, використовувані ресурси й умови середовища її функціонування.
Загальносистемний підхід
Один зі шляхів архітектурного проєктування — традиційний неформальний підхід до визначення архітектури системи, її компонентів, способів їхнього подання й об’єднання в систему, який можна назвати загальносистемним. Фактично архітектура, що створюється згідно з таким підходом, є чотирирівневою і містить у собі:
- системні компоненти. Вони здійснюють взаємодію з периферійними пристроями комп’ютерів (принтери, клавіатура, сканери, маніпулятори і т.п.), використовуються при побудові операційних систем.
- загальносистемні компоненти. Вони забезпечують взаємодію з універсальними сервісними системами середовища роботи прикладної системи, такими як операційні системи, СКБД, системи баз знань, системи керування мережами і т.п.
- специфічні компоненти певної прикладної області, що входять до складу компонентів програмної системи і призначені для розв’язання задач в межах означеної області (наприклад, бізнес-задачі).
- прикладні програмні системи, що призначені для виконання завдань з обробки інформації, які постають перед окремими групами споживачів інформації з різних предметних областей (офісні системи, системи бухгалтерського обліку й ін.) і можуть використовувати компоненти нижчих рівнів.
Компоненти кожного з виділених рівнів використовуються, як правило, на своєму або вищому рівні. Кожен рівень відбиває відповідний набір знань, умінь і навичок фахівців, що створюють або використовують компоненти. Цей набір визначає відповідний розподіл фахівців програмної інженерії на аналітиків, системщиків, прикладників, програмістів й ін. При проєктуванні архітектури програмна система розглядається як композиція компонентів третього рівня з доступом до компонентів першого і другого рівнів. Тобто архітектурне проєктування — це розроблення компонентів третього рівня, визначення вхідних і вихідних даних рівнів ієрархії компонентів і їхніх зв’язків. Результат проєктування — архітектура й інфраструктура, що містять у собі набір об’єктів, з яких можна формувати деякий конкретний вид архітектурної схеми для конкретного середовища виконання системи, а також набір елементів керування і контролю. Проєктування архітектури системи завершується створенням опису, в якому відображені зафіксовані проєктні рішення, логічна і фізична структура системи, а також способи взаємодії об’єктів.
Області архітектури програмного забезпечення
Архітектурний стиль (англ. architectural style - це іменований набір сумісних архітектурних обмежень (англ. architectural constraints). Іменуються стилі для зручності посилання на них. Так як додавання архітектурного обмеження до стилю утворює новий стиль, ми можемо уявити всі можливі стилі як дерево, яке починається з нульового стилю (який не містить жодних обмежень). Якщо обмеження в стилях не кофліктують, стилі можна об'єднувати аби утворити гібридний стиль.
Невідповідність архітектурі (англ. architectural mismatch) - ситуація коли реалізація системи порушує обмеження архітектури яку вибрали для системи. Хоча загалом невідповідностей майже неможливо уникнути, їх варто ідентифікувати щоб вони не стандартизувалися.
Архітектура рекурсивна, і описується для кожного рівня абстракції. Крім того кожна фаза роботи системи має окрему архітектуру. Наприклад файл конфігурації є окремим елементом системи на етапі її запуску, але під час подальшої роботи дані що містились в ньому вже розподілені між іншими компонентами системи, і як окремий компонент він в цій фазі не присутній. Таким чином архітектура відрізняється від структури програмного забезпечення - остання стосується статичного коду, в той час як архітектура описується для системи що виконується. І хоча є переваги в тому аби архітектура системи відповідала структурі коду який її утворює, проте також є й перевага в тому аби різні компоненти архітектури використовували, наприклад, розподілювані бібліотеки.
Елементи архітектури поділяються на елементи обробки (англ. processing elements) які виконують перетворення даних, елементи даних (англ. data elements) які містять дані, і з'єднувальні елементи (англ. connecting elements), які з'єднують елементи обробки, не змінюючи даних які по них проходять. Хоча їх часто називають компонентами (англ. components) та конекторами (англ. connectors).
Компонент - це абстрактна одиниця коду програми та внутрішнього стану, яка дозволяє перетворення даних через свій інтерфейс. Архітектура не задає реалізацію компонента, а лише його інтерфейс і сервіси які він повинен надавати іншим компонентам.
Конектор дозволяє комунікацію між компонентами передаючи елементи даних між їх інтерфейсами, без зміни даних. Конектор може складатись з компонентів, на зразок стеку протоколів, але це деталі реалізації що не входять до архітектури.
Дані - це те що передається або приймається компонентами з допомогою конекторів. Прикладами є потоки байтів, сигнали, серіалізовані об'єкти і.т.п., окрім інформації що міститься всередині компонента. Так, з точки зору архітектури, файл - перетворення послідовності байт імені в послідовність байт вмісту, яке здійснює компонент файлової системи. Деякі компоненти можуть генерувати дані а не перетворювати їх, як у випадку пристроїв вводу.
Опис архітектури
Опис архітектури задіює принципи і практики моделювання та представлення архітектур, використовуючи такі механізми як: мови опису архітектури (англ. architecture description language), точки зору на архітектуру (англ. architecture viewpoint) та архітектурні каркаси (англ. architecture framework).
Мови опису архітектури
Більшість робіт на тему архітектури опублікованих наприкінці 1990-х стосувалися мов опису архітектури (англ. architecture desctiption languages, ADL). Мова опису архітектури - це мова що дозволяє явний опис архітектури, включаючи щонайменше компоненти, їх інтерфейси, конектори та конфігурацію архітектури.
Приклади:
- [en]
Цей розділ потребує доповнення. (січень 2017) |
Точки зору на архітектуру
Описи архітектури часто організовуються в [en], які є аналогами до різних типів [en] що створюються в архітектурі будівель.
Популярними моделями точок зору на архітектуру є [en], каталог точок зору та перспектив, та IBM views & viewpoint model.
Цей розділ потребує доповнення. (січень 2017) |
Архітектурні каркаси
Цей розділ потребує доповнення. (січень 2017) |
Методології проєктування
Ранні дослідження архітектури зосереджувались на методології проєктування систем. Наприклад об'єктно-орієнтований дизайн намагається структурувати проблеми так що вони розв'язуються архітектурою на основі об'єктів. Однією з перших методологій яка підкреслила проєктування саме на рівні архітектури була [en].
Приклади архітектурних моделей і стилів
- Архітектура класної дошки
- Клієнт-серверна архітектура
- Архітектури, побудовані навколо бази даних (Database-centric architecture)
- Розподілені обчислення
- Подієва архітектура
- Front end та back end
- Неявні виклики (Implicit invocations)
- Монолітний застосунок (Monolithic application)
- Peer-to-peer
- Пайпи і фільтри (англ. Pipes and filters)
- Plugin
- Representational State Transfer
- Rule evaluation
- Пошук-орієнтована архітектура
- Сервіс-орієнтована архітектура
- Shared nothing architecture
- Software componentry
- Space based architecture
- Структурована
- Багаторівнева
Див. також
Примітки
- Е. М. Пройдаков, Л. А. Теплицький. Англо-Український тлумачний словник з обчислювальної техніки, Інтернету і програмування. — СофтПрес. — С. 552. — .
- fielding, с. 5.
- fielding, с. 1.
- perry_wolf.
- fielding, с. 8.
- Чернецки К., Айзенекер У. Порождающее программирование. Методы, инструменты, применение. — Издательский дом «Питер», 2005. — 730 с.
- Рамбо Дж., Джекобсон А, Буч Г. UML: специальный справочник. — Питер, 2002. — 656 с.
- fielding, с. 2.
- . Software Engineering Institute. Архів оригіналу за 5 січня 2013. Процитовано 8 січня 2017.
- fielding, с. 27.
- fielding, с. 4.
- fielding, с. 6.
- fielding, с. 10.
- fielding, с. 11.
- О. Є. Коваленко. (PDF). Архів оригіналу (PDF) за 8 січня 2017. Процитовано 7 січня 2017.
- fielding та 21.
- Zelesnik, Gregory. . Carnegie Mellon University. Архів оригіналу за 19 квітня 2015. Процитовано 9 січня 2017.
- . Carnegie Mellon University. Архів оригіналу за 30 листопада 2020. Процитовано 9 січня 2017.
- . Архів оригіналу за 5 грудня 2016. Процитовано 9 січня 2017.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - . 8 січня 2008. Архів оригіналу за 10 січня 2017. Процитовано 9 січня 2017.
- fielding та 19.
Література
- Эммерих В. Конструирование распределенных объектов. Методы и средства программирования интероперабельных объектов в архитектурах OMG/CORBA, Microsoft COM и Java RMI. – М.: Мир, 2002. –510 с.
- Боггс У., Боггс М. UML Rational Rose. Бестселлер #, Лори.– Москва, 2000.-580 с.
- http://www.dossier-andreas.net/software_architecture/ [ 21 жовтня 2016 у Wayback Machine.]
- Fielding Roy. Architectural Styles and the Design of Network-based Software Architectures. — Каліфорнійський університет в Ірвайні, 2000. — 16 June. Архівовано з джерела 7 січня 2017. Процитовано 2009-02-20.
- Foundations for the study of software architecture // Software Engineering Notes. — [en], 1992. — Vol. 17, iss. 4 (16 June). — P. 40-52. з джерела 14 квітня 2021. Процитовано 2017-01-08.
- Shaw, Mary; DeLine, Robert; Klein, Daniel V.; Ross, Theodore L.; Young, David M.; Zelesnik, Gregory (1995-04). (PDF). IEEE Trans. Softw. Eng. 21 (4): 314—335. doi:10.1109/32.385970. ISSN 0098-5589. Архів оригіналу (PDF) за 9 січня 2017. Процитовано 8 січня 2017.
Це незавершена стаття про програмування. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Arhitektura programnogo zabezpechennya angl software architecture sposib strukturuvannya programnoyi abo obchislyuvalnoyi sistemi abstrakciya elementiv sistemi na pevnij fazi yiyi roboti Sistema mozhe skladatis z kilkoh rivniv abstrakciyi i mati bagato faz roboti kozhna z yakih mozhe mati okremu arhitekturu Doslidzhennya arhitekturi programnogo zabezpechennya namagayetsya viznachiti yak najkrashe rozbiti sistemu na chastini yak ci chastini viznachayut ta vzayemodiyut odna z odnoyu yak mizh nimi peredayetsya informaciya yak ci chastini rozvivayutsya poodinci i yak vse visheopisane najkrashe zapisati vikoristovuyuchi formalnu chi neformalnu notaciyu Arhitektura povinna buduvatis shob najkrashe vidpovidati vimogam do sistemi sho stvoryuyetsya zgidno principu en Zgidno Perry ta Wolf arhitekturoyu ye nabir elementiv sho mayut pevnu formu vlastivosti i obmezhennya sho nakladayutsya na elementi i yih en angl rationale Obgruntuvannya fiksuye motivi viboru pevnogo arhitekturnogo stilyu elementiv i obmezhen Roj Filding vvazhaye sho obgruntuvannya neobhidne na etapi stvorennya arhitekturi i korisne nadali ale ne ye nevid yemnim yiyi elementom Tomu sho arhitektura maye nabir vlastivostej sho dozvolyayut yij zadovolnyati vimogi i neznannya cih vimog mozhe prizvesti do zmin sho porushuyut arhitekturu ale do arhitekturi vhodyat vlastivosti a ne vimogi Napriklad mozhna ne znati sho v arhitekturu stola zakladenu vimogu stijkosti i tomu vin povinen mati bilshe dvoh nizhok Ne znayuchi pro cyu vimogu mi mozhemo vidpilyati zabagato nizhok i stil vpade Ale ce tomu sho mi porushili arhitekturne obmezhennya mati tri chi bilshe nizhok Terminom Arhitektura takozh nazivayut dokumentuvannya arhitekturi programnogo zabezpechennya Dokumentuvannya arhitekturi PZ sproshuye proces komunikaciyi mizh zacikavlenimi osobami dozvolyaye zafiksuvati prijnyati na rannih etapah proyektuvannya rishennya pro visokorivnevij dizajn sistemi i dozvolyaye vikoristovuvati komponenti cogo dizajnu i shabloni proyektuvannya povtorno v inshih proyektah OglyadOblast komp yuternih nauk z momentu svogo utvorennya zitknulasya z problemami pov yazanimi zi skladnistyu programnih sistem Ranishe problemi skladnosti virishuvalisya rozrobnikami shlyahom pravilnogo viboru struktur danih rozrobki algoritmiv i en Hocha termin arhitektura programnogo zabezpechennya ye vidnosno novim dlya industriyi rozrobki PZ fundamentalni principi ciyeyi oblasti nevporyadkovano zastosovuvalisya pionerami rozrobki PZ pochinayuchi z seredini 1980 h Pershi sprobi zrozumiti i poyasniti programnu arhitekturu sistemi buli povni netochnostej i strazhdali vid nestachi organizovanosti chasto ce bula prosto diagrama z blokiv z yednanih liniyami V 1990 ti roki sposterigayetsya sproba viznachiti i sistematizuvati osnovni aspekti danoyi disciplini Pochatkovij nabir shabloniv proyektuvannya arhitekturnih stiliv najkrashih praktik ta en buli rozrobleni protyagom cogo chasu Osnovnoyu ideyeyu disciplini arhitekturi PZ ye ideya znizhennya skladnosti sistemi shlyahom abstrakciyi i rozmezhuvannya povnovazhen Dosi nemaye zgodi shodo chitkogo viznachennya terminu arhitektura programnogo zabezpechennya Buduchi narazi disciplinoyu bez chitkih pravil pro pravilnij shlyah stvorennya sistemi proyektuvannya arhitekturi PZ ye poyednannyam nauki i mistectva Aspekt mistectva polyagaye v tomu sho bud yaka komercijna sistema peredbachaye nayavnist zastosuvannya abo Klyuchovi cili yaki maye sistema opisuyutsya z dopomogoyu en yak nefunkcionalni vimogi do sistemi takozh vidomi yak atributi yakosti yaki viznachayut yak bude povoditis sistema Atributi yakosti sistemi vklyuchayut v sebe vidmovostijkist zberezhennya zvorotnoyi sumisnosti rozshiryuvanist nadijnist suprovodzhuvanist dostupnist bezpeka zruchnist vikoristannya a takozh inshi yakosti Z tochki zoru koristuvacha programnoyi arhitekturi programna arhitektura daye napryam ruhu i virishennya zavdan pov yazanih zi specialnistyu kozhnogo takogo koristuvacha napriklad zacikavlenoyi osobi rozrobnika PZ Sluzhba tehnichnoyi pidtrimki specialista po suprovodu specialista po rozgortannyu PZ testera a takozh kincevih koristuvachiv U comu sensi arhitektura programnogo zabezpechennya naspravdi ob yednuye rizni tochki zoru na sistemu Mozhlivist ob yednati kilka riznih tochok zoru na sistemu ye argumentom na zahist neobhidnosti i docilnosti stvorennya arhitekturi she do etapu rozrobki PZ IstoriyaPochatok arhitekturi programnogo zabezpechennya yak koncepciyi bulo pokladeno v naukovo doslidnickij roboti Edsgera Dejkstri v 1968 roci i en na pochatku 1970 h Ci vcheni pidkreslili sho struktura sistemi PZ maye vazhlive znachennya i sho pobudova pravilnoyi strukturi kritichno vazhlivo Populyarnist vivchennya ciyeyi oblasti zrosla z pochatku 1990 h rokiv razom z naukovo doslidnickoyu robotoyu po doslidzhennyu arhitekturnih stiliv shabloniv mov opisaniya arhitekturi dokumentuvannya arhitekturi i formalnih metodiv U rozvitku arhitekturi programnogo zabezpechennya yak disciplini vidigrayut vazhlivu rol naukovo doslidnicki ustanovi Meri Shou i Devid Gerlan z universitetu Karnegi Mellon napisali knigu pid nazvoyu Arhitektura programnogo zabezpechennya perspektivi novoyi disciplini v 1996 roci v yakij visunuli koncepciyi arhitekturi programnogo zabezpechennya taki yak komponenti z yednuvachi connectors stili i tak dali U Kalifornijskomu universiteti v Irvajni institut po doslidzhennyu PZ nasampered doslidzhuye arhitekturni stili movi opisu arhitekturi i dinamichni arhitekturi Pershim standartom opisu programnoyi arhitekturi ye standart en ANSI IEEE 1471 2000 Rekomendaciyi po opisu perevazhno programnih sistem Vin buv prijnyatij v 2007 roci pid nazvoyu ISO ISO IEC 42010 2007 Proyektuvannya arhitekturi programnih sistemProyektuvannya arhitekturi PZ ce proces rozroblennya sho vikonuyetsya pislya etapu analizu i formulyuvannya vimog Zadacha takogo proyektuvannya peretvorennya vimog do sistemi u vimogi do PZ i pobudova na yihnij osnovi arhitekturi sistemi Pobudova arhitekturi sistemi zdijsnyuyetsya shlyahom viznachennya cilej sistemi yiyi vhidnih i vihidnih danih dekompoziciyi sistemi na pidsistemi komponenti abo moduli ta rozroblennya yiyi zagalnoyi strukturi Proyektuvannya arhitekturi sistemi mozhe provoditisya riznimi metodami standartizovanim ob yektno oriyentovanim komponentnim i in kozhnij z yakih proponuye svij shlyah pobudovi arhitekturi a same viznachennya konceptualnoyi ob yektnoyi j inshih modelej za dopomogoyu vidpovidnih konstruktivnih elementiv blok shem grafiv strukturnih diagram tosho Ob yektnij pidhid Dokladnishe Ob yektno oriyentovane programuvannya Proyektuvannya sistemi mozhe zdijsnyuvatisya na osnovi ob yekto oriyentovanogo modelyuvannya PrO metodom UML yakij dozvolyaye vrahovuvati aspekti vlastivi diyuchim osobam aktoram sistemi stvoryuvati scenariyi vikonannya sistemi tosho Ob yektnij stil proyektuvannya ce dekompoziciya majbutnoyi sistemi na okremi pidsistemi paketi viznachennya funkcionalnih i nefunkcionalnih vimog i ob yektnoyi modeli predmetnoyi oblasti Nosiyami interesiv mozhlivostej i dij v sistemi abo paketi ye diyuchi osobi aktori Paket mozhe skladatisya z ob yektnoyi modeli variantiv vikoristannya sho viznachayut scenariyi povedinki sistemi sklad ob yektiv i metodiv yihnoyi vzayemodiyi Povedinka ob yektiv vidobrazhuyetsya diagramami sho zadayut poslidovnist vzayemodiyi ob yektiv diagrami poslidovnostej vzayemodiyi pravilami perehodu vid stanu do stanu diagrami staniv a takozh diagramami kooperaciyi v yakih diyuchi osobi zobrazhuyutsya grafichno Ob yekti i vidpovidni yim diagrami variantiv vikoristannya zadayut zagalnu arhitekturnu shemu sistemi u ramkah yakoyi zdijsnyuyetsya realizaciya strukturi i specifiki povedinki komponentiv Zagalna koncepciya ob yektnogo proyektuvannya ce pobudova vsih scenariyiv ekrannih diagram dlya keruvannya nimi i yih viprobuvannya v riznih variantah vikoristannya Na vibir variantiv vikoristannya vplivayut nefunkcionalni vimogi napriklad zabezpechennya konfidencijnosti shvidkodiyi j in Na osnovi modeli opisu vimog i ponyat provoditsya utochnennya skladu i zmistu funkcij sistemi metodiv yihnoyi realizaciyi u viglyadi scenariyiv i diagram potokiv danih u yakih vidobrazhayetsya vzayemodiya ob yektiv yak obmin povidomlennyami mizh elementami sistemi dlya peredachi danih i oderzhannya vidpovidi pislya vikonannya operacij Modeli vimog viznachayut priznachennya i misce vimog u takih sistemah Comu spriyayut rozrobleni nacionalni korporativni i vidomchi standarti Voni fiksuyut pravila formuvannya nefunkcionalnih vimog u yakih vidobrazhayutsya vidomosti pro vzayemodiyu i zahist danih u sistemi Pri comu povedinka ob yektiv predstavlyayetsya diagramami UML voni mozhut utochnyuvatisya pri pereglyadi modelej vimog i skladu ob yektiv sistemi Pereglyad pochinayetsya z vimog i poshuku misc lokalizaciyi dlya vnesennya neobhidnih zmin u model Zmini mozhut stosuvatisya funkcionalnih i nefunkcionalnih vimog u zv yazku z utochnennyam zamovnikom obmezhen na strukturu sistemi vikoristovuvani resursi j umovi seredovisha yiyi funkcionuvannya Zagalnosistemnij pidhid Odin zi shlyahiv arhitekturnogo proyektuvannya tradicijnij neformalnij pidhid do viznachennya arhitekturi sistemi yiyi komponentiv sposobiv yihnogo podannya j ob yednannya v sistemu yakij mozhna nazvati zagalnosistemnim Faktichno arhitektura sho stvoryuyetsya zgidno z takim pidhodom ye chotiririvnevoyu i mistit u sobi sistemni komponenti Voni zdijsnyuyut vzayemodiyu z periferijnimi pristroyami komp yuteriv printeri klaviatura skaneri manipulyatori i t p vikoristovuyutsya pri pobudovi operacijnih sistem zagalnosistemni komponenti Voni zabezpechuyut vzayemodiyu z universalnimi servisnimi sistemami seredovisha roboti prikladnoyi sistemi takimi yak operacijni sistemi SKBD sistemi baz znan sistemi keruvannya merezhami i t p specifichni komponenti pevnoyi prikladnoyi oblasti sho vhodyat do skladu komponentiv programnoyi sistemi i priznacheni dlya rozv yazannya zadach v mezhah oznachenoyi oblasti napriklad biznes zadachi prikladni programni sistemi sho priznacheni dlya vikonannya zavdan z obrobki informaciyi yaki postayut pered okremimi grupami spozhivachiv informaciyi z riznih predmetnih oblastej ofisni sistemi sistemi buhgalterskogo obliku j in i mozhut vikoristovuvati komponenti nizhchih rivniv Komponenti kozhnogo z vidilenih rivniv vikoristovuyutsya yak pravilo na svoyemu abo vishomu rivni Kozhen riven vidbivaye vidpovidnij nabir znan umin i navichok fahivciv sho stvoryuyut abo vikoristovuyut komponenti Cej nabir viznachaye vidpovidnij rozpodil fahivciv programnoyi inzheneriyi na analitikiv sistemshikiv prikladnikiv programistiv j in Pri proyektuvanni arhitekturi programna sistema rozglyadayetsya yak kompoziciya komponentiv tretogo rivnya z dostupom do komponentiv pershogo i drugogo rivniv Tobto arhitekturne proyektuvannya ce rozroblennya komponentiv tretogo rivnya viznachennya vhidnih i vihidnih danih rivniv iyerarhiyi komponentiv i yihnih zv yazkiv Rezultat proyektuvannya arhitektura j infrastruktura sho mistyat u sobi nabir ob yektiv z yakih mozhna formuvati deyakij konkretnij vid arhitekturnoyi shemi dlya konkretnogo seredovisha vikonannya sistemi a takozh nabir elementiv keruvannya i kontrolyu Proyektuvannya arhitekturi sistemi zavershuyetsya stvorennyam opisu v yakomu vidobrazheni zafiksovani proyektni rishennya logichna i fizichna struktura sistemi a takozh sposobi vzayemodiyi ob yektiv Oblasti arhitekturi programnogo zabezpechennyaArhitekturnij stil angl architectural style ce imenovanij nabir sumisnih arhitekturnih obmezhen angl architectural constraints Imenuyutsya stili dlya zruchnosti posilannya na nih Tak yak dodavannya arhitekturnogo obmezhennya do stilyu utvoryuye novij stil mi mozhemo uyaviti vsi mozhlivi stili yak derevo yake pochinayetsya z nulovogo stilyu yakij ne mistit zhodnih obmezhen Yaksho obmezhennya v stilyah ne kofliktuyut stili mozhna ob yednuvati abi utvoriti gibridnij stil Nevidpovidnist arhitekturi angl architectural mismatch situaciya koli realizaciya sistemi porushuye obmezhennya arhitekturi yaku vibrali dlya sistemi Hocha zagalom nevidpovidnostej majzhe nemozhlivo uniknuti yih varto identifikuvati shob voni ne standartizuvalisya Arhitektura rekursivna i opisuyetsya dlya kozhnogo rivnya abstrakciyi Krim togo kozhna faza roboti sistemi maye okremu arhitekturu Napriklad fajl konfiguraciyi ye okremim elementom sistemi na etapi yiyi zapusku ale pid chas podalshoyi roboti dani sho mistilis v nomu vzhe rozpodileni mizh inshimi komponentami sistemi i yak okremij komponent vin v cij fazi ne prisutnij Takim chinom arhitektura vidriznyayetsya vid strukturi programnogo zabezpechennya ostannya stosuyetsya statichnogo kodu v toj chas yak arhitektura opisuyetsya dlya sistemi sho vikonuyetsya I hocha ye perevagi v tomu abi arhitektura sistemi vidpovidala strukturi kodu yakij yiyi utvoryuye prote takozh ye j perevaga v tomu abi rizni komponenti arhitekturi vikoristovuvali napriklad rozpodilyuvani biblioteki Elementi arhitekturi podilyayutsya na elementi obrobki angl processing elements yaki vikonuyut peretvorennya danih elementi danih angl data elements yaki mistyat dani i z yednuvalni elementi angl connecting elements yaki z yednuyut elementi obrobki ne zminyuyuchi danih yaki po nih prohodyat Hocha yih chasto nazivayut komponentami angl components ta konektorami angl connectors Komponent ce abstraktna odinicya kodu programi ta vnutrishnogo stanu yaka dozvolyaye peretvorennya danih cherez svij interfejs Arhitektura ne zadaye realizaciyu komponenta a lishe jogo interfejs i servisi yaki vin povinen nadavati inshim komponentam Konektor dozvolyaye komunikaciyu mizh komponentami peredayuchi elementi danih mizh yih interfejsami bez zmini danih Konektor mozhe skladatis z komponentiv na zrazok steku protokoliv ale ce detali realizaciyi sho ne vhodyat do arhitekturi Dani ce te sho peredayetsya abo prijmayetsya komponentami z dopomogoyu konektoriv Prikladami ye potoki bajtiv signali serializovani ob yekti i t p okrim informaciyi sho mistitsya vseredini komponenta Tak z tochki zoru arhitekturi fajl peretvorennya poslidovnosti bajt imeni v poslidovnist bajt vmistu yake zdijsnyuye komponent fajlovoyi sistemi Deyaki komponenti mozhut generuvati dani a ne peretvoryuvati yih yak u vipadku pristroyiv vvodu Opis arhitekturi Opis arhitekturi zadiyuye principi i praktiki modelyuvannya ta predstavlennya arhitektur vikoristovuyuchi taki mehanizmi yak movi opisu arhitekturi angl architecture description language tochki zoru na arhitekturu angl architecture viewpoint ta arhitekturni karkasi angl architecture framework Movi opisu arhitekturi Bilshist robit na temu arhitekturi opublikovanih naprikinci 1990 h stosuvalisya mov opisu arhitekturi angl architecture desctiption languages ADL Mova opisu arhitekturi ce mova sho dozvolyaye yavnij opis arhitekturi vklyuchayuchi shonajmenshe komponenti yih interfejsi konektori ta konfiguraciyu arhitekturi Prikladi en Cej rozdil potrebuye dopovnennya sichen 2017 Tochki zoru na arhitekturu en Opisi arhitekturi chasto organizovuyutsya v en yaki ye analogami do riznih tipiv en sho stvoryuyutsya v arhitekturi budivel Populyarnimi modelyami tochok zoru na arhitekturu ye en katalog tochok zoru ta perspektiv ta IBM views amp viewpoint model Cej rozdil potrebuye dopovnennya sichen 2017 Arhitekturni karkasi Cej rozdil potrebuye dopovnennya sichen 2017 Metodologiyi proyektuvannya Ranni doslidzhennya arhitekturi zoseredzhuvalis na metodologiyi proyektuvannya sistem Napriklad ob yektno oriyentovanij dizajn namagayetsya strukturuvati problemi tak sho voni rozv yazuyutsya arhitekturoyu na osnovi ob yektiv Odniyeyu z pershih metodologij yaka pidkreslila proyektuvannya same na rivni arhitekturi bula en Prikladi arhitekturnih modelej i stiliv Dokladnishe Arhitekturni shabloni programnogo zabezpechennya Arhitektura klasnoyi doshki Kliyent serverna arhitektura Arhitekturi pobudovani navkolo bazi danih Database centric architecture Rozpodileni obchislennya Podiyeva arhitektura Front end ta back end Neyavni vikliki Implicit invocations Monolitnij zastosunok Monolithic application Peer to peer Pajpi i filtri angl Pipes and filters Plugin Representational State Transfer Rule evaluation Poshuk oriyentovana arhitektura Servis oriyentovana arhitektura Shared nothing architecture Software componentry Space based architecture Strukturovana BagatorivnevaDiv takozhArhitektura komp yutera Arhitektura pidpriyemstva Sistemna arhitekturaPrimitkiE M Projdakov L A Teplickij Anglo Ukrayinskij tlumachnij slovnik z obchislyuvalnoyi tehniki Internetu i programuvannya SoftPres S 552 ISBN 966 530 070 9 fielding s 5 fielding s 1 perry wolf fielding s 8 Chernecki K Ajzeneker U Porozhdayushee programmirovanie Metody instrumenty primenenie Izdatelskij dom Piter 2005 730 s Rambo Dzh Dzhekobson A Buch G UML specialnyj spravochnik Piter 2002 656 s fielding s 2 Software Engineering Institute Arhiv originalu za 5 sichnya 2013 Procitovano 8 sichnya 2017 fielding s 27 fielding s 4 fielding s 6 fielding s 10 fielding s 11 O Ye Kovalenko PDF Arhiv originalu PDF za 8 sichnya 2017 Procitovano 7 sichnya 2017 fielding ta 21 Zelesnik Gregory Carnegie Mellon University Arhiv originalu za 19 kvitnya 2015 Procitovano 9 sichnya 2017 Carnegie Mellon University Arhiv originalu za 30 listopada 2020 Procitovano 9 sichnya 2017 Arhiv originalu za 5 grudnya 2016 Procitovano 9 sichnya 2017 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya 8 sichnya 2008 Arhiv originalu za 10 sichnya 2017 Procitovano 9 sichnya 2017 fielding ta 19 LiteraturaEmmerih V Konstruirovanie raspredelennyh obektov Metody i sredstva programmirovaniya interoperabelnyh obektov v arhitekturah OMG CORBA Microsoft COM i Java RMI M Mir 2002 510 s Boggs U Boggs M UML Rational Rose Bestseller Lori Moskva 2000 580 s http www dossier andreas net software architecture 21 zhovtnya 2016 u Wayback Machine Fielding Roy Architectural Styles and the Design of Network based Software Architectures Kalifornijskij universitet v Irvajni 2000 16 June Arhivovano z dzherela 7 sichnya 2017 Procitovano 2009 02 20 Foundations for the study of software architecture Software Engineering Notes en 1992 Vol 17 iss 4 16 June P 40 52 z dzherela 14 kvitnya 2021 Procitovano 2017 01 08 Shaw Mary DeLine Robert Klein Daniel V Ross Theodore L Young David M Zelesnik Gregory 1995 04 PDF IEEE Trans Softw Eng 21 4 314 335 doi 10 1109 32 385970 ISSN 0098 5589 Arhiv originalu PDF za 9 sichnya 2017 Procitovano 8 sichnya 2017 Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi