Friday, January 7, 2011

Useful Software Development Libraries

Not all tools are stand-alone—many, covered in this section, come in the form of libraries that we need to link with our own code.


Testing
The last few years have seen an explosion in the number of test frameworks, many of which are based upon the seminal JUnit. There’s no way that I can begin to cover them all here, so I will restrict myself to referencing the “big two” in the Java community:

JUnit: http://www.junit.org/
This is the library that started it all.

TestNG: http://testng.org/
This is a more recent test framework, which builds upon the ideas in JUnit but takes a few different approaches and is starting to gain a considerable following.


Debugging Memory Allocators
Debugging Memory Allocators, on in languages like C and C++ that don’t provide memory management, a debugging memory allocator is an essential tool to avoid memory leaks, corruption, and other common issues.

libcwd: http://libcwd.sourceforge.net/
This is an open source debugging support library that provides memory debugging along with other features.

Microsoft Visual C++: http://msdn.microsoft.com/visualc/
Microsoft’s Visual C++ ships with a debugging memory allocator built in. Search for Memory Leak Detection and Isolation in the documentation for further information.

Mudflap: http://gcc.gnu.org/wiki/Mudflap_Pointer_Debugging
Mudflap is a technology built into some versions of the GNU C and C++ compiler that instruments all risky pointer and array dereferencing operations, some standard library string and heap functions, and some other associated constructs with range and validity tests.

Dinkumware: http://www.dinkumware.com/
Dinkumware sells C and C++ standard libraries that include comprehensive support for memory debugging.

Electric Fence: http://perens.com/works/software/ElectricFence/
This uses virtual memory hardware to detect memory overwrites and reuse of freed memory.


Logging
Logging frameworks provide the ability for your code to contain configurable logging that can be enabled, disabled, or increased in detail, typically at runtime and by individual feature.

log4j: http://logging.apache.org/log4j/
Apache log4j is probably the best-known Java logging library, and ports exist to most major languages.

Logback: http://logback.qos.ch/
Logback was designed by Ceki Gülcü, the founder of log4j, to be its successor.

java.util.logging: http://java.sun.com/j2se/1.4.2/docs/guide/util/logging/
As of 1.4.2, Java includes a standard logging API java.util.logging, commonly known as JUL.

SLF4J: http://www.slf4j.org/
The Simple Logging Facade for Java is an attempt to tame the plethora of Java logging APIs by providing a common interface that can write to different implementations at deployment time.

syslog-ng http://www.balabit.com/network-security/syslog-ng/
syslog-ng is the most popular implementation of The BSD syslog Protocol, allowing log data to be integrated from many different systems into a central repository and rich content-based filtering.

Source of Information :  Paul Butcher - Debug it Find repair and prevent bugs
Useful Software Development LibrariesSocialTwist Tell-a-Friend
Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Delicious BlinkList Furl

0 comments: on "Useful Software Development Libraries"

Post a Comment