Визуальное представление логики программы
Я хочу представить логику моей программы через диаграмму, поскольку программа довольно сложна; Мне нужен способ объяснить другому человеку, почему и как что-то происходит в моей программе. Является ли блок-схема единственным вариантом?
4 ответа
В UML разные диаграммы предназначены для разных вещей, используя разные методологии. Учитывая, что мы склонны полагаться на объектно-ориентированные методологии, я объясню различные диаграммы и то, как они работают.
Диаграмма вариантов использования. Суть моделей сценариев использования заключается в определении и определении всех элементарных бизнес-процессов, которые должна поддерживать система. Это как с точки зрения пользователя, так и системы. Любое отдельное действие в вашей системе может быть использовано в сценарии использования, что затем позволит использовать более подробные модели.
Диаграмма действий - это тип диаграммы рабочего процесса, используемый для описания того, что происходит в диаграмме прецедентов. Это в основном визуальный метод описания потока действия или нескольких действий.
Диаграмма последовательности - это диаграмма, показывающая связь между различными объектами в системе или процессом. Диаграммы последовательности важны для анализа, так как они становятся важными для детального проектирования системы и проектирования пользовательского интерфейса. Мне это очень нравится, так как они дают фантастическое представление о том, что происходит в системе.
Диаграмма конечных автоматов - позволяет отслеживать состояния объектов в течение всего их жизненного цикла, что позволяет лучше понять, как объекты должны работать. Это дает возможность эффективно отображать события и тому подобное в системе.
Использование вышеупомянутых диаграмм дает отличную основу для анализа и проектирования, и следует отметить, что после создания этих диаграмм они не обязательно являются завершенными. В процессе проектирования вы будете изменять эти диаграммы по мере развития системы. Я надеюсь, это поможет вам. Ниже приведены ссылки на википедию для различных упомянутых диаграмм.
Блок-схемы являются популярным выбором, и часто подходят для нетехнических людей.
Если вы заинтересованы в более техническом рассмотрении ситуации, UML может быть лучшим выбором.
Диаграмма последовательности показывает, как компоненты взаимодействуют друг с другом.
За каждой программой стоит проблемная область, в которой, по-видимому, есть набор проблем, хорошо понятных группе людей, знающих предметную область, и область решения, в которой методы решения таких проблем собираются и используются для решения проблем.
Чтобы что-то объяснить, вы должны сначала договориться о проблемной области. Если вашей проблемной областью является обработка сигналов, а объяснение направлено кому-то, кто не знаком с доменом, вы уже готовы.
Затем вам нужно объяснить область решения (или обратиться к общеизвестному набору решений, который можно найти в техническом руководстве), чтобы вы могли обосновать конкретный выбор решения, который хорошо подходит для этой конкретной проблемы, и другие ограничения, которые могут быть помещенным в ответ (работает на маленькой машине, может быть построен за день и т. д.). Если человек, которому вы объясняете вещи, не понимает быстрое преобразование Фурье как возможное решение проблемы в выбранной вами области обработки сигналов, вы не сможете объяснить решение, не говоря уже о том, что это лучшее из ваших выбор.
Как только вы преодолеете эти два препятствия, тогда, возможно, блок-схема может оказаться полезной. Другие костыли, такие как различные типы диаграмм UML, все объясняют структуру решения с разных точек зрения. Какая перспектива имеет значение, зависит от цели объяснения.
Что касается блок-схем: хотя они когда-то были популярны, для описания алгоритмов псевдо-код, как правило, достаточно хорош. Люди, которые не могут следовать псевдо-коду, также вряд ли будут следовать большой диаграмме. И если ваша блок-схема тривиальна, она вам не нужна. Я не использовал один всерьез за 20 лет. Большая часть литературы по информатике, похоже, тоже не использует его.
Сказав это, когда кто-то хочет в мельчайших деталях понять, что делает настоящий фрагмент кода, особенно для целей автоматизированного анализа программ, блок-схемы (под вычурным названием "поток управления") все еще довольно полезны. Смотрите график управления COBOL (и посмотрите это для объяснения). Должно быть очевидно, что вы не хотите использовать это, чтобы объяснить алгоритм другому человеку.
Если вам нужно объяснить что-то пошагово, да, блок-схема действительно то, что вам нужно. Если вы можете говорить на более высоком уровне, другим вариантом может быть диаграмма состояний.