Как стать автором
Обновить
157.52

Анализ и проектирование систем *

Анализируй и проектируй

Сначала показывать
Порог рейтинга
Уровень сложности

Можно ли решить задачу реального времени без RTOS, разберем реализованную задачу

Время на прочтение11 мин
Количество просмотров4K

Когда-то мне довелось делать программу для управления процессом измерения в мониторе артериального давления (АД). Хочу на этом примере разобрать и продемонстрировать что нужно для решения задач реального времени. Наверно на этом примере можно понять, в том числе, когда нужно использовать RTOS.

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

Читать далее
Всего голосов 12: ↑10 и ↓2+8
Комментарии72

Побег из урановых рудников технической поддержки в M2_tech

Время на прочтение5 мин
Количество просмотров4.8K

— Дима, посмотри, пожалуйста, тикет по саппорту, ЭТО ОЧЕНЬ СРОЧНО!!!

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

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

Читать далее
Всего голосов 14: ↑13 и ↓1+12
Комментарии3

Use Case. Инструкция по работе со сценариями использования для молодого системного аналитика

Время на прочтение5 мин
Количество просмотров51K

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

Сценарии использования- это сценарий взаимодействия пользователя (или пользователей) с программным продуктом для достижения конкретной цели.

Цель: моделирование и проектирование взаимодействия пользователя с системой в рамках выполнения одного сценария. Пошаговое подробное взаимодействие пользователя с системой. 

Документирование: таблица с описанием действий актора и реагирование системы на определенные шаги пользователя. 

Один сценарий использования имеет несколько потоков: основной и альтернативные. 

Выделение сценариев 

Один сценарий использования должен описывать действия пользователя, которые приведут к одному большому действию- функционалу пользователя. Например, авторизоваться, добавить товар в корзину и тд. 

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

Каждый основной сценарий использования должен быть независимым от другого основного. Если есть определенные условия выполнения- указываем в “Предусловия”

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

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии12

Как НЕ надо строить надежные системы

Время на прочтение12 мин
Количество просмотров20K


При проектировании системы знание анти-паттернов и подвохов зачастую оказывается более полезным, чем знание самих паттернов. Отталкиваясь от этой идеи, я решил написать данную статью, чтобы рассказать о факторах, которые, на мой взгляд, приведут к созданию ненадёжных систем. В её основе лежит мой собственный опыт проектирования преимущественно распределённых корпоративных приложений. Будет здорово, если ниже вы поделитесь собственным опытом и полезными идеями по теме.
Читать дальше →
Всего голосов 69: ↑64 и ↓5+59
Комментарии3

Истории

Что о системном анализе и бизнес-анализе можно будет узнать на Flow

Время на прочтение9 мин
Количество просмотров1.6K

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

Если захочется узнать больше подробностей (например, точное расписание) или приобрести билеты, всё это есть на сайте.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии0

Часть 4. Немного про SCADA

Время на прочтение30 мин
Количество просмотров24K

SCADA (Supervisory Control And Data Acquisition) – вариант человеко-машинного интерфейса (ЧМИ), если перевести почти дословно – диспетчеризация, управление и обработка данных.

История развития ЧМИ.

Обзор решений SCADA.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

Часть 3. Мифы on-line модификации прикладного ПО ПЛК

Время на прочтение5 мин
Количество просмотров4K

Варианты реализации функций модификации прикладной программы без отключения контроллера (сохранения состояния выходов) и останова технологического процесса (в большинстве вариантов это не on-line модификация, как это заявляет изготовитель ПЛК):

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Беги муравей, беги! Ремейк 2022

Время на прочтение22 мин
Количество просмотров4.3K

На написание этой статьи меня сподвигла одноименная статья на хабре: "Беги, муравей. Беги". В ней рассматривается решение задачи коммивояжёра  в среде AnyLogic.

О самой задаче можно почитать здесь:  Задача коммивояжёра.  

Если кратко, то задача сводится к нахождению самого короткого пути обхода набора точек (городов) на карте. Решение методом перебора не является эффективным, поскольку количество вычислений огромно. Например, для 15 точек существует 43 миллиарда маршрутов, а для 18 точек (городов) уже 117 триллионов!!!

AnyLogic – среда, предназначенная для решения логистических задач с использованием моделей агентов. Мне показалось интересным, что несмотря на «заточенность» среды на агентное моделирование, при создании модели приходится писать достаточно много кода. Поэтому возникла идея: попробовать реализовать подобную модель, используя среду структурного моделирования, в виде графических функционально-блочных диаграмм. Я уже приводил примеры, как можно реализовать принципы объектно-ориентированного программирования (ООП) в графическом языке программирования.  См. "Объектное ориентированное программирование в графических языках". Здесь же мы попробуем реализовать агентное моделирование средствами системной динамики. 

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии5

Часть 2. Немного про ПЛК

Время на прочтение26 мин
Количество просмотров16K

Программируемый Логический Контроллер (ПЛК) для технологических процессов – разнообразие форм и размеров.

Из прошлой статьи:

Принцип построения промышленной системы управления (автоматизации) для технологических процессов.

