Russian Association of Software Architects
4.34K subscribers
101 photos
10 videos
15 files
312 links
Канал самоуправляется коллегией: @sergey486 и @emacsway . Бот для вступления в авторский коллектив: @ru_arc_bot

Группы:
@ru_arc_chat
@rasa_business
@archicases

Рекламу не размещаем.
Download Telegram
Весь мир хайпует на AI и я очень хотел, чтобы на ArchDays появились выступления о практических применениях AI/LLM в архитектурной функции или хотя бы в каких-то других аспектах SDLC. И знаете с чем столкнулся?

Где-то внутри компаний уже год идут исследования, где-то несколько месяцев, по-разному, но рассказать пока никому и нечего, а я узнавал у не малого числа знакомых из разных компаний. Но, - нет, не образовалось пока подтвержденных, готовых к использованию, надежных примеров, ну кроме каких-то совсем базовых «допиши за меня код» и то… в промышленной разработке, где этот код нужно понимать и развивать - так себе.

И вот решил написать сюда, на широкую публику, - есть у кого-нибудь успешные кейсы, в первую очередь в архитектуре, во вторую - на любой практике SDLC, которые можно было бы оформить в метод или практику или паттерн?

Напишите в комментариях, или в личку, может быть подойдет и будет интересно для ArchDays.
👍8😁2
The Scrum Guide Expansion Pack
Updated: June 11, 2025
Authors: Jeff Sutherland, John Coleman, Ralph Jocham
https://scrumexpansion.org/scrum-guide-expansion-pack/
👍8👎3🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16👎2🔥1
Forwarded from ScrumTrek
Запись ArchDays Meet Up доступна для просмотра

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

В записи:
▪️ разбор реального решения
▪️ ADR, Trade-off Analysis и шаблоны для оценки вариантов
▪️ фасилитация как инструмент согласования решений

📌Кстати, если вам близка эта тема — загляните в Школу Архитектора ПО от Сергея. Это тренинг с глубокой проработкой архитектурных подходов, включая AI и автоматизацию.

Смотрите видео, делитесь мнением и следите за анонсами в канале, чтобы не пропустить следующие встречи.

📱 ВКонтакте
📱 YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
👍253
Во время аудита арх. функции у заказчика родилась фраза:
«Производительность должна быть высокой» — это не требование, это – молитва
:)
😁26🙏6👏4
Forwarded from Systems Education
13 июля (вс) в 18:00 мск проведём вебинар на тему «CAP-теорема в реальном мире на примере баз данных и реальных систем»

Разберем эволюцию баз данных и пару примеров на основе задач из System Design Interview с применением этих знаний. Вебинар будет продолжением доклада Андрея на System Design, спикер дополнит большим количеством примеров на основе задач из интервью.

▫️План вебинара:
1. Эволюция баз данных
2. Как индустрия отвечала на проблему масштабирования?
3. CAP-теорема и PACELC
4. Что такое распределенные транзакции и Distributed SQL?
5. Разберем разные компромиссы на примере разных настроек ScyllaDB, а затем рассмотрим их на примере двух типичных задач с технических собеседований

▫️Кому будет полезен вебинар:
Разработчикам, техлидам, тимлидам, аналитикам и менеджерам разработки, которым интересно лучше разбираться в распределенных системах и понимать компромиссы, которые нужно делать при проектировании.

▫️Ведущий вебинара — Андрей Манаков
— Работает инженером-программистом около 13 лет
— Имеет опыт в различных областях, включая разработку для десктопа, мобильных устройств и веба
— В последние 10 лет основная сфера интересов — распределённые системы
— В настоящее время занимается разработкой инфраструктуры для машинного обучения в Sharechat
— В свободное время пишет посты о распределённых системах и базах данных в своем блоге

👥 У всех слушателей будет возможность задать вопросы в режиме реального времени

Регистрация обязательна
🔥42
Прекрасная история :)
Forwarded from Alex
Плять, 4 часа вся система была в дауне.

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

