Архитектура ПО

1. Введение в архитектуру ПО
Определение: Архитектура ПО – это набор решений о структуре, компонентах и взаимодействиях программной системы.

Зачем нужна?
• Определяет, насколько ПО удобно, надежно и масштабируемо.
• Помогает команде разработчиков понимать, как строить систему.

2. Основные принципы архитектуры ПО
1. Разделение ответственности (SoC) – разные части системы выполняют конкретные задачи.

2. Масштабируемость – ПО должно работать стабильно при увеличении нагрузки.

3. Отказоустойчивость – ПО продолжает работать даже при сбоях.

4. Паттерны проектирования
• MVC (Model-View-Controller) – разделяет логику, интерфейс и данные.

3. Методы описания архитектуры
C4-модель – визуализация системы на разных уровнях детализации.
UML-диаграммы – используются для документирования архитектуры.

4. Групповая динамика и коммуникации
Как договариваться о технологиях?
• Архитекторы проводят воркшопы и обсуждают плюсы/минусы.

Как внедрять архитектурные решения?
• Через код-ревью и внутренние гайды.

Выводы
• Архитектура ПО определяет удобство и эффективность работы системы.
• Хорошо продуманная архитектура = успешный бизнес.
• Важна командная работа между архитекторами, разработчиками и аналитиками.

Тестирование ПО

1. Введение в тестирование
Определение: Тестирование ПО – процесс проверки работоспособности системы и выявления ошибок.

Зачем нужно?
• Помогает избежать серьезных сбоев.

Виды тестирования:
Модульное – тестирование отдельных функций.
Интеграционное – проверка взаимодействия модулей.
Системное – тестирование всей системы.
Приемочное – проверка соответствия требованиям заказчика.

2. Подходы к тестированию
1. Ручное тестирование – тестировщик проверяет систему вручную.

2. Автоматизированное тестирование – используется код для автоматической проверки.

3. Методы тестирования
Unit-тестирование – тестирование отдельных компонентов.
Интеграционное тестирование – тестирование взаимодействия частей системы.
Нагрузочное тестирование – проверка системы под высокой нагрузкой.
Регрессионное тестирование – проверка работы старого функционала после обновлений.

4. Групповая динамика и коммуникации в тестировании
Как оформлять баг-репорты?
• Четкое описание ошибки + шаги воспроизведения.

Совместная работа с разработчиками
• Важно быстро находить и исправлять ошибки.

Выводы
• Тестирование помогает избежать ошибок и потерь.
• Разные виды тестирования важны на каждом этапе разработки.
• Командная работа между тестировщиками и разработчиками ускоряет процесс исправления ошибок.

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