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

🔍 Разработка планов: Понимание требований позволяет системному аналитику разрабатывать эффективные и точные планы, что помогает избежать недоразумений и гарантирует соответствие конечного продукта ожиданиям заказчика.

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

📑 Создание документации: Требования служат основой для создания спецификаций и документации, необходимой на всех этапах разработки. Без четко определенных требований невозможно создать полноценную документацию.

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

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

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

🤝 Взаимодействие с бизнес-аналитиком: Знание требований помогает системному аналитику эффективно взаимодействовать с бизнес-аналитиком, что важно для согласования бизнес-целей и технических возможностей.

#REQUIREMENTS
Функции корпоративной сервисной шины (ESB)

📡 Маршрутизация сообщений
ESB обеспечивает механизм для маршрутизации сообщений между различными системами и сервисами, что позволяет эффективно управлять потоками данных.

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

🔗 Медиация
ESB может выполнять функцию посредника между различными протоколами и форматами сообщений, обеспечивая их взаимодействие и совместимость.

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

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

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

📅 Управление версиями
ESB обеспечивает управление версиями интерфейсов и сообщений, что позволяет эффективно обновлять и поддерживать интеграционные процессы без нарушения работы системы.

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

🚨 Управление ошибками и обработка исключений
ESB предоставляет механизмы для обработки ошибок и исключений в процессе интеграции, обеспечивая надежность и стабильность работы системы.

#BROKER
👍3🔥3🦄2
Когда у тебя есть ESB, и ты контролируешь все аспекты интеграции
🤣4👍2
🌐 Мифы о длине запросов: GET vs POST

На просторах интернета часто встречается утверждение, что длина GET-запроса ограничена 2048 символами, в то время как POST-запросы могут передавать данные без каких-либо ограничений. Но так ли это на самом деле? 🤔

📜 Спецификация RFC 2616, "Протокол передачи гипертекстов — HTTP/1.1", не устанавливает строгих требований к длине URL-адреса. Дело в том, что ограничение в 2048 символов скорее связано с особенностями браузера Internet Explorer, который имеет именно такую максимальную длину пути.

🔍 В GET-запросах данные передаются в URL, и именно поэтому мы сталкиваемся с этими лимитами. А вот в POST-запросах информация отправляется в теле запроса, что позволяет передавать значительно больше данных.

💻 Интересный факт: браузер Firefox может обрабатывать URL длиной до 10 000 символов- как пишут, что проверено! А так Firefox, Safari и Opera вообще не устанавливают жестких ограничений.

🎯 Однако, если вам нужно передать большие объемы данных, всегда лучше использовать метод POST для надежности и удобства.

📚Источник данного исследования: GitHub

#INTEGRATION
4
📚Давайте напомним вам список категорий нефункциональных требований по BABOK⬇️⬇️⬇️

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

🌳 Совместимость
Степень успешности взаимодействия решения с другими компонентами своего окружения. Например, взаимодействие одного процесса с другим.

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

🥀 Ремонтопригодность
Легкость изменения решения или компонента для исправления ошибок, улучшения производительности или других атрибутов, либо для адаптации к изменениям окружения.

🍁 Эффективность работы
Способность решения или компонента выполнять свои целевые функции с минимальным потреблением ресурсов. Может определяться исходя из контекста или периода, например, пиковое, среднее и минимальное использование.

🌵 Переносимость
Легкость переноса решения или компонента из одной среды в другую.

🌴 Надежность
Способность решения или компонента выполнять требуемые функции в определенных условиях в течение определенного периода времени. Например, среднее время работы устройства до сбоя.

🌿 Масштабируемость
Способность решения расти или развиваться, чтобы справиться с растущими объемами работы.

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

🌼 Удобство использования
Легкость, с которой пользователь может научиться использовать решение.

🌻 Сертификация
Ограничения решения, которые необходимо удовлетворить для соответствия стандартам или отраслевым соглашениям.

