\documentclass{article}

\begin{document}
\begin{large}
\begin{center}
{\bf CSCE 330  Fall 2002} \\
{\sc Homework 2}\\
Assigned Friday, 02/9/6.  Due Wednesday, 02/9/11 \\
\end{center}
\end{large}
\vspace{0.5in}

The questions refer to the following paper: Rajlich, V., N. Wilde, M.
Buckellew. and H. Page.  ``Software Cultures and Evolution.''  {\em Computer},
34, 9 (September 2001), pp.24--28.  Please be concise.

\begin{enumerate}

\item List and describe briefly the three models of program development 
explained in class on August 28.  Which of the three models do the authors
present at the beginning of their paper?

\item Map the requirement of ``effective comprehension'' 
to one or more of the goals and qualities of programming languages that are
described in Section 1.5 of your textbook.

\item The textbook mentions several ``tools provided by the software development
environment.''  List them.  The paper describes briefly a tool for software
maintenance.  What is it called?  What is it used for?

\item What is ``code decay'' and why does it make maintenance of software more
difficult?

\item Explain the use of ``common blocks'' in the Convert program.  
Common blocks address well a certain quality of software that was of paramount
importance when Convert was originally written, but have a substantial
negative impact on a different quality of software.   Explain this trade-off.

\item The paper mentions the GOTO statement in Fortran and C.  Does Java have a
GOTO statement?

\item List the five ``obsolete program plans'' described in the paper.

\item What is the solution that the authors propose to solve the code decay
problem?  In your opinion, is this a practical solution?  Explain your answer.

\end{enumerate}

\end{document}
