Разлика между архитектура и дизайн в софтуера

Често използваме тези две ключови думи в ежедневния си трудов живот „Дизайн“ и „Архитектура“. Каква е действителната разлика в дизайна и архитектурата?

Архитектурата е логическата реализация на Софтуера.

Дизайнът е физическата реализация на Софтуера.

Архитектурата описва какво и къде трябва да правим, докато дизайнът илюстрира как да правим нещата.

Архитектурата се занимава с основни неща, докато проектирането се занимава с подробно изпълнение.

Архитектурата осигурява подреждане на компоненти или модули на високо ниво. Като има предвид, че дизайнът осигурява подробно подреждане в рамките на компонента как те комуникират помежду си, какъв модел на дизайн се използва за решаването на този проблем. Как да разбием сложността и кой модел на дизайн е приложим. Архитектът осигурява подреждане на компоненти на високо ниво, оставя модули или дизайн на компоненти на дизайнера на модули.

Архитектурата поддържа нефункционални изисквания (като дърводобив, балансиране на натоварването, устойчивост на повреди, поддържан облак, тестов подход, документация, мащабируемост, сигурност, поддръжка и др.) И трябва да бъде прегледана и одобрена от други архитекти. Функционалното изискване за поддръжка на дизайна и промените в дизайна са вътрешни за компонента, докато промените в архитектурата се отнасят до архитектурната промяна

Ето защо казахме, че е трудно да променим архитектурата, защото нашите дизайнерски компоненти или модули зависят от нея и ако променим архитектурата, ние също трябва да променим компонентите.

Технически пример: Имаме трислоен патрон за архитектура, в който разделихме сложността си на три различни слоя. Сега слоят ми за представяне на приложение е в уеб форма и сега искам то да се промени в MVC модел. Това, което трябва да направим, променя само презентационния слой.

Сега искам да добавя показателя за регистрация или производителност в нашето приложение, така че да мога да измервам ефективността на приложението, сега тази промяна принадлежи на архитектурата, защото трябва да променя всички слоеве в приложението, за да поддържа това изискване.

Общ пример: - Нека предположим, че имаме проект на многоетажна сграда, преди да започнем строителството, имаме различен фактор за имотите и близо до площ като пазари, електроснабдяване, водоснабдяване, земетръсна зона, подкрепа за конвенционални и неконвенционални източници на енергия и т.н. Това са нефункционални изисквания, сега архитектът събира цялата тази информация, започва да създава архитектура, която е одобрена от правителството. След одобрението започваме да създаваме сградата и според изискването, ние поддържаме максимум апартаменти с 4 спални, които да създадем в нашата сграда. Ако трябва да поддържаме апартамент с 5 спални, тогава трябва да преработим архитектурата си. Тоест казахме, че архитектурата е трудно да се промени. Сега ние създаваме апартамент, в който клиентът посочва своето изискване, като им трябва 3 спални, кухня, обърната на север и така нататък. Всички тези изисквания са специфични за дизайна, това не засяга нашата архитектура на сградата. Сега някой иска да захранва слънчевата енергия в апартамента си, сега ако нашата архитектура поддържа конвенционалния източник на енергия, тогава ние ще предоставим опцията.

Мисля, че примерът обяснява основната разлика между архитектурата и дизайна.

Споделете мнението си по този въпрос. Моля, вижте този линк за представяне.