YOU'RE LOOKING FOR A NEEDLE IN A HAYSTACK. WE'LL HELP YOU FIND IT. »Making Transparent & Manageable« Software Diagnostics: The Software Intelligence & Mining Company Studio At a glance. Aimed at: Project managers, software architects, software engineers, software developers and testers; it can also be used as an instrument by system integrators or IT consultants. Software Diagnostics Studio can be used for any type of software system in any programming language, including desktop applications, server applications, or embedded systems; the studio itself operates as a desktop application.

Server One for all. Aimed at: Decision makers, software architects, software analysts, managers. Company-wide, real time information for the area of software development and . Analyze the quality and the evolution of your code thanks to clearly represented software maps. Benefit from this business intelligence solution for software systems.

Developer Edition Find the needle in the haystack. Aimed at: Software developers, software testers, software project managers, and software architects. The Developer Edition cuts the debugging workload significantly, accelerates product launch times, and reduces potential sources of error during the software development stage. The Developer Edition makes development processes – for existing and new team members – transparent and considerably shortens the time necessary to become acquainted with complex software implementations.

Application Logger Avoid bugs and optimize resources. Aimed at: Software manufacturers, software product managers, software developers, software quality managers, maintenance experts. Software analysis library that can be integrated into your own software systems and applications to record system dynamics within the customers' system environments. The collected data in form of traces give insight into the real customer's usage of the software; the data can be explored and analyzed using the Software Diagnostics Developer Edition Enterprise. Studio Server At a glance. One for all. Aimed at: Project managers, software Aimed at: Decision makers, software architects, software engineers, software architects, software analysts, software developers and testers; it can also be used quality managers. as an instrument by system integrators or IT consultants.

Analyze the quality of your code and how developers change the Software Diagnostics Server provides you as a manager with code using easy-to-read software maps. Benefit from our important decision making aids: this solution is an integrated business intelligence solution for software systems. The solution software intelligence platform for all software development and can be customized for any programming language and any maintenance processes within your company as well as in configuration management system. cooperation with other external suppliers. Software Diagnostics Studio is a new, innovative solution available The business reality of software development project can be to management for the analysis and efficient improvement of accurately and comprehensibly presented by numerous software systems. This tool enables you to gain better knowledge enterprise software systems, which reveal cost centers, lost and understanding of complex software implementations. In order working days, and development hours per customer or per to do this, the Studio extracts and fuses data from code bases, project milestones. The »source code reality« in software from the configuration management system, and from system development and maintenance projects, though, cannot be dynamics at runtime. presented, modeled, and translated in a form suitable for management to use as a firm basis for decision making. As such, Software Diagnostics Studio acts as a »software tomo- graph«. The automatically generated »software maps« offer Software Diagnostics Server fills this gap. This technology fundamental insights into the structure, dynamics and develop- automatically collects information from repositories, executables ment processes of a software system. They can be interactively and source code and displays it in a form useful to decision configured and produce precise answers on the development makers such as dashboards or software maps. status of the system, the completed development steps and the Example scenarios: system behavior. Doing so, the actual development status of the ? system can be precisely measured, the quality of system elements Complexity trends can be assessed according to specific metrics and problematic future risks in the program code development situations may be more quickly uncovered. Software ?Team Performance Diagnostics Studio delivers integrative statements on the basis of transparent compensation, for example for objective system data and thus provides answers on issues related software engineers to development. ?IP and dependency risks As such, Software Diagnostics Studio helps to reduce maintenance assessment of third party libraries in case of work, to optimize communication between management and acquisitions or outsourcing undertakings developers and finally to boost stable, sustainable development. ?Bug fixes Software Diagnostics Studio offers the following benefits: reduce resulting costs and risks while increasing ?Increase software quality team satisfaction ?Speed up project decisions Different levels of access are taken into account with the help of ?Optimize employment of development resources access rights administration. Upon request, key business figures from enterprise software systems can be taken and summarized ?Evaluate bug fixing measures in easy-to-read software maps. ?Ensure software development meets time and budget requirements Developer Application Edition Logger Find the needle in the haystack. Avoid bugs and optimize resources. Aimed at: Software developers, software Aimed at: Software manufacturers, testers, software project managers, and software product managers, software software architects. developers, software quality managers, maintenance experts.

