Solutions

Археология программного обеспечения

Анализ используемого кода

В какой-то момент все разработчики сталкиваются с пугающей задачей использования кода, разработанного другими людьми. Археология программного обеспечения — это методика, помогающая проанализировать исходный код унаследованных приложений. Хотя соответствующие сведения можно получить вручную, это долгий и утомительный процесс. Использование инструментальных средств уменьшает затраты времени на создание данных и помогает в разработке продукта. JBuilder предоставляет разработчикам, использующим язык Java, средства археологии программного обеспечения и функциональные возможности, основанные на пакете Eclipse SDK и позволяющие обеспечить высокую эффективность и производительность работы над проектом. Ниже показан общий вид процесса археологии программного обеспечения для языка Java с использованием JBuilder 2008.

software archeology piechart

Шесть шагов, помогающих сформировать стратегию разработки проекта

Визуализация: определяем положение дел

В состав JBuilder 2008 входит средство LiveSource™, позволяющее осуществлять прямое и обратное проектирование кода Java. Это означает, что при наличии большого объема унаследованного кода на языке Java JBuilder может декомпилировать этот код и создать набор UML-диаграмм. А поскольку для выполнения этой задачи используется LiveSource™, любое изменение кода приведет к изменению диаграмм и наоборот. Следовательно, код и диаграммы всегда будут синхронизированы. Эта возможность повышает эффективность анализа унаследованного кода.

Нарушения структуры: анализ работоспособности объектной модели

Очень важно определить работоспособность объектной модели. Один из самых быстрых способов выполнения этой задачи — определение метрик программного обеспечения для рассматриваемого кода. Метрики позволяют оценить структуру кода и его сильные и слабые стороны и найти места, которые могут приводить к возникновению проблем. JBuilder поддерживает более 80 метрик программного обеспечения, которые помогают определить работоспособность кода: от простой метрики, определяющей число строк, до метрик, оценивающих цикломатическую сложность, нестабильность и другие параметры. После вычисления метрик с помощью JBuilder разработчик может воспользоваться диаграммой Kiviat и визуально отобразить состояние кода на графиках.

Нарушения стиля: анализ текущего состояния кода

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

Бизнес-логика: тестирование существующего исходного кода

Надлежащее тестирование является одним из важнейших этапов разработки современных сложных систем. Как ни странно, большая часть кода, для которого выполняется археология программного обеспечения, почти не тестировалась. Код, для которого не проводилось хотя бы простейшее тестирование, тяжело изменять и интегрировать с другими системами. Кроме того, для такого кода очень трудно создавать шаблоны. Разработчик должен хорошо знать функциональные возможности кода. JBuilder полностью поддерживает JUnit и многие другие высококачественные средства тестирования, помогая разработчикам обеспечить работоспособность кода.

Производительность: поиск «узких мест» исходного кода

Анализ производительности также является очень важной задачей. JBuilder упрощает археологию программного обеспечения, помогая разработчикам находить медленно работающий код и код, работающий ненадлежащим образом. Кроме того, в состав JBuilder входит средство JOptimizer, содержащее профилировщики Java Profiler и Web Java Profiler, которые помогают разработчикам находить строки или местоположения кода, снижающие производительность. Замечено, что 80 % проблем, приводящих к снижению производительности, вызываются менее чем 5 % кода. JBuilder помогает исправить ошибки в этих 5 %.

Документирование: оценка адекватности документации и возможности оценить положение дел с ее помощью

Очень важно, чтобы все диаграммы, тесты, метрики, результаты аудита и данные о производительности включались в общий набор документации для кода. JBuilder предоставляет разработчикам средства создания документации. Все созданные UML-диаграммы, вычисленные метрики и результаты аудита включаются в общую документацию. Это позволяет разработчикам более эффективно анализировать код и обмениваться полученными сведениями.