CSE584,
Assignment #1, 1 April 1997, due 8 April 1997
This assignment covers basic introductory material in software
engineering. The intent of the assignment is four-fold: one, to
get us on the same page with respect to fundamental questions in
software engineering; two, to start to look more deeply at the
relationship between the state-of-the-art and the
state-of-the-practice; three, to identify some of our underlying
biases about the potential benefits of various approaches that
might improve our ability to engineer software; and four, to
start introspecting about how we engineer software.
You may work in pairs (for experience questions, you may
provide one answer as long as you identify who had the
experience), and the assignment is worth 5% of the grade in the
course (see introductory
handout). I prefer it if you submit your assignment
electronically, although it's your call. Ideally, you could send
me a URL to a web page with the solutions.
- (20 points)
- Crisply identify a situation in which
you let implementation bias creep into your
(formal or informal) requirements specification.
- Crisply identify a situation in which a
more formal method would have improved your
engineering of any aspect of a software system.
- Crisply identify a situation in which an
unanticipated change to a system you worked on
arose caused costs that were significantly higher
than one might have hoped.
- Crisply identify a situation in which,
due to deadline pressures, you chose to use an
ostensibly less appropriate software engineering
technique than you would have given more time.
Were there any identifiable downstream
consequences of this decision?
- (20 points) Critique, in about one page, Steve
McConnell's list of Software's
Ten Essentials (from Best Practices, IEEE Software,
Vol. 14, No. 2, March / April 1997 ). In particular,
identify whether your list would be identical (and why)
or whether you would replace several of his items with
others (listing which you would replace, what you would
replace them with, and why you prefer yours).
- (10 points) In our readings, on the Web, or in other
software engineering literature, identify at least three
costs of that each account for about 50% or more of total
lifecycle costs. (Yes, this doesn't make sense, but there
are numerous such claims.) For example, I always say that
software maintenance accounts for over 50% of the cost of
the software lifecycle, citing (among others) Lientz and
Swanson.
- (10 points) Find an anecdote about a problem we always
hear complaints about with respect to software, but that
arose in a different domain. For an example, see a
discussion of a salvage
problem.