Архитектура системы описывает ее основные компоненты, их связи (структуры) и то, как они взаимодействуют друг с другом. Архитектура и дизайн программного обеспечения включают в себя несколько сопутствующих факторов, таких как бизнес-стратегия, атрибуты качества, динамика человеческих ресурсов, дизайн и ИТ-среда.

Мы можем разделить архитектуру и дизайн программного обеспечения на две отдельные фазы: архитектура программного обеспечения и дизайн программного обеспечения. В архитектуре нефункциональные решения отлиты и разделены функциональными требованиями. В дизайне, функциональные требования включены в структуру.

#### ![проектирование](/sites/default/files/inline-images/man-wearing-black-and-white-stripe-shirt-looking-at-white-212286.jpg)**Программная архитектура**

- Архитектура служит чертежом системы. Она обеспечивает абстракцию для управления комплексной системы и создания механизма связи и координации между компонентами.
- Она определяет структурированное решение для удовлетворения всех технических и эксплуатационных требований, оптимизируя общие атрибуты качества, такие как производительность и безопасность.
- Кроме того, она включает в себя ряд важных решений об организации, связанных с разработкой программного обеспечения, и каждое из этих решений может оказать значительное влияние на качество, эксплуатацию, производительность и общий успех конечного продукта.

Эти решения включают в себя −

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

![Архитектура программного обеспечения](/sites/default/files/inline-images/%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_0.jpg)

#### **Разработка программного обеспечения**

Проектирование программного обеспечения - это план архитектуры, который описывает элементы системы, как они соотносятся и работают вместе для выполнения требований системы. Задачи разработки:

- Согласование системных требований и определить ожидания клиента, маркетинга и управленческого персонала.
- Действовать по чертежу в процессе разработки.
- Ориентироваться на выполнение задач, включая детальное проектирование, кодирование, интеграцию и тестирование.

####  

#### **Цели архитектуры**

Основной целью архитектуры является определение требований, влияющих на структуру приложения. Хорошо продуманная архитектура снижает бизнес-риски, связанные с построением технического решения и строит мост между бизнесом и техническими требованиями.

Некоторые из других целей заключаются в следующем:

- Раскрыть структуру системы, но скрыть детали ее реализации.
- Реализовать все варианты использования и сценарии.
- Учитывать требования различных заинтересованных сторон.
- Обрабатывать как функциональные, так и качественные требования.
- Улучшать положения компании на рынке.
- Улучшать качество и функциональность, предлагаемое системой.
- Повышать внешнее доверия к организации или системе.