Раббит кластер начал задыхаться. Система обнаружила что кьюшки заполняются, и триггернула scale up.

Все нахер заскейлилось и открыло овердохуа коннекшенов к раббиту.

Раббит перестал принимать новые коннекшены и вообще отказался даже UI показывать.

Сервисы начали отваливаться по таймауту на отправку в раббит, и крашиться по невозможности подключения.

Монолит ушел в себя, а так как 80% сервисов зависят от монолита хотя бы от одного еедпоинта, все каскадно начало падать по таймаутам.

4 часа танцев с бубном, поддержкой, енфорсинга scale down, увеличения кластера...

Ожили... первый раз такое. Было и миллион месседжей в памяти переживали. А тут на 600к умер. Размер месседжа решает 🥲
21😱11😁10👍4🥰2
Я сейчас активно применяю AI в PDLC, так как канал архитектурный, поделюсь наблюдениями в части архитектуры на основе проектов с клиентами.

1. Мусор на входе - мусор на выходе. AI анализирует данные и здесь очень большая проблема. Сейчас же только ленивый не идет в AI и с чем сталкивается сразу на входе? Либо данных нет, либо они в ужасном состоянии, либо они с огромными пробелами, разбросаны, в итоге мы получаем фрагментированный и непригодный контекст. Если раньше можно было отложить на второй план управление тех долгом, не уделять должного внимания документации, то теперь, если вы хотите получить преимущество от использования AI, придется эти долги отдавать, иначе он выдает какую-то глупость. А отдать этого долг AI никак не помогает, у него просто нет входной иформации. И вот мы начинаем проводить event storming, архитектурые воркшопы, архитектурную базу знаний (структуру документации), чтобы ее можно было начать использовать с AI и только после этого (не совсем только) получить значительный эффект.
2. Для архитектуры очень важен бизнес-контекст, а он обычно тоже слабо описан. Структурированное описание бизнес-требований, с метриками и бизнес-архитектурой тоже становятся достаточно важными. Еще очень важным становится качественный discovery-цикл. AI может прекрасно обрабатывать со всех сторон результаты интервью клиентов, но если интервью проведено плохо – ничего не поможет, поэтому навык проведения интервью (а тут уже AI особо не поможет) тоже достаточно важен. Опрос AI в некоторой роли тоже не сильно помогает, потому что у каждой компании свой контекст, который публично не транслируется за пределы компании того, с кем проводите интервью.
3. Все-таки AI в ближайшее время на заменит архитектора, политику никто не отменял. Он даст гипотезы, подсказки, кучу материалов, но окончательное решение, валидация и ответственность будет все равно за архитектором, поэтому развитие архитектурных скилов критически важно (да, и навык критисеского мышления становится еще более важным, потому что AI порой выдает очень уверенно и обоснованно чепуху). Сильного архитектора, если у него в материалах порядок и у бизнеса в материалах порядок AI действительно очень сильно усиливает, проверено.

В общем, очень похоже на микросервисы. Микросервисы - это архитектурный стиль, один из многих. Чтобы спроектировать хорошее микросервисное решение, нужно хорошо понимать фундамент архитектуры, проектирования распределенных систем и DevOps и микросервисы тогда становятся всего лишь одним из стилей в арсеналей архитектора. С AI выглядит точно так же. Так что потребность в базе никуда не делась, а, видимо, стала даже более важной, иначе мы рискуем получить тысячи нерабочих решений и экспоненциальный рост техдолга.
💯16🔥65👍2
Книга "Cloud Native Data Security with OAuth: A Scalable Zero Trust Architecture"

Совсем недавно, вот буквально в марте, вышла новая книга на тему Identity & Access Management. Я уже писал, что интересных книг про IAM знаю совсем немного, поэтому, конечно, обрадовался такому событию.