Само понятие «технологический процесс» очень емкое и широкое, технологические процессы есть в любом производстве, например: пищевом, деревообрабатывающем, металлургии, добывающей промышленности, газо и нефтехимическом, энергетическом, сборочном и т.д. К технологическим процессам относятся как основные процессы для данного производства, например выработка пара в котельной, так и вспомогательные технологические процессы, например системы вентиляции помещений, управление лифтом или мостовым краном. В зависимости от типа производства и технологического процесса к системам управления (автоматизации) предъявляются определенные требования по надежности, безопасности, отказоустойчивости, взрывозащите и т.д.

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

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

Часть 1. История систем автоматизации

Время на прочтение25 мин
Количество просмотров15K

Основные понятия РСУ (DSC), PLC (ПЛК), ESD (ПАЗ) и различие между ними.

Когда «молодой специалист» сталкивается с современной терминологией систем промышленной автоматизации, то такие термины как DCS, РСУ, PLC (ПЛК), ESD, SCADA, СБиПАЗ вызывают некоторое недоумение, так как объективно существует несоответствие между термином и оборудованием. А если послушать объяснение менеджеров-продавцов систем автоматизации или их компонентов, почитать форумы, путаницы становится еще больше.

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

Читать далее
Всего голосов 10: ↑9 и ↓1+8
Комментарии15

Как упростить жизнь за 312 коротких шагов: проектируем GraphQL API в микросервисной архитектуре

Время на прочтение9 мин
Количество просмотров10K

Звук – HiFi-сервис с большой командой инженеров. Мы используем передовые технологии и современный стек, и экспериментируем, чтобы решать сложные, нестандартные задачи. Одна из технологий  – GraphQL.

Эта статья изначально создавалась как гайд по работе с GraphQL для инженеров Звука (системные аналитики, разработчики, QA). При этом статья может быть полезна всем, кто никогда не работал с GraphQL, но очень хочет понять, зачем он может быть нужен, и как поможет решить задачу вашего бизнеса.

Читать далее
Всего голосов 29: ↑28 и ↓1+27
Комментарии36

6 принципов автоматизации закупок, чтобы сократить затраты на 15% и более

Время на прочтение4 мин
Количество просмотров1.5K

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

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

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

Читать далее
Всего голосов 8: ↑5 и ↓3+2
Комментарии0

Как создать пользовательский сервис на Qlik Sense

Время на прочтение5 мин
Количество просмотров4.1K

Привет, Хабр!

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

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

Ближайшие события

Ошибки технарей, которые пишут документацию для разработчиков

Время на прочтение7 мин
Количество просмотров5.7K

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

Читать дальше
Всего голосов 19: ↑16 и ↓3+13
Комментарии9

Зачем в разработке Mind Maps

Время на прочтение3 мин
Количество просмотров5.7K

Ментальная карта или Mind Map представляет собой инструмент визуального мышления, используемый для сбора информации и идей.

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

Читать далее
Всего голосов 8: ↑5 и ↓3+2
Комментарии0

Написать архитектуру продукта — это не сложно

Время на прочтение4 мин
Количество просмотров8.4K

С Вами снова Владимир и меня все еще зовут девопс.

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

Немного контекста: я живу в Санкт-Петербурге и работаю в большой компании с крайне бюрократической структурой управления, в которой девопс – это драйвер, лидер и на-все-руки-мастер.

Читать далее
Всего голосов 17: ↑15 и ↓2+13
Комментарии11

Стресс-тестирование: как мы формировали комплексный взгляд на динамику стоимости банковского кредитного портфеля

Время на прочтение9 мин
Количество просмотров2.5K

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

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии3

Структурный анализ сетевой анонимности

Время на прочтение29 мин
Количество просмотров5.8K

Рассуждения о сути анонимности.

Читать далее
Всего голосов 5: ↑3 и ↓2+1
Комментарии7

Что есть обоснование функциональных требований (или что такое «Чтобы что»)

Время на прочтение26 мин
Количество просмотров8.7K

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

Читать далее
Всего голосов 14: ↑13 и ↓1+12
Комментарии6

Feature-Sliced Design: эволюция фронтенда для быстрых экспериментов

Время на прочтение6 мин
Количество просмотров56K

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

Мы используем preact/compat — с его помощью получаем доступ к множеству библиотек экосистемы React, что делает разработку более гибкой, и при этом можем использовать Preact. Но эти же плюсы зачастую оборачиваются в обратную сторону: например, нет единой методологии по проектированию приложений, как, например, в Angular. Кроме того, многообразие библиотек усложняет погружение в проект, а свобода в реализации и проектировании может обернуться захламлением кодовой базы, что пугает разработчиков, особенно новичков. 

Я встречал проекты, в которых раскиданы несколько одинаковых по функционалу компонентов. Например, пять вариаций одной кнопки, а чистые UI-компоненты находились рядом с компонентами, напрямую связанными с доменной областью приложения.

Для нашей команды эти проблемы также актуальны. Чтобы их решить раз и навсегда, мы обратились к активно развивающейся методологии Feature-Sliced Design (FSD). Ниже я познакомлю с ее главными принципами и с нашим опытом ее использования. Забыл представиться — я Женя, фронтенд-разработчик в команде Quick Experiments inDrive. Расскажу, как мы занимаемся разработкой внутренних стартапов на основе бизнес-гипотез с помощью FSD.

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии12