October 20, 1997

SmartDebugging
Component Based Software Environments

Unlike other aspects of information technology, which have advanced dramatically in recent years, software debugging technology has lagged behind in many development environments. The majority of developers today use essentially the same debugging methods as those of 20 years ago, despite important changes in the way applications are built and intense pressures for higher application quality and faster turnaround.

A key to correcting this situation is the use of automated solutions that can not only replace manual debugging but enhance the development process at every stage. Within the broad category of Automated Software Quality (ASQ) tools, products designed for Error Detection and Debugging (EDD) have emerged as critical components of ongoing efforts to improve software development productivity. NuMega Technologies, founded in 1987, has grown into a significant industry force through a pioneering EDD product offering incorporating the most advanced SmartDebugging technology available for today's most popular platforms.

Trends in Software Development

In the late 1980s and early 1990s, software development experienced a paradigm shift as programming languages and Microsoft Windows brought the event-driven programming model into the mainstream. The result was an order-of-magnitude increase in the complexity of software debugging. NuMega BoundsChecker, released in 1989, revolutionized the process of debugging Windows applications by automating and accelerating EDD functions and insulating the developer from the complexity of the underlying system.

Today developers face another dramatic shift as the Internet and the World Wide Web present a range of possibilities for expanding enterprise client/server computing beyond its previous limits. The component-based model of software development has become the cornerstone of this latest breed of applications. Using software components as building blocks has become the only practical way to deliver such applications within a reasonable time frame. Yet omponent-based applications raise runtime system complexity exponentially, further raising the stakes in error detection and debugging.

Current development trends and related business factors are combining to drive a new set of requirements for development and debugging tools. These forces include:
  • The move to component-based applications running in an assortment of networked environments ranging from traditional client/server to intranets and extranets.
  • The use of multiple programming languages by individual developers building component-based applications. For each component to perform well, developers need the flexibility to select the language best suited to the task to be performed or the problem to be solved.
  • The explosive growth in development technologies that allows the creation of sophisticated GUI-connected applications by less skilled developers, and the related decline in average skill levels across expanding developer populations. The widespread use of wizards and other graphical tools, while increasing productivity among these less skilled developers, has made it much more difficult to find and correct defects arising from underlying interfaces or relationships between application layers.
  • The constantly increasing pressure on total time-to-market mandates for software delivery. Development projects formerly expected to be completed in 18-24 months are now commonly held to 6-9 month schedules.
At this months meeting NuMega Technologies will present an overview of SmartDebugging technology and demonstrate the latest version of BoundsChecker, Delphi Edition. BoundsChecker Delhpi Edition is the only automatic error detection (AED) tool built specifically for Delphi. It speeds development by automating the debugging process-right inside the Delphi IDE. It detects and diagnoses errors in static, stack and heap memory, as well as memory and resource leaks. BoundsChecker also validates over 5000 APIs at run-time, including the latest Windows APIs, ODBC, ActiveX, DirectX, COM, and Internet APIs.