Блок-схемы и вызовы методов


11

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

введите описание изображения здесь

У меня есть 3 других метода, которые также вызывают GetQueue (), и мне интересно, правильно ли я это представляю. Поток AddQueue () визуально выглядит как неработающий.

ПРИМЕЧАНИЕ. Изменения, внесенные в мою блок-схему:

введите описание изображения здесь


Действительно ли этот уровень графической детализации необходим? Я знаю, что когда-то подобные потоковые диаграммы были популярны, но, похоже, в настоящее время они перестали пользоваться услугами по многим причинам ... По сути, они являются избыточной формой документации; Вы должны поддерживать их в актуальном состоянии, и код должен уже адекватно представлять то, что показано на блок-схеме в любом случае (это означает: время лучше потратить на создание большего количества кода).
Роберт Харви

Это было запрошено у меня, прежде чем я перейду к другому клиенту.
Кит Барроуз

@ Роберт Харви: Блок-схемы были полезны в старые времена, когда люди писали машинный или ассемблерный код напрямую. Возможно, они были полезны для ранних программистов на Фортране и Бейсике, у которых не было хорошего набора управляющих структур. В настоящее время, единственная причина, по которой я бы их сделал, это то, что клиент хотел, чтобы они были доставлены, и был готов заплатить мне адекватно.
Дэвид Торнли

Разрабатывая их с нуля, я обнаружил, что очень полезно использовать желтые стикеры, поворачивая на 90 градусов для принятия решений. Это позволяет вам перемещать их и вставлять процессы между ними. Когда вы все дон, то введите их в свое программное обеспечение.
Майкл Райли - AKA Gunny

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

Ответы:



2

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

Я установил соглашение о том, что я отделяю ЗВОНКИ подпрограммы от ЗАПРОСОВ подпрограммы. Для первого я использую обычный прямоугольник, показывающий вызов с выполняемыми аргументами, используя любые переменные, которые действуют в данный момент при выполнении программы.

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

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

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

Суть блок-схемы для меня не в том, чтобы создать программу, а в том, чтобы другим было легче понять программу. Я думаю, что помощь, как вид с высоты птичьего полета, и что их цель, должны иметь в виду. Они не предназначены для визуального описания КАЖДОЙ детали вашей программы, детали видны из кода при необходимости. Блок-схема - это всего лишь одно изображение вашей программы с точки зрения высокого уровня.

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.