EECS 448 - Software Engineering I
Semester Test

Due date: Thursday, 4/29, in Class
Total points: 100

Advice and Instructions

This is a take home exercise, and as such has a somewhat different emphasis than an in-class test. The questions are designed to require a reasonable amount of thought on your part before answering them. They also require you to carefully consider what information is important in formulating a reasonable answer, and what is not. More is not necessarily better. In fact, more can sometimes be much worse. Especially when I have to read it 45 times!

The idea is for you to write an answer which presents a clear and simple line of reasoning leading to your conclusion. This means you must present the important points supporting your answer, show how they lead to the conclusion you desire, and why you discount any obvious counter-arguments. This does NOT mean that you have to write a novel for each question. Concise answers presenting relevant information clearly, uncluttered by extraneous details, are the ideal. This is also a primary software engineering skill, since a significant amount of communication on software projects is done in writing.

The rules are simple:

















Software Engineering Theory

Question 1 (20 points)

Although we saved time this semester by combining the Requirements and Specification documents, standard SWE procedure uses separate documents for these purposes. Compare and contrast the content and purpose of the following three documents: (1) Requirements, (2) Specification, and (3) Software Design.

Question 2 (20 points)

Most initial software requirements documents are both incomplete and inconsistent. (1) Discuss some reasons (at least three) why this is so, and (2) discuss how the use of a rapid prototype is intended to help reduce some ways in which such inconsistencies or incompleteness can arise. Finally, (3) discuss how your group's use of a RP helped make the requirements for your semester project more precise, or failed to do so, as the case may be.

Planning and Design

Question 3 (15 points)

The COCOMO model is a method of approximating development effort and duration, but it only produces an approximation. Considering the estimate you will produce with your group for GP #2, discuss three (3) plausible factors that may cause your estimate to be less accurate than you might wish.

Question 4 (20 points)

Draw a distinction between Object Oriented Design and Object Oriented Implementation. Briefly describe an application which could easily have an object oriented design but need not have an object oriented implementation. Illustrate your discussion with a plausible example of an object in the design and how it might be implemented in a language without explicit object support.

Software Development

Question 5 (15 points)

(1) Define the term regression fault , and explain why it is important to detect them as early as possible in the software development process. (2) Compare and contrast the effectiveness of manual checking vs that of automated checking methods in detecting regression faults.

Question 6 (10 points)

Describe some ways in which programming standards necessary for project success are likely to differ for a four person software development organization compared to those in organizations with four hundred programmers. Specifically address issues related to software design, coding standards, and methods of communication among programmers.