Недавно я выполнил некоторые блок-схемы и столкнулся с той же проблемой, как представлять вызовы подпрограмм или, возможно, вызовы методов и функций, как вы могли бы их вызывать в эти дни.
Я установил соглашение о том, что я отделяю ЗВОНКИ подпрограммы от ЗАПРОСОВ подпрограммы. Для первого я использую обычный прямоугольник, показывающий вызов с выполняемыми аргументами, используя любые переменные, которые действуют в данный момент при выполнении программы.
Я использую двусторонний прямоугольник «предопределенный процесс» просто как ссылку на другую потоковую диаграмму, которая содержит определение этой функции или подпрограммы. Прямоугольник подпрограммы не должен показывать аргументы подпрограммы, поскольку она является частью определяющей блок-схемы рассматриваемой подпрограммы, но может быть полезно добавить их в ссылку уже, чтобы любой, кто ее читает, мог увидеть значение фактических аргументов, используемых в вызове.
Это увеличивает количество прямоугольников, но проясняет, что существуют другие потоковые диаграммы для поиска определения некоторых вызываемых функций. Часто, если функция простая, я не буду создавать для нее отдельную диаграмму, а просто задокументирую ее в устной форме.
Я также использую символ «документ», чтобы сказать, что детали следует искать в листинге кода.
Суть блок-схемы для меня не в том, чтобы создать программу, а в том, чтобы другим было легче понять программу. Я думаю, что помощь, как вид с высоты птичьего полета, и что их цель, должны иметь в виду. Они не предназначены для визуального описания КАЖДОЙ детали вашей программы, детали видны из кода при необходимости. Блок-схема - это всего лишь одно изображение вашей программы с точки зрения высокого уровня.
Поддержание потоковых диаграмм на высоком уровне также означает, что меньше необходимости поддерживать их в актуальном состоянии по мере изменения кода.
Это картинки. Как и в любой хорошей истории, в программном обеспечении должны быть картинки, которые дают альтернативную точку зрения на код.