Department of Computer Science
Michigan Technological University
CS5711 - ADVANCED SOFTWARE ENGINEERING
Fall 2003
Final Exam Due Wednesday, December 17 5:00 PM
This exam is to be completed on an individual basis.
Discussion of the questions or related material is not permitted
while this exam is on-going. Any external material used
should be paraphrased and clearly referenced. Pay attention to the
point distribution when you are answering the questions. Remember
this is my chance to see that you learned something this semester
so answer the questions carefully and with well-thought out
and well-justified answers.
Question 1. (20%)
Early this term we read Brooks article, ``No Silver
Bullet" which in places is clearly dated.
-
If you were writing such an article today, what current ``hot topics''
do you believe should be discussed in the article? Why?
-
Do you now agree with Brooks' distinction between ``essence'' and
``accidental issues''? Explain your answer.
-
As Brooks alludes to in his article, we often are faced with
deciding if the current ``hot'' technology in software engineering is
the right way to go. As an example, in the past we ``preached''
structured programming, nowadays we ``preach'' object-oriented
programming. Pick some current ``hot'' technology in software
engineering
and describe a possible experiment to help determine if indeed this
practice is providing some desirable benefit.
Question 2. The Basics (10%)
Provide a solid definition for each of the following terms assuming,
of course, a software engineering context:
- Spiral Process Model
- Extreme Programming
- Debugging
- Reengineering
- Design Pattern
Question 3. (15%)
A topic that we really did not cover this semester is open source
software development. Assume that you are a project manager
with a tight deadline and that the most likely way to meet that
deadline is through software reuse. Would you be more likely to
consider "COTS" or open-source software? What considerations would
affect your decision? What would you do to ensure the
software you chose to incorporate into your system was of appropriate
quality?
Question 4. (20%)
Consider the following two scenarios, assume that you are the
project manager for each of these projects and answer the questions
below:
Scenario 1: Assume that the software being developed is a
web-based point of sale for computer games and digital music.
Scenario 2: Assume that the software being developed is
an educational game for kids under 3.
- What approach would you think appropriate to use for requirements
gathering for each scenario? Why?
- In your opinion for the development environment to
be most suited for the this type of application, what CMM level
would you expect the company to be at? Why?
- What software process model do you think is appropriate for
each scenario? Why?
Question 5. (5%)
Explain the difference between software verification and software
validation. What is the importance of each? How would you go
about doing each?
Question 6. (10%)
What do you believe is the most important thing that you
learned about software engineering in this course? Why?
Question 7. (10%)
- What 3 articles that we have read do you think I
should definitely keep on my reading list for next year?
- What 3 articles do you think I should definitely eliminate from my
reading list for next year?
Justify your answers.