\documentclass[titlepage]{article}

\setlength{\textwidth}{6.9in}
\setlength{\topmargin}{-.75in}
\setlength{\textheight}{10in}
\setlength{\oddsidemargin}{-.3in}
\setlength{\evensidemargin}{-.3in}

\begin{document}
\begin{center}
{\bf An Executive Summary of Research in
\break
Integrated Software Development Environments
\break\vspace{.4ex}\ \noindent
Gene Fisher
\break
16 January 2008}
\end{center}

\noindent{\bf Keywords:} software development, development environment, IDE

\vspace{1ex}
An integrated development environment (IDE) is a collection of tools for
developing software.  The basic components of an IDE are a source code editor,
compiler/interpreter, and debugger.  Tight integration of IDE components makes
the cycle of edit/compile/debug significantly more convenient than using
separate, unintegrated tools.

Advanced IDE features include support for multiple languages, code browsing,
graphical program views, testing, and integrated version control.  Many
advanced IDEs provide a well-defined framework for adding new tools.  These
frameworks are typically called \&"plug-ins", implying that new IDE
functionality can be readily added.

Among the earliest IDEs were those provided for the Lisp programming language
\cite{sandewall:78}.  Integrated development has been part of Lisp environments
since as early as interactive terminal access became available in the early
1970s.  When graphical workstations came into use, Lisp IDEs were among the
first to provide graphical code browsers and diagramming tools.

The period of the mid-1980s was the heyday of IDE research.  Pioneering
environments such as PECAN \cite{reiss:84} introduced new forms of graphical
program viewing, including trees, graphs, data diagrams, and tables.  The BALSA
environment \cite{brown:84} was among the earliest to introduce dynamic program
views in the form of algorithm animations.

Many of the features that were researched in the 1980s began to appear in
commercial and open-source products in the 1990s, and continue to be refined to
the present.  The Eclipse environment \cite{eclipse:07} has risen to recent
prominence.  It provides a good set of basic tools, and a well-defined plug-in
framework for the addition of new tools.

IDE research in the 1990s focused on the addition of software engineering
features into integrated environments.  IDEs that support a broad range of
development activities are called process-centered software engineering
environments (PSEEs) \cite{ambriola:97}.  A PSEE provides support for all
aspects of the software development process, from requirements engineering to
maintenance.  They also support software project and product management.

Research in the 2000s has provided some incremental improvements to IDE
features introduced in the 1980s and 90s.  Recent new developments have focused
on expanding the scope of IDEs, with support for hypermedia (Chimera
\cite{anderson:00}), collaborative work (Jazz \cite{hupfer:04}), and ubiquitous
computing (iRoom \cite{scholz:03}).

% \vspace{1ex}
% \noindent{\bf References:}
\bibliographystyle{acm}
\bibliography{ide-refs}

\end {document}