Книга аффилирована с компанией Curity, ее авторы как раз там и работают. Поскольку ранее я уже отмечал свое положительное впечатление о качестве публикуемых компанией материалов, к книге изначально тоже подходил с определенными надеждами =)
Также у Gary Archer, одного из авторов, очень достойные ответы на Stack Overflow, не раз их встречал.

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

В книге четыре принципиальных части:
📚 Part I. Introducing Cloud Native OAuth
📚 Part II. Securing APIs with Tokens
📚Part III. Operating Cloud Native OAuth
📚Part IV. Securing API Clients

Собственно, их и намереваюсь рассмотреть, начав с первой.

#book #iam_general #oauth
🔥1
Первая часть обзора книги "Cloud Native Data Security with OAuth: A Scalable Zero Trust Architecture"

В первой главе авторы пробуют ответить на вопрос: “А зачем нам вообще OAuth?”.

И уже с первой страницы главы авторы делают мне приятно и используют понятие “аутентификация запросов”, ставим лайк. А вот сама аргументация “за” использование OAuth здесь не сильно впечатлила:
🔵Как будто больше маркетинга, чем рациональных доводов
🔵В доводах указываются вещи, которые я бы не связал напрямую с OAuth
🔵Не хватило секции “почему не что-то другое”

Ну то есть я, будучи сам сторонником использования OAuth, читая, вижу натянутость приведенных аргументов. Но я-то для себя об этом думал, и у меня есть другие! А вот если читать будет скептически настроенный критик… Или юный неокрепший ум… Не знаю, в общем.
Тут же авторы приводят пояснение, что они понимают под Cloud Native:
Cloud native is a technology approach for operating services and infrastructure in a vendor-neutral way.

Как говорится, а мужики-то не знают! Интересное определение, да? В общем, приведенное описание Cloud Native здесь не понял, как будто “в общих словах” все.

После вводной главы об основах OAuth и OIDC, в третьей, авторы переходят к понятию API security architecture. Тут мне откликнулась мысль о выделении ключевой триады функций и соответствующих им ключевых компонентов:

1️⃣ Identity & Access Management — Authorization Server
2️⃣ API Management — API Gateway
3️⃣ Entitlement Management — Policy Engine

Я очень солидарен с тем, что в современных системах, говоря о вопросах IAM, мало думать только про “аутентификацию и авторизацию”, как говорили раньше. В том числе в более расширенном смысле на это смотрит и концепция Identity Fabrics, про которую писал ранее (пост 1, пост 2).
Модные названия у такой расширенной области могут быть разными, как разными могут быть и ее границы. Вот такой краткий вариант с выделением трех базовых и понятных функций-компонентов тоже хорош, поскольку позволяет для их рассмотрения абстрагироваться от прочих деталей.

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

Авторы обращают внимание на существование различных категорий данных у authorization server. Приведенная конкретно здесь классификация показалась чуть странной, но в целом сама мысль верная. Подумав в эту сторону, мы можем увидеть, что данные различаются своими характеристиками, жизненными циклами, характерами нагрузки и пр. И, например, понять, что для разных данных нам (внезапно) могут понадобиться различные хранилища (СУБД). Для примера можно посмотреть, как аналогичный подход применяют RooX в своем UIDM, используя несколько СУБД, в том числе Tarantool для хранения токенов и сессий.

Говорится о подходах к определению пользовательских данных, которые уместно хранить на стороне authorization server. Рассматривают различные подходы к работе с атрибутами пользователя, в том числе и такой, где сам authorization server может сходить в другой сервис за данными пользователя, которые хранятся там. Я уже писал о кейсе, когда это может быть применимо, разбирая Rich Authorization Requests (RAR).

Также авторы упоминают и про довольно важные вещи вроде управления конфигурациями, мультитенантности и мультирегиональности.

Кстати, пользовательская миграция через SCIM показывается на примере любопытной задачки: вот есть такие-то собранные в кучу данные (AS IS), давайте приведем их к желаемому виду, разделив на identity-данные и бизнес-данные (TO BE). Мне подумалось, что такой кейс может быть здорово рассмотреть в процессе собеседования, чтобы посмотреть, как кандидат смотрит на подобные вопросы. Выглядит пока незаезженно 😈

