CSC 508 - Turner
Sample Midterm Questions and Instructions

The exam will be open book, open note, open network, just do individual work 
(no conferences with other students during the exam.)

The exam will consist of a few short answer questions, some definition 
questions and a few essay questions.  Keep in mind the topics and thought 
processes we've emphasized in class.  Don't give me what you think I want
to hear, but do your best to incorporate all the other arguments and 
analyses you've heard into some cogent argument of your own.  I grade on
your ability to spot the important issues, to analyze and criticize 
alternative viewpoints, to make tradeoffs explicit, and to come to your own
rational position.

Some possible definitions you may see:

1.   Define software.
2.   Define requirement.
3.   Define specification.
4.   Define engineering.
5.   Define tradeoff.

Some possible short answer questions you may see:

6.   What is the main problem being addressed by Parnas in his "Rational
Design Process" paper?
7.   What is the point of the "Process of Incompetence" paper we read
for class?
8.   Why does Jackson say that software developers are "general 
engineers?"
9.   What does Brooks mean by "changeability?"  (complexity, etc)
10.  How does Beizer advise us to improve the gearhead (public) in her 
understanding of software?

Some possible essay questions for fuller consideration:

11.  Read Jackson p. 135-138 ("Object Oriented Analysis") and comment on his 
criticism of OOA as a method of requirements modeling.

12.  Back in the early 1990's, there were many who believed a good 
requirements specification language would be a subset of the actual 
programming language that was going to be used for the implementation. 
Do you believe this is a good idea?  Why or why not?