Есть ли какие-либо инструменты анализа кода, которые сделают мое задание легче? [закрытый]

8
задан George Stocker 23 July 2010 в 12:08
поделиться

4 ответа

Я думаю, вам следует начать с написания тестов, чтобы убедиться, что перенесенный код не нарушает поведение существующего отчета.

Что касается инструментов автоматического анализа кода, то, скорее всего, вам в этой области помогут инструменты анализа потока данных, которые могут гипотетически моделировать поток данных из файла в переменные и в отчет. К сожалению, поиск таких инструментов несколько недель назад закончился для меня неудачей. Возможно, вы захотите повесить нарисованные от руки DFD в некоторых местах, просто чтобы убедиться, что вы не споткнетесь о что-то. Graphviz может помочь в этой области.

Это может помочь скопировать функциональность на Java (я знаю, что это звучит извращенно), но вы можете тщательно реорганизовать код под бдительным взором PMD, FindBugs и аналогичных инструментов обеспечения качества кода на Java.

РЕДАКТИРОВАТЬ: Я забыл ту часть, в которой инструменты определенной категории могут быть полезными - это инструменты нарезки кода в мире Java, и я должен признать, что до сих пор не использовал их. Вот список, который может помочь:

2
ответ дан 5 December 2019 в 23:13
поделиться

Мне нужно найти способ проверить мой код, чтобы убедиться, что он соответствует те же ответы, что и в предыдущем коде.

Модульное тестирование

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

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

http://www.junit.org/

Progressive Port

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

2
ответ дан 5 December 2019 в 23:13
поделиться

Отказ от ответственности: мне никогда раньше не приходилось делать что-либо подобное.

Не могли бы вы сначала использовать конвертер C ++ в Java (быстрый поиск в Google привел меня к продукту, который утверждает, что может делать это по очень разумной цене, если он действительно работает Конвертер C ++ в Java ).

Затем создайте свои модульные тесты и начните рефакторинг.

0
ответ дан 5 December 2019 в 23:13
поделиться

Некоторое время назад я задал несколько связанный вопрос, который заставил меня задуматься о возможном подходе: Есть ли эквивалент Findbugs и/или PMD для C/C++?

Что происходит для меня это то, что если этот код такой дерганый, возможно, было бы неплохо потратить некоторое время, чтобы попытаться исправить / реорганизовать его на месте.Очевидно, что если вы направляетесь на Java, вам будет сложно убедить себя потратить время на улучшение кода на C++, срок жизни которого невелик. Тем не менее, если вы замените некоторые явно глупые части улучшенным кодом, он, скорее всего, будет короче, надежнее, более очевидно правильным, и его будет намного легче портировать и анализировать, пока вы пытаетесь убедить себя, что новый код функционально функционален. эквивалентно старому коду.

Наиболее полезными инструментами, предложенными в ответах на мой вопрос, были Splint и Cppcheck.

Некоторое время назад был задан еще один более общий вопрос, который может натолкнуть на связанные идеи: Какие инструменты статического анализа C++ с открытым исходным кодом доступны?

1
ответ дан 5 December 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: