🍀BitBitGo🍀 Системный Анализ
3.32K subscribers
226 photos
159 videos
121 links
Курс «Системный анализ»
https://bitbitgo.by/
Пишем про системный анализ.
Поможем стартануть в карьере IT. Присоединяйся!
Download Telegram
📚 Атрибуты качества по Карлу Вигерсу

Атрибуты качества — это вид нефункциональных требований, которые описывают характеристики сервиса или производительность продукта.

🔍 Как они классифицируются?
Один из способов классификации атрибутов качества основан на разделении на внешние и внутренние характеристики.

🌐 Внешние характеристики важны для пользователей и проявляются в процессе использования продукта.

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

Скоро мы опубликуем список внешних и внутренних атрибутов качества с их описанием и примерами. Не пропустите!

#REQUIREMENTS
🔥8👍2
🤣7😁1
🔍 Внутренние атрибуты качества ПО: примеры и вопросы для анализа 🚀

Когда мы говорим о внутренних атрибутах качества программного обеспечения, важно помнить, что они не наблюдаются напрямую во время выполнения приложения. Давайте рассмотрим этот вопрос на примере разработки мобильного приложения для знакомств. 📱❤️

Эффективность (Efficiency)
Эффективность — это показатель того, насколько эффективно система использует производительность процессора, дисковое пространство, оперативную память и пропускную способность сети.

Вопросы для сбора требований:
🤔 Какое число одновременно работающих пользователей ожидается сейчас и в будущем?

📉 Насколько могут ухудшиться время отклика и другие показатели производительности, прежде чем это начнет серьезное отрицательно сказываться на работе пользователей и бизнес-операциях?

⚙️ Сколько операций система должна выполнять одновременно в нормальных и экстремальных условиях работы?


Примеры требований:
💻 Использование ресурсов: Не менее 30% процессора и памяти должны оставаться свободными даже при пиковой нагрузке.
📈 Нагрузка: Приложение должно поддерживать не менее 20 000 пользователей одновременно в первые 6 месяцев и 50 000 через год.
🔄 Транзакции: Сервер должен обрабатывать не менее 10 000 транзакций в секунду в пиковой нагрузке и 3000 транзакций в нормальных условиях.
📡 Скорость передачи данных: Приложение должно обеспечивать скорость передачи данных не менее 2 Мбит/с для корректной работы всех функций, включая обмен сообщениями и загрузку изображений.
🚨 Система должна отображать предупреждение оператору, когда нагрузка достигает 80% максимальной плановой мощности.

💡 Следите за обновлениями, где мы рассмотрим другие важные внутренние атрибуты!

#REQUIREMENTS
👍3
📢 Внимание! Набор на второй поток курсов по системному анализу от BitBitGo! 📊

Первый поток прошел с успехом, и теперь у вас есть шанс присоединиться ко второй группе! 🌟

🗓 Старт курса: 30 сентября
💰 Специальное предложение: Используйте промокод BitBitGo и получите дополнительную скидку 150 рублей!

На наших курсах вы освоите ключевые навыки системного анализа, научитесь эффективно решать задачи и принимать обоснованные решения. 🚀

Не упустите возможность прокачать свои знания и навыки! Количество мест ограничено!

👉 Записывайтесь прямо сейчас и становитесь частью нашего сообщества!
5
🔍 Продолжение темы: Внутренние атрибуты качества ПО 📱💻

Мерой переносимости (portability) можно считать усилия, необходимые для перемещения ПО из одной операционной среды в другую, например, с iOS на Android или наоборот. Некоторые специалисты считают интернационализацию и возможность локализации продукта частью его переносимости, поскольку по Вигерсу нет явно выделенных атрибутов качества, таких как локализация и интернационализация.

Вопросы для анализа:

📅 На каких других платформах должно работать ПО сейчас и в будущем?

🔄 Какие части продукта должны разрабатываться с расчетом на более высокую переносимость по сравнению с другими его частями?

📂 Какие файлы данных, программные компоненты и другие элементы системы должны быть переносимыми?

⚠️ Какие другие атрибуты качества могут пострадать при реализации переносимости в системе?

📊 Примеры:

📱➡️📲 Модификация версии приложения для iOS, чтобы оно могло работать на устройствах под управлением Android, должна требовать изменения не более 10% исходного кода.

🔖 У пользователя должна быть возможность переносить закладки браузера между Firefox, Internet Explorer, Opera, Chrome и Safari.

🛠 Средство миграции платформы должно переносить индивидуализированные профили пользователей без каких-либо усилий со стороны пользователей.

Следите за нашими публикациями, чтобы узнать больше о других важных атрибутах качества ПО! 🚀

#REQUIREMENTS
👍5
3😁1😢1
🔍 Продолжение темы: Внутренние атрибуты качества ПО — Масштабируемость 📈

Масштабируемость (scalability) — это способность приложения расти и обслуживать большее количество пользователей, данных, серверов, географических точек, транзакций, сетевого трафика и других сервисов без снижения производительности и корректности.

Вопросы для анализа масштабируемости:

🤔 Какова оценка общего числа и числа одновременных пользователей, которое должна обслуживать система через несколько месяцев, кварталов или лет?

📊 Какие минимально приемлемые критерии производительности должны быть удовлетворены независимо от числа пользователей?

💾 Не могли бы вы описать, как и почему в будущем могут вырасти потребности в мощностях хранения данных?

🌍 Каковы планы будущего роста в плане числа серверов, центров обработки данных или числа установленных экземпляров системы?

Примеры требований по масштабируемости:

☎️ Аварийная телефонная система должна обеспечить увеличение пропускной способности с 500 до 2500 звонков в день в течение 12 часов.

🌐 Веб-сайт должен справляться с 30-процентным ростом частоты запросов страниц в квартал на протяжении как минимум двух лет без ощутимого снижения производительности.

🏢 Система распространения должна поддерживать до 20 новых складских комплексов.

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

🔧 Архитектура приложения должна позволять добавление новых серверов для обработки увеличивающегося объема трафика без необходимости изменения кода.

💽 База данных должна выдерживать увеличение объема данных (профили пользователей, сообщения) без снижения скорости запросов.

🛠 Приложение должно быть построено на микросервисной архитектуре, что упростит масштабирование отдельных компонентов (например, чата, профилей).

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

📌 Следите за обновлениями, чтобы узнать больше о других атрибутах качества ПО!

#REQUIREMENTS
💯2
⚖️ Баланс работы и жизни: как системные аналитики находят время на всё?

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

🗓 Планирование и приоритизация
Эффективное планирование помогает расставлять приоритеты и концентрироваться на самых важных задачах. Важно уметь выделять главное и избегать ненужных отвлекающих факторов, что позволяет оптимально использовать своё время.

🧩 Разделение работы и личной жизни
Установление чётких границ между работой и отдыхом играет ключевую роль в сохранении баланса. Вне рабочего времени следует избегать работы, чтобы полноценно восстанавливаться и быть более эффективным в рабочие часы.

Тайм-менеджмент
Использование техник тайм-менеджмента, таких как метод Pomodoro и блокирование времени, помогает поддерживать продуктивность и находить время для личных дел.

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

🏋️ Забота о себе
IT-специалистам очень важно уделять время спорту и хобби. Регулярные занятия спортом и время, проведённое с близкими, помогают расслабляться и сохранять мотивацию для работы.

📚 Постоянное развитие
Профессиональное развитие и обучение позволяют системным аналитикам совершенствовать свои навыки, что помогает быстрее и эффективнее выполнять задачи.

💡 Заключение
Аналитики, которые находят баланс между работой и личной жизнью, делают это благодаря планированию, тайм-менеджменту и грамотному распределению задач. Эти навыки позволяют им быть успешными не только в карьере, но и в личной жизни.
👍2💯1
🤣8😁2
Метод Pomodoro: Как повысить продуктивность без стресса?

Метод Pomodoro — это популярная техника тайм-менеджмента, которая помогает повысить концентрацию и продуктивность. Принцип прост: работа делится на интервалы по 25 минут (называемых "помидорами"), разделённых короткими перерывами. После четырёх "помидоров" следует длинный перерыв.

📌 Как это работает?
1. Выберите задачу, на которой хотите сосредоточиться.
2. Установите таймер на 25 минут и работайте над задачей, пока таймер не прозвонит.
3. Сделайте короткий перерыв (5 минут), чтобы отдохнуть.
4. Повторите цикл ещё три раза, после чего сделайте длинный перерыв (15-30 минут).

🎯 Почему это эффективно?
Метод Pomodoro помогает избежать выгорания, разделяя работу на управляемые отрезки времени. Это повышает концентрацию и позволяет лучше контролировать свою продуктивность.

🚀 Совет: Попробуйте этот метод на следующей задаче и ощутите, как вы можете сделать больше с меньшими затратами энергии!
4🔥2
🤣5🔥1
Продолжение темы: Внутренние атрибуты качества — Проверяемость

🔍 Проверяемость (Verifiability) — важный атрибут программного обеспечения, также известный как тестируемость. Этот атрибут указывает на легкость, с которой можно проверить, что программные компоненты или интегрированный продукт соответствуют заявленным функциям системы.

Проверяемость и тестируемость:
💨 Как быстро разработчики и тестировщики могут подтвердить, что система реализована правильно?
💻 Конфигурация среды разработки должна быть идентичной конфигурации среды тестирования, чтобы избежать невоспроизводимости дефектов, выявляемых в тесте.

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

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

💡 Проверяемость играет ключевую роль в обеспечении качества программного обеспечения, помогая эффективно выявлять и устранять дефекты.

🚀Следите за обновлениями! В следующем посте мы разберём ключевые аспекты модификации программного обеспечения.

#REQUIREMENTS
🔥4
Продолжение темы: Внутренние атрибуты качества ПО — модификации (modifiability) 🛠

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

Примеры:

👨‍💻 Опытный программист, занимающийся техническим обслуживанием ПО, должен уметь обновлять существующие отчеты в соответствии с изменениями в законодательстве, затратив на разработку не более 10 рабочих часов.

📚 Вложенность вызываемых функций не должна превышать двух уровней.

🖨 Конструкция принтера должна позволять сертифицированному ремонтнику заменить модуль сканера не более чем за 10 минут.

🚨 Принтер должен отображать сообщение об ошибке, если новые картриджи были вставлены не в те гнезда.

Вопросы для анализа:

📝 Какой тип данных или контента вы хотите иметь возможность модифицировать?
(например, текст, изображения, видеоматериалы и т.д.)

🔄 Какие конкретные изменения вы хотите иметь возможность вносить в данные?
(например, редактирование, удаление, добавление новых элементов)

Кто будет ответственным за модификацию данных?
(например, администраторы, конечные пользователи, сторонние разработчики)

🔐 Какие уровни доступа к модификации данных вы планируете внедрить?
(например, разные роли пользователей с различными правами)

📱 Какой интерфейс или инструменты вы предпочли бы использовать для модификации данных?
(например, веб-интерфейс, мобильное приложение, API)

Как часто предполагается вносить изменения в данные?
(например, ежедневно, еженедельно, по мере необходимости)

📜 Как вы планируете отслеживать изменения и историю модификаций?
(например, ведение журнала изменений, версия данных)

Есть ли требования к валидации данных перед их модификацией?
(например, проверка формата, обязательные поля)

⚠️ Как вы хотите обрабатывать конфликты при одновременной модификации данных несколькими пользователями?
(например, блокировка записи, уведомления о конфликте)

🕹 Нужна ли возможность отката изменений или восстановления предыдущих версий данных?
(например, функция "отмены" или "восстановления")

🚀Следите за обновлениями! Мы подготовили ещё больше полезной информации о том, как эффективно модифицировать и адаптировать ПО!

#TESTING
👍4
🔍 Напоминаем о внешних атрибутах качества ПО 🌟

Внешние атрибуты качества описывают характеристики, которые наблюдаются при выполнении программного обеспечения.

Удобство установки (Installability) 💻
Показывает, насколько просто пользователю выполнить установку, переустановку или обновление ПО. Это важно для сокращения времени и затрат на установку, минимизации ошибок и снижения уровня квалификации, необходимого для выполнения этих операций.

Основные операции, которые охватывает удобство установки:
Начальная установка
🔄 Восстановление после неполной или некорректной установки
🔁 Переустановка той же версии
🚀 Установка новой версии
🔙 Возврат к предыдущей версии
Установка дополнительных компонентов и обновлений
Удаление ПО