#book #iam_general #oauth
Please open Telegram to view this post
VIEW IN TELEGRAM
4
[1/2] Вторая часть обзора книги “Cloud Native Data Security with OAuth

Продолжаю писать про данную книгу. Также напомню, что ее можно получить бесплатно.

Вторую часть книги авторы посвящают использованию токенов для обеспечения безопасности API и начинают с главы 5 - «Secure API Development».

Авторам нравится идея, когда конечные сервисы работают только с self-contained, JWT токеном доступа (мне такая идея тоже нравится, кстати), а сами clients могут использовать другие, различные временные учетные данные.

Говорят про валидацию JWT, затрагивают проверку подписи и ротацию ключей. Также отмечают, что лучше не забывать про тесты с невалидными JWT, чтобы иметь уверенность, что валидация работает, как надо.

Авторы отделяют проверку JWT от самой проверки авторизации, и далее как раз пишут и про нее. Например, упоминают о возможности использования scopes для «грубой» (coarse) проверки авторизации. При этом пишут, что scopes могут помочь задать некоторые «границы» применения токена, но не предоставляют, естественно, сами по себе полного решения задач проверки авторизации.

В контексте обработки истечения времени жизни токенов говорят про «короткое» время жизни токенов доступа, отмечая, что такие токены живут меньше, чем «users’ sessions». Это любопытно, потому что я как раз таким же образом выводил определение короткого времени жизни в докладе “Refresh token в веб-приложениях: быть или не быть?” (надеюсь, скоро доберусь опубликовать материал в виде статьи).

Переходят к вопросам тестирования. Предлагают подход разделения самого JWT и уже того, что называют «claims principal object» - как модельку уже. Из этого исходит идея, что можно тогда покрывать логику проверки авторизации юнит-тестами, используя в качестве фикстуры различные вариации этого «claims principal object».
Также рассказывают, как можно имитировать OAuth-обвязку для тестирования работы конечного сервиса: создать свою ключевую пару, замокать JWKS URI и настроить сервис на работу с ним. Тогда с приватным ключом из ключевой пары можно наподписывать себе любых токенов, что как раз удобно для различных тестов. Ну и с таким подходом, соответственно, поощряют разработчиков к более частому и легкому запуску тестов изолированно, локально – без необходимости поднимать какие-то еще сервисы для обвязки.

Дальше авторы переходят к вопросам проектирования и использования самих access tokens. Предлагают рассматривать access token как контракт, причем даже если он является непрозрачным (opaque), потому что, например, увеличив длину токена, можно тоже поломать чью-нибудь работу.

Пишут, что scopes не являются полным решением для [проверки] авторизации, однако они как раз формируют область действия для токена (я бы сюда еще добавил и audiences). Соответственно авторы тоже говорят о том, что используя скоупы client может получить access token для конкретных целей, ну и что их всегда стоит ограничивать.

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

Упоминая claims, напоминают, что помещая их в токен, authorization server как бы “ручается” за их содержимое, и конечные сервисы будут им доверять. Поэтому важно не помещать непроверенную информацию в содержимое клˈеймов.
Говорят про различные источники данных для клеймов, отмечают и факт, что часто меняющиеся значения не являются хорошими кандидатами на помещение в claims, потому что могут быстро стать неактуальными.

Также в этой главе авторы приводят определенный подход к дизайну scopes и claims, в том числе с учетом дальнейшей эксплуатации и масштабирования.

Затрагивают такую тему, как передача, распространение токенов (token sharing). Кратко разбирают такие подходы, как token exchange и embedding tokens in tokens. Упоминают и про использование токенов доступа при асинхронных операциях: что делать, когда проверка токена может произойти значительно позже отправки сообщения с ним.

(продолжение см. ниже)

#book #iam_general #oauth.
[2/2] Вторая часть обзора книги “Cloud Native Data Security with OAuth

