Winning Teams: Performance Engineering during Development

  • Authors:
  • Robert S. Oshana

  • Affiliations:
  • -

  • Venue:
  • Computer
  • Year:
  • 2000

Quantified Score

Hi-index 4.10

Visualization

Abstract

In 1995, Raytheon Systems initiated a program to develop a DSP-based array processor that would be used to process large amounts of raw data from a sensor sub-system. But because the next-generation target processor hadn't yet been released, the software development team had to complete a significant amount of the system and software development prior to the availability of the actual hardware. To foster strong algorithmic performance and efficient implementation in this high-risk development environment, they incorporated software performance engineering into their design methods. Loosely defined, software performance engineering is a set of techniques designed to gather data, construct a system performance model, evaluate that model, manage the risk of uncertainty, evaluate alternatives, and verify the models and results.This article explains the author's experience on this project, detailing the areas of SPE that were used through-out the life cycle of this software development program: execution modeling, input modeling, gathering of performance data, tools, design principles, and software engineering.