Нещодавно я робив кілька потокових діаграм і боровся з тією ж проблемою, як представити виклики підпрограми або, можливо, виклики методів та функцій, як ви могли їх називати сьогодні.
Я прийняв рішення про те, що я відокремлюю підпрограму CALLS від підпрограми REFERENCES. Для першого я використовую звичайний прямокутник, що показує виклик із зробленими аргументами, використовуючи будь-які змінні, які діють у цей момент виконання програми.
Я використовую двосторонній прямокутник «заздалегідь визначений процес» просто як посилання на іншу блок-схему, яка містить визначення цієї функції або підпрограми. Прямокутник підпрограми не повинен показувати аргументи підпрограми, оскільки це є частиною визначаючої схеми потоку відповідної підпрограми, але може бути корисно додати їх у посилання вже, щоб той, хто її читав, міг див. значення фактичних аргументів, використаних у виклику.
Це збільшує кількість прямокутників, але стає зрозумілішим, що існують ці інші блок-схеми, щоб шукати визначення деяких виклику функцій. Часто, якщо функція проста, я не буду створювати для неї окрему діаграму, а просто документувати її усно.
Я також використовую символ "документ", щоб сказати, що деталі слід шукати з переліку коду.
Сенс схеми для мене полягає не в створенні програми, а в тому, щоб іншим було легше зрозуміти програму. Я думаю, що допомога як погляд з пташиного польоту, і про цю мету слід пам’ятати. Вони не призначені для візуального опису КОЖНОЇ деталі вашої програми, деталі видно з коду при необхідності. Блок-схема - це лише одне зображення вашої програми з точки зору високого рівня.
Підтримка діаграм потоків на високому рівні також означає, що менше потребує оновлення, оскільки код змінено.
Вони - фотографії. Як і будь-яка хороша документація щодо програмного забезпечення для історії, повинна містити також зображення, які дають альтернативну точку зору на код.