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

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

📑 Основа документации
Архитектура служит основой для всех документов и спецификаций, которые создает системный аналитик. Это позволяет правильно сформулировать требования и обеспечить их соответствие архитектурным решениям.

🚀 Быстрое освоение
Знание архитектуры позволяет системному аналитику быстрее разбираться в новых проектах и системах, что значительно ускоряет процесс адаптации и работы над новыми задачами.

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

📊 Оценка затрат
Знание архитектуры помогает оценивать затраты времени и ресурсов на разработку, что критически важно для планирования и управления проектами.

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

🤝 Взаимодействие с командой
Понимание архитектуры делает взаимодействие с разработчиками, архитекторами и другими членами команды более продуктивным и целенаправленным.

📈 Предсказание проблем
Знание архитектуры помогает предсказать возможные проблемы с производительностью и масштабируемостью системы, что позволяет принимать меры заранее и избегать серьёзных сбоев.

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

#ARCHITECTURE
👍71
📚 Напоминаем основные тактические архитектуры ПО

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

🏛 Монолит
Монолитная модель представляет собой единую, неделимую систему. В этой архитектуре все компоненты приложения объединяются в одну программу, работающую на одной платформе. Это делает систему целостной, но одновременно менее гибкой для изменений.

🔗 Сервис-ориентированная архитектура (SOA)
SOA основана на проектировании и разработке отдельных сервисов, каждый из которых выполняет определенную работу или бизнес-функцию. Эти сервисы взаимодействуют друг с другом, обеспечивая согласованную работу различных приложений.

☁️ Бессерверная архитектура (Serverless)
Этот подход позволяет разработчикам создавать и развертывать приложения без необходимости управлять серверами. Бессерверная архитектура полагается на облачных провайдеров, которые автоматически распределяют и управляют вычислительными ресурсами по мере необходимости, обеспечивая гибкость и масштабируемость.

#ARCHITECTURE
👍3🔥1
🤣14😐1🤷1
📚 Атрибуты качества по Карлу Вигерсу

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

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

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

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

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

#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