Далее переходят к вопросам безопасного использования токенов доступа. Один из авторов, Michal Trojanowski, кстати, ранее так и писал в одной из своих статей:
While secure flows are essential, they should be complemented by a keen focus on access tokens.


Авторы пишут про различные форматы токенов доступа и про работу с ними: интроспекция, token exchange, the split token pattern.

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

Затем авторы решают рассказать про использование API Gateway и service mesh. Приводят краткую справку, как и что устроено в контексте Kubernetes, упоминая про Ingress и Gateway API.

Авторы пишут, что на их взгляд, ключевым фактором при выборе API Gateway является расширяемость, подводя к дальнейшему рассмотрению работы с токенами доступа, того что называют “token termination”.

Такая token termination в видении авторов состоит из двух задач:
🔵валидация входящих временных учетных данных
🔵трансляция их в JWT access token для конечных сервисов.
А дальше авторы как раз разбираю эти задачи для непрозрачных токенов доступа, cookies и sender-constrained токенов.

Говорится:
We have seen that your overall API security is distributed between the API gateway APIs, and possibly additional components such as service meshes.


В конце главы читателя ждет небольшой пример использования API Gateway (авторы используют Kong) в Kubernetes. Также здесь авторы демонстрируют пример использования ранее упомянутой расширяемости: пишут плагин на Lua, чтобы реализовать схему с двумя видами токенов доступа (как они это называют - the Phantom Token Approach).

На протяжении данной главы авторы на это несколько раз намекали, а здесь уже прямо показывают, что реализовывать такую схему они предлагают через RFC 9701 JSON Web Token (JWT) Response for OAuth Token Introspection. Однако мне не очень нравится использование данного RFC для решения обозначенной задачи:
🔵Здесь получаете не отдельный токен доступа в виде JWT, а обернутый в JWT тот же ответ от introspection endpoint
🔵Таким образом два представления токена доступа полноценно не “развязать”: полученный JWT не ограничить отдельно по времени жизни или области действия
🔵Сами авторы RFC пишут, что возвращаемый здесь JWT “is not an alternative representation of the introspected access token and is not intended to be used as an access token

В девятой главе авторы переходят к рассмотрению вопросов контроля доступа. Рассматривают кратко такие модели контроля доступа, как RBAC, ReBAC, ABAC (а еще упоминают понятие RAdAC).

Понравилось высказывание о том, что недостаточно только лишь хорошо продумать правила доступа, важно не упускать из фокуса и процесс наделения субъектов полномочиями (например, назначение ролей пользователям). Таким образом подчеркивают, что нужно стараться не допускать “overprivileged accounts”.

Интересна и часть, где авторы описывают преимущества использования выделенной entitlement management system (EMS):
🔵Flexibility (API работают только с предоставленным результатом, саму логику контроля доступа можно изменять, не ломая их)
🔵Auditability (имеем события аудита как для применения политик, так и их для изменения)
🔵Security agility (отделение ЖЦ политик доступа от ЖЦ конечных сервисов)
🔵Quality assurance via policy as code (если политики прописываются отдельно, сами сервисы могут не тестировать их внутреннюю логику, а покрывать только возможные исходы)

В завершение кратко упоминают про P*P-концепцию и рассказывают про использования Open Policy Agent (OPA), заодно показывая небольшой пример использования языка Rego.

#book #iam_general #oauth.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥1🙏1
🎙 Пропустили ArchDays MeetUp 3 июля? Запись уже доступна!

Тема «Почему ваш микросервис — это не микросервис, а распределённый монолит?»
Сергей Баранов разобрал, как мнимая модульность превращается в головную боль, и почему иногда монолит — это не провал, а осознанное решение.

Смотрите, где удобно:
YouTube
VK Видео

🗓 А уже 17 июля в 11:00 (GMT+3) — следующий митап ArchDays MeetUp!