Примеры:
🛠 Необученный пользователь должен суметь выполнить начальную установку приложения в среднем за 10 минут.

🛠 При установке обновленной версии приложения должна сохраняться вся настройка пользовательских параметров профиля, а также преобразовываться в формат данных новой версии, если это требуется.

🛠 Программа установки должна проверять правильность загруженного установочного пакета до начала процесса установки.

🛠 Для установки этого ПО на сервере требуются административные полномочия.

Вопросы для анализа:
Какие установочные операции должны выполняться без нарушения пользовательского сеанса?
Какие установочные операции потребуют перезагрузки приложения, компьютера или устройства?
Что должно приложение выполнить после удачной или неудачной установки?
Какие операции должны выполняться для подтверждения правильности установки?
Нужна ли пользователю возможность устанавливать, удалять, переустанавливать или исправлять только избранные части приложения? Если да, то какие?
Какие другие приложения нужно остановить перед выполнением установки?
Какие права, разрешения и привилегии нужны установщику?
Как должна система вести себя в случае незавершенной установки, например, по причине отключения питания или прерывания пользователем?

🚀 Следите за обновлениями! В следующих постах разберем другие важные атрибуты качества ПО.

#TESTING
👍4🔥1
⚙️ Как работает HTTPS и зачем он нужен?

HTTPS (HyperText Transfer Protocol Secure) — это безопасная версия HTTP, обеспечивающая защиту данных, передаваемых между вашим браузером и веб-сервером. Большинство сайтов используют HTTPS для защиты данных пользователей от перехвата и атак.

🔐 Шифрование данных
Когда вы посещаете сайт с HTTPS, между вашим браузером и сервером устанавливается защищённое соединение с использованием протоколов SSL/TLS. Эти протоколы создают уникальный сеансовый ключ для шифрования данных, таких как логины, пароли и номера карт, что делает их недоступными для злоумышленников. Данные шифруются симметричным ключом, обмен которым происходит через асимметричное шифрование.

Аутентификация и сертификаты
SSL/TLS сертификаты подтверждают подлинность сайта. Браузер проверяет, что сертификат выдан доверенным центром сертификации и соответствует домену. Это предотвращает атаки, где злоумышленники могут подделывать сайт и перехватывать ваши данные.

📊 Защита целостности данных
HTTPS также защищает данные от изменения во время передачи, используя механизмы целостности, такие как MAC (Message Authentication Code), чтобы убедиться, что данные не были изменены.

🛡Противодействие перехвату данных
В общественных местах подключение к Wi-Fi может быть незащищённым, и злоумышленники могут попытаться перехватить ваши данные. HTTPS гарантирует, что вся передаваемая информация надёжно защищена и хакерам не удастся получить к ней доступ. Даже если данные перехвачены, их расшифровка практически невозможна.

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

#SECURITY
👍6
Когда пытаешься хоть как-то монетизировать своё приложение.
🤣10😁4
📦 Контейнеризация и оркестрация: что это и зачем нужно?

🔍 Что такое контейнеризация?
Контейнеризация — это технология, которая позволяет упаковать приложение со всеми его зависимостями в единый контейнер. Это включает в себя библиотеки, конфигурационные файлы и всё необходимое для его работы. Контейнеры изолированы друг от друга и от операционной системы хоста, что делает их универсальными для запуска на любом сервере. Это похоже на упакованную коробку, которую можно переместить в любое место без необходимости заново собирать её содержимое. 📦

⚙️ Что такое оркестрация?
Контейнеризация хорошо справляется с упаковкой приложений, но что делать, если у вас сотни или даже тысячи таких контейнеров? Здесь на помощь приходит оркестрация. Оркестрация автоматизирует развертывание, управление и масштабирование контейнеров, распределяя их по серверам, следит за их состоянием и восстанавливает упавшие контейнеры. 🛠 Самым популярным инструментом оркестрации является Kubernetes.

