О чём курс
Курс является введением в системную архитектуру (архитектуру ПО) и знакомит с ключевыми практиками: выявление требований, проектирование, документирование, анализ и оценка архитектуры, а также даёт представление о месте архитектуры в жизненном цикле разработки ПО.
В данном курсе вы познакомитесь с основными понятиями и контекстом архитектуры ПО, с практикой идентификации существенных требований, проектирования, документирования и анализа, которые архитектор ПО может применять в своей работе для проектов с различной предметной областью и технологической базой.
Теоретический материал подкреплён примерами, практическими письменными и устными упражнениями. Вторая часть каждого дня курса даёт возможность применить эти практики, работая в команде по 3-4 человека: необходимо проработать пример от постановки бизнес-целей к черновому архитектурному документу. Тренер и другие команды дают оценку и ставят новые вызовы вашему решению.
Цели
Для архитектора - систематизировать накопленный опыт, выровнять свои знания и представления со знаниями индустрии, узнать о практиках и методах, которые помогут вам обеспечивать долгосрочный успех ваших систем, ознакомиться с содержанием современных отечественных (ГОСТ) и международных (ISO) стандартов документирования, обменяться живым опытом с другими архитекторами.
Для ведущего разработчика - понять, в чем заключается работа архитектора, и какие навыки следует развивать, какие новые области осваивать для овладения данной специальностью.
Для аналитика - разобраться, как разделить обязанности с обязанностями архитектора, что лучше требовать от архитектора, а что наоборот, должен предоставить аналитик. Понять, как лучше поделить управление требованиями и общение с разными стейкхолдерами между аналитиком и архитектором; почувствовать на собственном опыте, с какими вопросами и сложностями сталкиваются архитекторы в своей работе.
Для руководителя проекта - прояснить, нужна ли в подразделении выделенная позиция архитектора, что теряет проект, если такой позиции нет. Чем должен заниматься специалист на этой позиции, какие цели и задачи необходимо ставить архитектору и как правильно оценивать его работу.
Целевая аудитория
Основная:
- 1.архитекторы;
- 2.технические лидеры и ведущие разработчики;
- 3.системные аналитики и проектировщики.
Дополнительная:
- 1.менеджеры проектов, качества, предпродажной подготовки;
Даже если в организационной структуре не выделена отдельная позиция архитектора, представление о практиках работы с архитектурой ПО совершенно необходимо разработчикам и тех. лидерам для того, чтобы обеспечить долгосрочное внутреннее и внешнее качество создаваемых систем и достигать целей проектов.
Для аналитиков и менеджеров курс также очень полезен, так как даёт достаточно подробное понимание работы архитектора, методов этой работы, и того, как необходимо со своей позиции поддерживать и обеспечивать эту работу. Знания и навыки, которые получают участники тренинга, фундаментальны и в силу этого применимы в проектах для любой предметной области и в процессах, построенных по любым методологиям разработки.
Предварительная подготовка
- Опыт в программной инженерии в различных ролях более трех лет.
- Более 1 года участия в проектах разработки ПО в одной из ролей, указанных в целевой аудитории.
- Базовые знания английского языка.
Для кого
Разработчик
Бизнес-аналитик
Системный аналитик
Архитектор ПО
Руководитель проекта
Улучшаемые навыки
выявление требований, паттерны проектирования, документирование, анализ и оценка архитектуры, Quality Attribute Workshop (QAW), архитектурные тактики, Service Oriented Architecture (SOA), стили архитектуры, микросервисная архитектура, монолит, Architecture Decision Records (ADR), Модель С4, ATAM, ARID, CBAM, Фитнес-функции
Темы курса
01
Введение в курс (теория - 2 ч.)
Контекст, основные понятия, обзор дисциплины проектирования и анализа архитектур программных систем, роль архитектора.
02
Архитектура в жизненном цикле проекта разработки ПО (теория - 2 ч.)
Применение изученных архитектурных практик в жизненном цикле проектов разработки ПО, их сочетание с разными проектными методологиями, в т. ч. гибкими (Agile) методологиями разработки. Разновидности роли архитектора, взаимодействие с ролями аналитика и менеджера проекта.
03
Инициация проекта (теория - 2 ч., практика - 2 ч.)
Взаимосвязь архитектуры с системным окружением
(техническим и организационным_, заинтересованными сторонами и бизнес-целями.
Выявление заинтересованных сторон и бизнес-целей.
04
Идентификация требований (теория - 3 ч., практика - 3 ч.).
Формализация и приоритезация требований к
характеристикам качества системы: производительность и масштабируемость,
доступность, безопасность, изменчивость и пр.
05
Проектирование архитектуры (теория - 3 ч., практика - 3 ч.)
Понятие тактики проектирования, метод проектирования
архитектуры от атрибутов качества (Attribute Driven Design, ADD). Процесс
принятия решений, паттерны, подходы, стили. Типичные тактики для достижения
основных характеристик качества.
06
Документирование архитектуры (теория - 3 ч., практика - 3 ч.)
Назначение и структура описания архитектуры; подход «точек зрения» (viewpoints) и архитектурных представлений (views); детальное рассмотрение нескольких распространённых наборов «точек зрения» (“Kruchten 4+1” и “Rozanski & Woods”), использование техник моделирования в документировании; перспективы применённых тактик для достижения требуемых характеристик качества системы; типовой шаблон описания архитектуры; использование упрощённого описания на начальных этапах проекта; применение альтернативных техник описания архитектуры ПО (C4, cloudfront).
07
Архитектурный анализ (теория 3 ч., практика 1 ч.)
Формальные процессы анализа и оценки архитектуры с
вовлечением различных заинтересованных сторон, выявление принятых компромиссных
решений и архитектурных рисков, дальнейшая работа с рисками. Методыд
оценки
ATAM (Architecture
Tradeoff Analysis
Method), ARID (Active
Reviews for Intermediate Designs),
CBAM (Cost-Benefit
Analysis Method).
Модуль 3
Практика в командах 1 (анализ бизнес-задачи);
Практика в командах 2 (анализ требований);
Практика в командах 3 (анализ примеров);
Практика в командах 4 (простейший архитектурный план);
Практика в командах 5 (простейший архитектурный план (продолжение).
Модуль 4
Практика в командах (проект черновой архитектуры).
Модуль 5
Практика 1 (работа с представлениями);
Практика 2 (анализ стоимости);
Практика
3 (ARID (слайд 53 с практикой скрыт по решению эксперта, по этой теме сделан
упрощенный вариант практики на слайде 54) – для данной практики в методических
рекомендациях есть пример плана ее проведения.
Чему вы научитесь
01
Разрабатывать архитектурные решения, которые соответствуют требованиям бизнеса и техническим спецификациям
02
Поддерживать и развивать программное обеспечение
03
Анализировать и выбирать технологии и инструменты, которые лучше всего подходят для реализации архитектуры, учитывая производительность, масштабируемость и поддерживаемость
04
Управлять изменениями в архитектуре программного обеспечения, что позволит вам адаптироваться к новым требованиям и технологиям без значительных затрат времени и ресурсов
05
Взаимодействовать с другими членами команды, включая разработчиков, тестировщиков и менеджеров, что улучшит процесс разработки и повысит качество конечного продукта