Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.03.25;
Скачать: [xml.tar.bz2];

Вниз

Помогите найти программные инструменты для анализа кода!   Найти похожие ветки 

 
kull   (2002-03-11 17:42) [0]

Народ! Помогите кто может!

Я слышал, что существуют программные продукты для анализа кода на разных языках.
Например поиск потенциально опасных мест на предмет утечки памяти и т.п. Оценка структуры частей кода, структура вызовов функций и методов и т.д.

Я пошарил по поисковикам но почти все для языков типа С++ Java.

Хотелось бы еще что-нибудь для Object-Pascal...


 
vuk   (2002-03-11 17:51) [1]

Посмотрите http://www.automatedqa.com/


 
kull   (2002-03-11 18:08) [2]


> vuk

Спасибо! Я посмотрел.
Но почти все для тестирования и отладки, а хотелось бы и для анализа и оценки качества...



 
vuk   (2002-03-11 18:16) [3]

>хотелось бы и для анализа и оценки качества
Что есть критерий качества и как Вы хотите оценить качество кода без его выполнения? Те же утечки памяти только при выполнении всплывают... Программа Ваши мысли читать не будет...


 
kull   (2002-03-11 18:32) [4]


> vuk

Вот самый простой вариант.

Например есть код:

1.
------------------------------------
begin
.....
form1.caption := "title1";
.....
form2.caption := "title1";
.....
end;

2.
------------------------------------
const
title = "title1";
begin
.....
form1.caption := title;
.....
form2.caption := title;
.....
end;
-----------------------------------------------

Если потребовалось поменять "title1" на "title2"?

в первом случае:

Надо менять в двух местах. А если таких мест много да еще в разных файлах большого проекта.

во втором случае:

изменяется только строка с константой.


Поиск таких мест (первый вариант) более чем реален и не надо угадывать мысли програмиста.

И это не единственный пример как повысить качество и гибкость кода...
Вот для анализа таких (и других) штук я и хотел бы найти софт.


 
vuk   (2002-03-11 18:43) [5]

Это не к качеству кода относится, а к стилю программирования и грамотной организации кода. Это лечится не программами, а выправлением этого самого стиля у программиста, введением стандартов на оформление кода и т.д.


 
kull   (2002-03-11 18:56) [6]


> vuk

Это все верно.
Но стандарт программирования не поможет если код уже написан - это лишь профилактика.
И к тому же при следовании стандартам и определенному стилю, все равно можно написать жуткий код.

Вот еше пример: Повторяющийся код.
Есть несколько разработчиков.
И в процессе их деятельности появляются учаски кода выполняющие в принципе одно и тоже. Неплохо было бы свести это все в одну функцию. Это вариация на тему констант (если надо будет поменять алгоритм...).


 
vuk   (2002-03-11 19:04) [7]

>процессе их деятельности появляются учаски кода выполняющие в
>принципе одно и тоже
Все это знакомо, только вот один и тот же по смыслу (или близкий по смыслу) код может выглядеть настолько по-разному у двух разных людей, что ни один анализатор исходников не поможет, а мысли он, как я уже говорил, читать не умеет.
Хотя, возможно, есть кое-что, что может решить часть проблем - http://www.peganza.com/


 
kull   (2002-03-11 19:10) [8]


> vuk

Спасибо!
Посмотрю что это.


 
kull   (2002-03-11 19:18) [9]

И еще.


> а мысли он, как я уже говорил, читать не умеет


Все мысли пишутся в виде кода, который обрабатывает компилятор (он кстати тоже является анализатором). Ведь для того и существует язык программирования. А если мыслю не выразить в виде алгоритма о и нечего анализировать. И не стоит переоценивать людей которые пишут анализируемый код, и недооценивать людей, пишущих инструменты для анализа.


 
vuk   (2002-03-11 19:29) [10]

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

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


 
Фэ   (2002-03-11 19:33) [11]

Поищи CodeRush от Eagle Software.
Это не совсем то, что ты хочешь, но великолепный фоновый и организующий инструмент к Delphi&Builder (набор экспертов и пр.).
В том числе - оценка стиля программирования.
Не перестарайся на этом пути, однако.


 
Андрианов Владимир   (2002-03-11 21:38) [12]

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


 
Alx2   (2002-03-12 10:29) [13]

Про "узкие" места в программе - Intel VTune


 
mio   (2002-03-12 11:50) [14]

Утечки памяти можно ловить и без помощи MemCheck, который, конечно, написан умными людьми, но - уж очень хитро. Можно просто переопределить менеджер памяти и - считать кол-во обращений к Get/FreeMem, объемы, ну, и т.д. и т.п.


 
kull   (2002-03-12 12:07) [15]

Да программа для контроля правильной работы с памятью есть:
Memory Sleuth 2 - отличная штука ловит и память и ресурсы неосвобожденные.

Залез на http://www.peganza.com/ - да действительно pascal analazer неплохая штука, но глючная.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.03.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.004 c
1-80595
Анатолий
2002-03-11 07:54
2002.03.25
Outlook Express


1-80616
Random
2002-03-11 15:57
2002.03.25
Как сделать скролящуюся панель?


14-80666
Shuler
2002-02-03 12:44
2002.03.25
Не слабо?


14-80679
Axel
2002-02-12 11:47
2002.03.25
DELPHI eBOOKs


3-80428
SZap
2002-02-26 14:16
2002.03.25
вопрос по SQL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский