"Внезапно падающее, можно локализовать с помощью дебагера."
не всегда, не везде, не всегда доступен, а даже если и да - быстро ли
локализуешь? (возможно, но куча нюансов) ни эксепшена ни дебажной инфы (даже
в сборке с дебагинфо может не оказаться - упало в стороннем объектном коде
который as is).

"Вход - вызов, выход - return, или конец ф-ии"
да, именно это и найдет парсер)

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

+ можно еще исправлять ошибки вида

type * prtVar; */* где инициализация? Предлагаем автоисправление "= NULL" */
*
или:
free(ptrVar);
*/* где ptrVar = NULL? */*

там еще,
int func(void* ptr) {

*/* где проверка ptr на NULL? */*
int smth = *prt;
...
}

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

2010/10/9 Артём Шапоренко <artem.shapore...@gmail.com>

> "Ну там с помощью парсера можно найти все вхождения, выходы"
> Вход - вызов, выход - return, или конец ф-ии, не вижу тут смысла в 
> иструментировании.
> Внезапно падающее, можно локализовать с помощью дебагера. Мне кажется это не
> задачи для СА.
>
> 2010/10/9 Fedor Korshunov <fedor.a.korshu...@gmail.com>
>
> Ну там с помощью парсера можно найти все вхождения, выходы из функции и
>> поместить там отл печать - так можно локализовать внезапно падающее
>> приложение). Что еще - то же с выделением памяти, проинстронументировали -
>> прогнали узнали был ли mem leak, etc.
>>
>>
>> 2010/10/8 Букирев Андрей <buki...@sarfti.ru>
>>
>>>  Сорри, напутал.
>>>
>>> Хорошо, Федор, а какие мысли есть по этому поводу? Опиши пожалуйста.
>>>
>>>
>>>
>>>  - Andrew
>>>
>>>
>>>  ------------------------------
>>>
>>> *From:* sa_team@googlegroups.com [mailto:sa_t...@googlegroups.com] *On
>>> Behalf Of *Fedor Korshunov
>>> *Sent:* Friday, October 08, 2010 9:52 AM
>>>
>>> *To:* sa_team@googlegroups.com
>>> *Subject:* Re: SA: AB vision
>>>
>>>
>>>
>>> Я имел ввиду инструментация пользовательского кода... хотя, да, это из
>>> другой оперы.
>>>
>>> 2010/10/8 Букирев Андрей <buki...@sarfti.ru>
>>>
>>> Федор, да. Например, в поставке для заказчика (Intel) нужны только
>>> определенные функциональные возможности и определенные данные, все остальное
>>> (не нужное и замедляющее работу, увеличивающие объем данных и т.п.) должно
>>> быть исключено.
>>>
>>>
>>>
>>> SA должен становиться функциональнее, но не уступать предыдущим версиям
>>> по параметрам <<время работы - занимаемая память>>.
>>>
>>>
>>>
>>> Еще забыл добавить, что ниже написанное планируется делать с учетом
>>> реализации и других парсеров: C++, Python, C#, Java.
>>>
>>>
>>>
>>>  - Andrew
>>>
>>>
>>>  ------------------------------
>>>
>>> *From:* sa_team@googlegroups.com [mailto:sa_t...@googlegroups.com] *On
>>> Behalf Of *Fedor Korshunov
>>> *Sent:* Friday, October 08, 2010 9:43 AM
>>> *To:* sa_team@googlegroups.com
>>> *Subject:* Re: SA: AB vision
>>>
>>>
>>>
>>> Для облегчения кода и времени его выполнения, нужно рассмотреть
>>> возможность включения / выключении возможностей посредством директив
>>> препроцессора.
>>>
>>> Автоиструментирование кода макросами? Я думал об этом.... точнее думаю,
>>> все больше.
>>>
>>> 2010/10/8 Букирев Андрей <buki...@sarfti.ru>
>>>
>>> Всем привет,
>>>
>>>
>>>
>>> Начнем с того, что я решил отказаться от своей предыдущей темы
>>> диссертации. Новая тема приблизительно звучит так: <<*Статический анализ
>>> кода и его применение при проектировании, разработке и тестировании ПО*>>.
>>> Как вы понимаете, все это я планирую проводить на базе проекта SA.
>>>
>>>
>>>
>>> Ниже представлены мои мысли по этому поводу. Они могут меняться,
>>> дополняться и убавляться. )))
>>>
>>>
>>>
>>> В настоящее время, разработка ПО все больше смещается в сторону
>>> сопровождения и доработки - расширения существующих программных продуктов.
>>> Все больше ставится акцент на налаживание процессов тестирования, уделяется
>>> внимание чистоте и стройности кода и архитектуры ПО. Получила
>>> распространение методология постепенной модификации и <<чистки>> кода - *
>>> Рефакторинг*. В свою очередь это влечет к развитию методологической и
>>> инструментальной базы - рефакторинг и паттерны проектирования, множество
>>> плагинов для современных IDE для проведения рефакторинга. Но при этом
>>> большом разнообразии средств, они представляют из себя лишь примитивные
>>> инструменты в руках программистов, позволяющих проводить только
>>> поверхностные модификации. Задача по выявлению <<кода с душком>> лежит на
>>> плечах разработчика.
>>>
>>>
>>>
>>> На мой взгляд, SA должен стать утилитой (представлять такой функционал),
>>> которая осуществляет анализ графа программы и на основе него:
>>>
>>>     - Определяет количество вызовов данной функции
>>>       - Определяет кол-во строк кода в данной функции - рефакторинг
>>>       <<длинная функция>>
>>>       - Определение размера класса - рефакторинг <<большой класс>>
>>>       - Определение кол-ва параметров - рефакторинг <<длинный список
>>>       параметров>>
>>>       - Определение завистливых функций - функция, которая чрезмерно
>>>       обращается к данным другого объекта
>>>       - Определяет цикломатическую сложность
>>>       - Связанность - связь данного модуля с другими
>>>       - Связность - связи внутри модуля.
>>>       - Выдает рекомендации по рефакторингу структуры программы, ее
>>>       модулей
>>>       - Выставляет некоторую количественную оценку качества кода
>>>       - <можно дополнить>
>>>
>>>
>>>
>>> Уровни построения графа
>>>
>>>    1. Функции
>>>    2. Условные переходы (условные конструкции, циклы)
>>>    3. Операций - операндов (полный граф программы)
>>>
>>>
>>>
>>> Идти нужно от простого к сложному - сначала реализовать возможности на
>>> уровне функций.
>>>
>>>
>>>
>>> Определение проблемных участков по уровням, выдача рекомендаций (указаны
>>> страницы из книги <<Рефакторинг. Улучшение существующего кода>> Мартина
>>> Фаулера):
>>>
>>>    1. На уровне функций
>>>
>>>
>>>     1. Длинный метод (87)
>>>       2. Большой класс (88)
>>>       3. Длинный список параметров (89)
>>>
>>>
>>>    1. На уровне условных переходов
>>>
>>>
>>>     1. Сложный код
>>>
>>>
>>>    1. на уровне операций-операндов
>>>
>>>
>>>     1. дублирование кода (87)
>>>       2. завистливые функции (91)
>>>       3. группы данных (92)
>>>
>>>
>>>
>>> Возможные варианты:
>>>
>>>    - Интеграция в среды разработки в виде плагинов
>>>    - Независимое использование
>>>
>>>
>>>
>>> Для облегчения кода и времени его выполнения, нужно рассмотреть
>>> возможность включения / выключении возможностей посредством директив
>>> препроцессора.
>>>
>>>
>>>
>>> C уважением,
>>>
>>>  - Andrew
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "SourceAnalyzer Team" group.
>>> To post to this group, send email to sa_t...@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> sa_team+unsubscr...@googlegroups.com<sa_team%2bunsubscr...@googlegroups.com>
>>> .
>>> For more options, visit this group at
>>> http://groups.google.com/group/sa_team?hl=en.
>>>
>>>
>>>
>>>
>>> --
>>> Best Regards,
>>> Fedor Korshunov
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "SourceAnalyzer Team" group.
>>> To post to this group, send email to sa_t...@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> sa_team+unsubscr...@googlegroups.com<sa_team%2bunsubscr...@googlegroups.com>
>>> .
>>> For more options, visit this group at
>>> http://groups.google.com/group/sa_team?hl=en.
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "SourceAnalyzer Team" group.
>>> To post to this group, send email to sa_t...@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> sa_team+unsubscr...@googlegroups.com<sa_team%2bunsubscr...@googlegroups.com>
>>> .
>>> For more options, visit this group at
>>> http://groups.google.com/group/sa_team?hl=en.
>>>
>>>
>>>
>>>
>>> --
>>> Best Regards,
>>> Fedor Korshunov
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "SourceAnalyzer Team" group.
>>> To post to this group, send email to sa_t...@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> sa_team+unsubscr...@googlegroups.com<sa_team%2bunsubscr...@googlegroups.com>
>>> .
>>> For more options, visit this group at
>>> http://groups.google.com/group/sa_team?hl=en.
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "SourceAnalyzer Team" group.
>>> To post to this group, send email to sa_t...@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> sa_team+unsubscr...@googlegroups.com<sa_team%2bunsubscr...@googlegroups.com>
>>> .
>>> For more options, visit this group at
>>> http://groups.google.com/group/sa_team?hl=en.
>>>
>>
>>
>>
>> --
>> Best Regards,
>> Fedor Korshunov
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "SourceAnalyzer Team" group.
>> To post to this group, send email to sa_t...@googlegroups.com.
>> To unsubscribe from this group, send email to
>> sa_team+unsubscr...@googlegroups.com<sa_team%2bunsubscr...@googlegroups.com>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/sa_team?hl=en.
>>
>
>
>
> --
> Regards, Artem
>
> tel. +79200444558
> icq 269910037
> skype artem.shaporenko
> Source Analyzer Team
>
> --
> You received this message because you are subscribed to the Google Groups
> "SourceAnalyzer Team" group.
> To post to this group, send email to sa_t...@googlegroups.com.
> To unsubscribe from this group, send email to
> sa_team+unsubscr...@googlegroups.com<sa_team%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/sa_team?hl=en.
>



-- 
Best Regards,
Fedor Korshunov

-- 
You received this message because you are subscribed to the Google Groups 
"SourceAnalyzer Team" group.
To post to this group, send email to sa_t...@googlegroups.com.
To unsubscribe from this group, send email to 
sa_team+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sa_team?hl=en.

Reply via email to