Detect bugs after running your application just once: trace the Avoid bugs and optimize resources: seamlessly integrate the execution of your code. Use reverse debugging to move forwards Software Diagnostics Application Logger as a software library and backwards in time. Software Diagnostics Developer Edition is into your own software systems and applications. In this way, the ideal combination between recorder, profiler and debugger you are able to selectively and efficiently record and evaluate for C and C++ for Visual Studio 2005, 2008 and 2010. system performance in the customers' system environments. The Developer Edition is a software analysis tool that specifically The Application Logger enables integrated software analysis in and precisely records the dynamics of a software system at IT systems at the customers' sites. The patent pending tracing runtime and presents interactive visualizations of the system technology of the Software Diagnostics Developer Edition has dynamics as well as profiling and debugging functions. Due to its been extended to include the Application Logger concept. This seamless integration, for example in Microsoft Visual Studio, includes innovative processes for obtaining information through debugging and analysis activities are considerably accelerated; automatic code instrumentation. productive and focused insights into the system dynamics are Reverse debugging and application logging becomes possible made possible. »in situ«, that is, in the customers' or users' system environments. Using the Developer Edition dynamics and behavior of complex IT Additional levels of information can be prepared for software systems can be efficiently recorded, examined and thus better business intelligence analysis by Software Diagnostics Studio. understood. In this way, programming work in particular can be ?If bugs, errors, or any other kind of wrong system behavior reduced and maintenance is significantly simplified. Specifically, occurs, it is often a time consuming process for the software workload involved in reading and understanding the code can be developer to recreate/reconstruct the observed phenomena reduced, the constant switching between different source code in its developer and testing environments. For example, in the files can be avoided and the manual step-by-step bug search with case of multi-threaded systems it can often take developers conventional debuggers can be replaced. several days until they have revealed which peculiarity of the ?Debugging: The Developer Edition contains a Debugging Tool, customer's environment is causing the error. which graphically represents the complete recording of The system's dynamics is logged by the application logger at behaviour at runtime. It can be used with minimal interference runtime – in detail at the level of function calls and with of system execution, even for multithreaded applications. minimal performance overhead. If the customer reports Tracing may be performed with an automatically or manually erroneous system behavior, the software developer is then selected level of detail. The traces enable developers to able to use the traces/records created to see precisely what perform »reverse debugging«. This means that the effect of happened in that customer's system. The software manufac- bugs and their cause, including their context can be examined turer saves time, is able to react much faster and does not at any desired point on the timeline. unnecessarily burden the customer relationship through a trial-and-error search for the cause of the problem, requiring ?Implement new features and Feature Change Requests: The the customer's time and help. Developer Edition accelerates and facilitates the determination of »the right point« for new features or alterations to be ?Next version of IT solutions can be designed closer to the inserted into an existing implementation. customer's real needs. With application logging, we can determine how users actually use specific features of an ?Performance Analysis and Memory Leak Detection: The application when the system is operating. A cost/benefit Developer Edition enables both the system performance and analysis of the introduction of individual software features memory allocation behaviour to be examined in a high level of can be better planned based on actual customer behavior. detail for any recorded trace. ?On the basis of objective data, which is collected at the customer's environment about the real system dynamics, software maintenance works can be better focused. The »Test Coverage Map« reveals The »Developer Activity Map« The »Software Architecture Map« risky (e.g. highly complex) code enables a direct assessment of soft- shows the modular structure of a which is insufficiently covered by existing ware quality in combination with the speci- software system and reveals dependency tests. Through simultaneous monitoring fic development progress. The ground area relationships. The system structure is depic- of developer activities, this software map of a block in the above software map corre- ted as nested rings. Dependencies are enables test and team leaders to effectively lates to the future maintainability of the colour coded according to their direction plan tests. In addition, limited test resour- respective code file, the height with the and shown as connecting lines between the ces can be focussed on problematic and activity and the colour with the number of elements of the inner most ring. risky code areas. changes of the developers involved. Code files which cause unnecessary costs due to low code quality can be reliably identified.

The »Code Quality Map« reveals Code files which often have to be With the help of tracing mecha- weaknesses in the quality of the corrected in the scope of bug fixes nisms, memory leaks can be spe- code. Large code files (ground area) with a represent a structural problem for future cifically identified. It is shown here how a high level of complexity are automatically development and modification of implemen- function with a memory leak is called identified (height and colour represent two tations. Quality measures applied to these 55,715 times producing a leak in excess of standard complexity metrics). The identified error-prone areas of code significantly 60 MBytes. With just one click, you can code files present, for instance, a high risk in reduce future costs and risks. jump straight to the error in the source terms of further development and mainte- code and correct it. nance of the system in the future.

The »Call Graph View« uncovers call In the »Probes Info View«, you can With the »Call Stack View«, the time relationships and performance bottle- monitor all parameter values of line of nested functions calls is necks. This view enables you not only to re- function calls. You can quickly identify shown. You can analyse the precise timing veal which parts of the execution of your soft- incorrect values which have been logged behaviour of your system. Find errors faster ware system are slow but also lets you under- by the various probe types. With one click through reverse debugging: start with the stand the underlying reasons. Unnecessary you can jump to the time of execution effect of the bug and analyse backwards in repetitions in the execution are, for example, when the incorrect variable value first time to the cause in the code. quickly identified in the trace, i.e. in the com- occurred and thus directly identify the prehensive recording of system behaviour. cause of the error. About Software Diagnostics

The »Software Intelligence & Mining Company«, Software Diagnostics, based in Potsdam, Germany, is a spin-off of Hasso-Plattner- Institute for IT systems engineering (www.hpi-web.de). The company's mission is to make software development and maintenance projects transparent and manageable on the basis of »source code reality«.

Keep track of things: the patent-pending tracing technology allows software developers to record the internal activity of a software system whilst it is running and to trace all executed functions. This leads to the next evolutionary step in debugging and the understanding of system behavior. The solutions are seamlessly integrated into IDEs such as Visual Studio or Eclipse.

Leverage knowledge on the »source code reality«: data is extracted from complex software systems, analyzed using data mining techniques and then made available as an integrated software intelligence platform for all software development and maintenance processes both in-house and in cooperation with external service providers.

Benefit from valuable decision making information: unlike conventional tools, the products of Software Diagnostics meaningfully combine the assessment of source code, dynamic runtime analysis and code repositories in the form of »software maps«. These enable you to 'see' a system with its architecture and development processes as a whole and provide decision makers and developers for the first time with valuable information on which to base their software development and maintenance decisions across the entire software system's life-cycle.

Software Diagnostics, Software Diagnostics logo, Developer Edition and Studio are trademarks or registered trademarks of Software Diagnostics GmbH, Germany and other countries. All other company and product names are the property of their respective owners. © 2011 Software Diagnostics. All right reserved.

Software Diagnostics GmbH Tel + 49 - 331 - 7062 340 August-Bebel-Str. 26-53 Fax + 49 - 331 - 7062 341 D-14482 Potsdam Web www.softwarediagnostics.com Germany E-Mail [email protected]