В этом уроке вы узнаете, что такое архитектура ПО, кто её проектирует и как системный аналитик в этом участвует.
С возвращением! Устраивайтесь поудобнее — есть что рассказать.
К RANA.Software обратился онлайн-кинотеатр Оtium. Сервис существует уже несколько лет, у него большая и разнообразная библиотека — тысячи фильмов, сериалов и шоу. В этом году Оtium планирует добавить на платформу телеканалы, чтобы расширить аудиторию.
Архитектор Оtium Ксения решила, что оптимальным вариантом реализации задачи с телеканалами будет добавление нового сервиса. Чтобы создать сервис, нужна команда, так что Оtium пригласили RANA.Software в качестве подрядчиков.
Архитектор Ксения
Ребята, привет! Рада, что будем работать вместе! Нам очень не хватало рук!
Даня
Стоп! Айгуль, я ничего не понимаю. Почему именно Ксения решает, КАК добавить телеканалы на платформу?
Айгуль
Она отвечает за архитектуру ПО. Ксения — архитектор 😉
Даня
Хм, а мы что будем делать? Проектировать архитектуру не будем?
Айгуль
Скажем так, мы будем участвовать в этом процессе. Сейчас объясню!
Архитектура
Термин «архитектура» стали использовать в IT-индустрии из-за сходства структуры ПО с архитектурой здания.
Здание имеет сложную организацию. Оно состоит из множества конструктивных элементов (фасада, фундамента, стен, лестниц, лифтов), отдельных помещений с разным назначением, водопроводных труб, электрических проводов, элементов освещения, а также декоративных элементов (лепнины, колонн, барельефов) и других составляющих.
Внутреннее устройство здания невозможно понять целиком и во всех возможных деталях. Архитектура упрощает представление здания, отбрасывая лишнюю на данный момент информацию, мешающую пониманию его внутреннего устройства.
Для обслуживания здания очень важны инженерные сети: отопления, электроснабжения, водоснабжения, канализации, вентиляции и другие. Все они связаны между собой. Например, для нагнетания воздуха в воздуховоды необходимо электричество.
Здание проектируют множество специалистов до начала его строительства или реконструкции. Например, каждую инженерную сеть продумывает отдельный инженер. При этом инженеры учитывают связи сетей между собой.
В результате проектирования архитектуры специалисты составляют её описание — проект. Так как здание имеет сложную организацию, составить один чертёж для всей архитектуры здания невозможно.
Поэтому проект состоит из множества чертежей и документации к ним. Например, он включает в себя отдельные чертежи каждой инженерной сети: теплоснабжения, водоснабжения, водоотведения, вентиляции, кондиционирования и других.
Специалисты также составляют отдельные чертежи, необходимые заинтересованным в проектировании и строительстве здания лицам. Например, по требованиям МЧС, нужен план эвакуации при пожаре.
Архитектура ПО
Системы, которые разрабатывают в IT-индустрии, как и здания, имеют сложную организацию, которую также невозможно понять целиком и во всех возможных деталях.
Система (System) — это совокупность программного обеспечения, аппаратного обеспечения и других компонентов, взаимодействующих между собой для достижения одной или нескольких целей.
Архитектура ПО упрощает представление системы, отбрасывая лишние на данный момент детали, мешающие пониманию её внутренней организации.
Архитектура программного обеспечения (Software Architecture) — это набор моделей программного обеспечения системы.
Проектированием архитектуры ПО занимается архитектор ПО. Это член команды разработки, обладающий широким техническим кругозором и глубокими знаниями о разработке ПО. Архитекторами ПО становятся, как правило, опытные разработчики.
Системный аналитик принимает участие в проектировании архитектуры ПО, разрабатывая требования к ПО и участвуя в её описании.
Основная задача системного аналитика — предоставить архитектору ПО информацию, необходимую для проектирования архитектуры ПО:
Требования к операционной среде.
Пользовательские и функциональные требования.
Нефункциональные требования.
Как вы будете работать с архитектурой ПО
В спринте «Разработка требований» вы научились описывать пользовательские и функциональные требования.
В этом спринте вы узнаете, как описывают архитектуру ПО и чем может помочь системный аналитик. Вы также изучите основные стили архитектуры ПО, их преимущества и недостатки.
Вы научитесь описывать требования к операционной среде и нефункциональные требования, а также увидите, как они могут повлиять на архитектуру ПО.
Наконец, вы научитесь читать диаграмму компонентов (UML Component Digram), которую часто используют для описания архитектуры ПО.