Визуальное представление логики программы - PullRequest
8 голосов
/ 30 августа 2009

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

Ответы [ 4 ]

10 голосов
/ 30 августа 2009

В UML разные диаграммы предназначены для разных вещей, с использованием разных методологий. Учитывая, что мы склонны полагаться на объектно-ориентированные методологии, я объясню различные схемы и то, как они работают.

  • Диаграмма вариантов использования - Модели сценариев использования должны определять и определять все элементарные бизнес-процессы, которые должна поддерживать система. Это как с точки зрения пользователя, так и системы. Любое отдельное действие в вашей системе может быть использовано в случае использования, что затем позволит использовать более подробные модели.

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

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

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

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

Диаграмма вариантов использования

Диаграмма деятельности

Диаграмма последовательности

Схема конечного автомата

4 голосов
/ 30 августа 2009

Блок-схемы являются популярным выбором и часто подходят для нетехнических людей.

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

Диаграмма последовательности показывает, как компоненты взаимодействуют друг с другом.

2 голосов
/ 30 августа 2009

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

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

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

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

Относительно блок-схем: хотя они когда-то были популярны, для описания алгоритмов код psuedo, как правило, достаточно хорош. Люди, которые не могут следовать псевдо-коду, вряд ли тоже будут следовать большой схеме. И если ваша блок-схема тривиальна, она вам не нужна. Я не использовал один всерьез за 20 лет. Кажется, что большая часть литературы по информатике тоже не использует его.

Сказав это, когда кто-то хочет в мельчайших деталях понять, что делает настоящий фрагмент кода, особенно для целей автоматического анализа программ, блок-схемы (под вымышленным названием "поток управления") все еще довольно полезны. См. блок-схему управления COBOL (и объяснение см. ). Должно быть очевидно, что вы не хотите использовать это для объяснения алгоритма другому человеку.

2 голосов
/ 30 августа 2009

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

http://en.wikipedia.org/wiki/State_diagram

...