Software Project Development

Read Complete Research Material

SOFTWARE PROJECT DEVELOPMENT

Software Project Development

Software Project Development

Introduction

Hindsight is the core element of Simics. It instantiates, configures and controls the virtual system environment allowing engineers to develop, integrate and test anything from individual boards, to subsystems or the full system. (Steinberg, Mitchell 2006:45)Hindsight is a software re-engineering tool ideal for development, testing, and maintenance. Hindsight speeds software development and maintenance by analyzing existing code, then graphically representing its logic in interactive structure charts, diagrams, and reports. Hindsight also pinpoints deficiencies in existing code through test coverage, run-time performance, and complexity analyses. The following new features make Hindsight even more powerful and efficient:

memory error detection that requires no recompiling or relinking

flow chart generation with the click of a button

module tester that generates driver and stubs to facilitate independent unit testing

report generator that allows you to customize your report contents and formats

Hindsight is comprised of the following three integrated modules that can also be used independently. Customize module combinations to meet your unique requirements.

Virtual System Environment

Hindsight instantiates the virtual system environment(s) in which full system models - themselves executing real operating systems and application stacks - will run. The speed, accuracy and features of the virtual system environment allow engineers to proceed with the software and system development, integration and test of complex heterogeneous systems. (Steinberg, Mitchell 2006:50)The virtual system environment created by Hindsight will support nearly any real-world digital system, from a single CPU core, to a system consisting of hundreds of processors. Each of the individual virtual platforms can use any combination of supported processors to run its own custom application stack(s). Regardless of the complexity of the full system model, Hindsight provides the scalability, flexibility and features necessary to ensure that simulation speeds are fast enough to allow engineers to proceed with system and software development, integration and test.

Control and Debug Center

Hindsight provides the developer with the configuration, command, control, and debug interface to the virtual system environment. It allows developers to load virtual platforms and functional scripts, start/stop/resume model execution, and run the system forward or reverse. Engineers benefit from the ability to save and restore the complete system state including every register and memory location; to gain run-to-run repeatability guaranteeing that the software, hardware and the whole system will behave in exactly the same way for each subsequent run (Mostow 2006: 181) (unless you choose to provide new stimuli!); and to use hardware or software breakpoints and watchpoints that work the same whether the system runs in the forward or reverse directions.

Hindsight includes a built-in source level debugger offering hardware visibility and control far beyond what JTAG can provide on physical hardware. Hindsight also supports standard networking capabilities between virtual and physical platforms, as well as an integration API. As a result, developers can use the Hindsight debugger in tandem with their preferred development tools (e.g. Eclipse, Wind River Workbench, Green Hills Software Multi, QNX, Enea OSE, gdb/ddd, and many others). (Mehdi 2005:389)

Support for advanced scripting and device and ...
Related Ads