2010-07-22 2 views
1

(Если вы считаете, что один сайт на StackExchange или в другом месте это лучше место, чтобы задать этот тип вопроса, пожалуйста, мне точку в правильном направлении.)Методы/инструменты для определения логики программного обеспечения?

Что опытные разработчики используют, чтобы выяснить, как код существующего работа с приложениями, прежде чем сможете изменить/добавить к ней?

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

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

спасибо.

ответ

0

Не найдено ни одного инструмента, обрабатывающего все языки и системы. Быть конкретной.

Также посмотрите atearlierquestions (поиск, например, «инструменты, понимающие наследие»).

2

Есть ли более эффективный способ, чем , проходящей через линию по линии с ручка/бумага под рукой, пока вы не понять, что вне дома?

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

Если у вас есть интерес к методам, я использую следующий подход:

  1. найти «верхнего уровня» точки приложения (где пользовательские запросы приходят или подобное);

  2. Выкапывайте код до нужного вам уровня.

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

Смежные вопросы