2016-04-04 9 views
1

Я работаю над учебниками по программированию для начинающих, и мне сложно отслеживать множество задействованных модулей и функций, их цель (абстрактно) и их взаимосвязи. Я бы хотел увидеть все с высоты птичьего полета, чтобы лучше представить себе, как я могу более элегантно реорганизовать и реорганизовать код.Существуют ли конкретные инструменты или методы для визуализации структуры программы/проекта?

Есть ли специализированный инструмент (кроме доски и маркера), который профессионалы используют для управления этой сложностью? Ожидается ли, что программисты просто полагаются на умственные модели? Специалисты используют программное обеспечение блок-схемы, такое как Lucidchart для такого рода вещей?

ответ

3

Structure Charts были вокруг с середины 70-х годов. Data Flow Diagrams, если вы используете только уровень листа -1, также полезны для структурированного (не-OO). Если вы не используете OO, посмотрите на метод Yourdon. Также обратите внимание на Essential Systems Analysis в качестве основы для разбиения событий. Существуют различные инструменты CASE, которые все еще используются.

UML может работать хорошо и существует уже много лет, если вы работаете с OO. Если кто-то не «радует диаграмму», тогда UML может работать довольно хорошо.

Существуют ERD для отношений данных.

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

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

1

Всегда есть UML, хотя я не большой поклонник.

Вы также не указали, на каком языке вы говорите.

Для .Net Visual Studio может на самом деле auto-generate code из таких диаграмм.

Вы также можете проверить это similar post on Quora.

+0

Черт, это было быстро. Думаю, мне не пришло в голову, что инструменты будут разными между разными языками. исправлено! Благодарю. –

+0

Несомненно. Пожалуйста, примите, если вам нравится ответ. – Patrick

+0

Для Rails существует множество инструментов ... вот один из них: http://railroad.rubyforge.org/ ... хотя они, как правило, не так полезны, как создание одного из них, используя некоторые из инструментов в ответе. – Patrick