📌 Тема: Архитектура для не-технарей: как объяснить сложное просто?
Поговорим о soft skills архитектора:
— какие диаграммы и метафоры реально работают,
— как доносить ценность архитектурных решений на языке выгод,
— и как не провалить презентацию, даже если тема — суперсложная.

🔗 Зарегистрироваться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍21👎1
Дима Дзюба всем передает привет:

«В своем докладе на ArchDays 24 "Enterprise governance c доставкой в продукт" я рассказывал про инструменты AaaC, которые мы разрабатываем и применяем в Beeline. Я обещал, что мы начнем их выкладывать в Opensource. И вот, с некоторым опозданием, мы начали выкладывать наши инструменты. Первым выложили плагин к Visual Studio Code для работы с архитектурой в нотации Structurizr DSL https://github.com/tech-beeline »
👍51
Forwarded from Сергей Баранов
Мы продолжаем набор спикеров на конференцию ArchDays!

Это первая в РФ конференция по архитектуре, получившая достаточно серьезное признание за 6 лет проведения.

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

Уверен, компаниям участников этого чата есть чем поделиться.

Конференция пройдет 7 ноября в Москве, подаваться на сайте: http://archdays.ru

Если нужны пояснения, то можно написать мне в ЛС.

Сегодня опубликуем первые включенные в программу выступления
Сколько вы сейчас в компании одновременно используете облачных провайдеров, вроде AWS, Cloud.ru, SberCloud и так далее.
Anonymous Poll
38%
0
38%
1
15%
2
4%
3
2%
4
2%
5+
Архитектор без выстроеннное архитектурной функции – это как отличный футболист, может быть даже с мячом, но без поля и правил. Давайте поговорим об архитектурной функции.

Почему именно сейчас?
Я скоро выпущу статью о проблемах, с которыми сталкиваемся не только мы в свете последнних событий, но и в целом мир, а именно – решения становятся сложнее, риски нарастают, технологии меняются, подходы к работе тоже меняются.

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

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

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

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

Напишите свое мнение, либо опишите свою ситуацию, либо вопросы, либо критику, все, что покажется полезным.

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

Спасибо,
Сергей Баранов
17👍16🔥5❤‍🔥1
Рассказывая про атрибуты качества, я раньше приводил в пример страницу из Википедии, их тут перечисленно 92 штуки.

Иногда выводил из на один слайд, получается впечатляюще.

Но теперь я нашел ещё более ужасающую картинку.

Это граф, в котором перечислено 162(!) атрибута качества и 104 примера требований, связанных с этим ограничениями. У каждого атрибута есть описание, то есть это не просто картинка, а целая энциклопедия (на английском).

Кажется, это исчерпывающий каталог атрибутов качества, куда уж больше.

Основа тут - восемь главных областей. Система должна быть:
- Надежной (Reliable)
- Безопасной (Safe), иногда переводят "свободной от неприемлемых рисков" - никого не убьет и не обанкротит, ничего не разрушит
- Защищенной (Secure) от атак, у нас обычно именно это называют "безопасностью"
- Пригодной к использованию (Usable)
- Подходящей (Suitable), пригодной для этих условий, функций и ограничений
- Эффективной (Efficient), тут деньги против ресурсов
- Работоспособной (Operable), то есть её можно запустить и поддерживать в работоспособном состоянии
- Гибкой (Flexible), легко можно менять. Coupling and Cohession - сюда.

Можно посмотреть примеры формулировок нефункциональных требований (тоже на английском): https://quality.arc42.org/requirements/

Требования описаны в трехчастной схеме: контекст-источник-метрика/критерий приемки.

Авторы говорят, что подход ISO 25010 не слишком прагматичный, поэтому они разработали свой . Возьмите, говорят, 7 категорий стейкхолдеров (пользователи, менеджмент, эксперты в предметной области, владелец продукта, разработчики, тестировщики, админы), и спросите у них, что им важно из общих или конкретных качеств системы. Ну да, из этих 162.

Получится очень прагматично.
👍91😁1