Как это работает?
К примеру, Kubernetes распределяет контейнеры по доступным ресурсам, масштабирует их по мере необходимости, управляет обновлениями и восстанавливает контейнеры в случае сбоя. Это похоже на дирижёра, который следит за тем, чтобы весь оркестр (контейнеры) играл слаженно. 🎻

🚀 Зачем это нужно?

📈 Упрощение развертывания и масштабирования: Контейнеры делают приложение независимым от среды выполнения, что значительно упрощает его развертывание и масштабирование.

🌐 Гибкость и мобильность: Контейнеры легко перемещаются между серверами и облаками, что дает большую гибкость в выборе инфраструктуры.

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

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

#DEVOPS
👍3🔥31
UML Диаграммы: Ключ к успешному проектированию ПО

🔍 Что такое UML?
UML (Unified Modeling Language) — это универсальный язык моделирования, который используется для визуализации, спецификации, проектирования и документирования компонентов программного обеспечения. Это мощный инструмент, который помогает командам разработчиков и аналитиков создавать точные и понятные модели будущих систем.

Основные виды UML диаграмм:

📚 Диаграмма классов (Class Diagram)
Показывает классы, их атрибуты, методы и связи между ними. Это основа для моделирования статической структуры системы.

📊 Диаграмма последовательности (Sequence Diagram)
Отображает взаимодействие объектов во времени, показывая, как отправляются сообщения и выполняются действия в рамках одной операции.

📝 Диаграмма прецедентов (Use Case Diagram)
Описывает функциональность системы с точки зрения пользователя, показывая, какие задачи может выполнить пользователь с помощью системы.

🔄 Диаграмма деятельности (Activity Diagram)
Моделирует поток работ или операций, демонстрируя последовательность действий и условий, которые их запускают.

🔧 Диаграмма состояний (State Machine Diagram)
Показывает возможные состояния объекта и переходы между ними в ответ на события.

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

💡 Пример использования UML:
Когда команда работает над большим проектом, UML диаграммы помогают структурировать и документировать ключевые компоненты системы, описывая взаимодействие между ними. Это особенно полезно в распределенных командах, где нужно обеспечить единое видение проекта.

🚀 Следите за нашими обновлениями, чтобы узнать больше о методах и инструментах системного анализа!

#UML
👍6🔥41
This media is not supported in your browser
VIEW IN TELEGRAM
Опасно! Не повторять на собесах.
😁4😱2👍1👀1
🚀 Обзор BPMN движка Camunda

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

🔍 Что такое Camunda?
Camunda — это платформа для управления бизнес-процессами, которая поддерживает стандарты BPMN (Business Process Model and Notation), CMMN (Case Management Model and Notation) и DMN (Decision Model and Notation). Она помогает организациям автоматизировать и оптимизировать свои бизнес-процессы, обеспечивая их прозрачность и контроль.

Ключевые особенности Camunda:

📊 Моделирование процессов: Camunda поддерживает моделирование процессов на основе BPMN 2.0, что позволяет описывать бизнес-процессы в графическом формате.
🤖 Автоматизация: Возможность интеграции с различными системами и приложениями, что позволяет автоматически запускать и управлять процессами.
📈 Мониторинг и анализ: Встроенные инструменты для мониторинга выполнения процессов в реальном времени, а также для анализа производительности.
🛠 Гибкость: Возможность кастомизации и расширения движка для удовлетворения уникальных потребностей бизнеса.

Технические детали:

🔧 Архитектура: Camunda представляет собой легковесный движок, который можно внедрить в существующую ИТ-инфраструктуру. Он поддерживает работу как с SQL, так и с NoSQL базами данных.
🔗 Интеграция: Camunda легко интегрируется с такими технологиями, как Spring Boot, Java EE, и другими популярными фреймворками.
📡 Масштабируемость: Платформа поддерживает распределенную архитектуру, что позволяет масштабировать процессы в зависимости от нагрузки.

🌟 Почему стоит выбрать Camunda?
Camunda позволяет бизнесу автоматизировать сложные процессы, снижая издержки и увеличивая эффективность. Благодаря поддержке стандартов BPMN и гибким возможностям интеграции, Camunda подходит для компаний разных размеров и отраслей.

👉 Следите за нашими постами — скоро мы разберём реальные кейсы использования Camunda!

#BPMN
👍2🔥2