🌹 Соответствие
Нормативные, финансовые или правовые ограничения, которые могут варьироваться в зависимости от контекста или юрисдикции.

🪴 Локализация
Требования, касающиеся местных языков, законов, валют, культур, правописания и других характеристик пользователей, требующих внимания к контексту.

🪻 Соглашения об уровне обслуживания (SLA)
Ограничения обслуживаемой решением организации, официально утвержденные как поставщиком, так и пользователем решения.

🌻 Расширяемость
Способность решения включать новую функциональность.

Не пропусти! Далее будем публиковать примеры каждого требования.

#REQUIREMENTS
4🤩2
⚠️ Для удобства и навигации постов в канале мы публикуем темы с тегами:

🏗 Архитектура ПО #ARCHITECTURE
Темы по шаблонам и типам архитектуры

🔗 Интеграция #INTEGRATION
Темы по описанию типов интеграций, протоколов, DevOps

📐 UML #UML
Темы по UML диаграммам, их применению

📊 BPMN #BPMN
Темы по BPMN диаграммам, их применению

🗄 Базы данных #DBMS
Темы, охватывающие проектирование баз данных, SQL и NoSQL

🛡 Кибербезопасность #SECURITY
Темы по сбору требований по информационной безопасности ИТ-систем

🛠 Проектирование ИТ-систем #SYSTEMDESIGN
Темы и кейсы по проектированию информационных систем

📜 Требования #REQUIREMENTS
Темы, которые охватывают типы требований, техники, стандарты

🔍 Тестирование #TESTING
Темы по тестированию ПО, роль аналитика в тестировании

🎓 Подготовка к собеседованию #INTERVIEW
Разбор вопросов и задач, как проходит собеседование

💼 Интеграционная шина и брокеры сообщений #BROKER
Темы по интеграционной шине и брокерам сообщений

📚 Прочее #OTHER
Все темы технические темы, что не вошли в предыдущие разделы
👍6🔥2👌2
🤣14😇2
Напоминаем основные UML диаграммы и их назначение

📊 Диаграмма компонентов (Component Diagram) описывает иерархию компонентов системы.

🏗 Диаграмма развертывания или размещения (Deployment Diagram) описывает физическую архитектуру системы.

🏛 Диаграмма классов (Class Diagram) описывает статическую структуру классов системы и связи между ними.

🔗 Диаграмма объектов (Object Diagram) описывает связи между объектами, являясь частным случаем диаграммы классов.

🧩 Диаграмма композитной/составной структуры (Composite Structure Diagram) демонстрирует внутреннюю структуру классов и взаимодействие элементов внутренней структуры класса.

🛍 Диаграмма пакетов (Package Diagram) структурирует содержимое системы, отображая пакеты и отношения между ними.

🎨 Диаграмма профилей (Profile Diagram) описывает пользовательские стереотипы и ограничения, применяемые к моделям.

🎭 Диаграмма прецедентов (Use Case Diagram) описывает набор функциональности, доступной акторам (внешним для системы сущностям, таким как пользователи).

⚙️ Диаграмма деятельности (Activity Diagram) описывает рабочий процесс внутри каждого прецедента.

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

📈 Диаграмма последовательности (Sequence Diagram) описывает логику взаимодействия и обмена данными между объектами в рамках прецедента в хронологическом порядке.

💬 Диаграмма коммуникации (Communication Diagram) описывает логику взаимодействия и обмена данными между объектами, не раскрывая хронологического порядка.

Временная диаграмма (Timing Diagram) показывает, как объекты ведут себя на временной шкале, не отображая взаимосвязей между объектами.

📝 Далее будем публиковать примеры, описания и разбор каждой диаграммы. Следите за обновлениями!

#UML
🔥5👍2
📚 Зачем системному аналитику разбираться в архитектуре программного обеспечения?

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

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

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

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

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

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

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

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

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

#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