ICS 52 - Introduction to Software Engineering
Spring, 1999

Final Exam

  1. (5 points each, 30 points total) Define each of the following terms, as used in software engineering.
    1. Test case

    2. Function point system

    3. Failure (in testing)

    4. Software configuration management

    5. Testing oracle

    6. Stub

  2. (5 points) Define and contrast the terms high-level or architectural design and low-level design.

  3. (6 points) Below is a USES diagram with fictional module names. For each node, write in the level number, as described in the textbook.

  4. (16 points) You have been assigned to design test cases for black box testing of an elevator system's scheduling function. The scheduler determines, for each elevator, whether it should move or stop, which direction it will move, and on which floors it will stop.
    1. What is the input domain?

    2. What is a basis for dividing the input domain into subdomains?

    3. Using the basis from (b), name three or four subdomains.

    4. For each subdomain from (c), give a test case input and the expected output.

  5. (15 points) Recall that the square of the length of the hypotenuse of a right triangle is equal to the sum of the squares of the lengths of the two other sides.

    The multHypot method is supposed to take three parameters, and return the product of the first parameter and the length of the hypotenuse of a right triangle in which the two sides adjacent to the right angle have the lengths given by the second and third parameters. Assume that the multHypot method is invoked elsewhere in the program with this statement: System.out.println(multHypot(i, j, k));, where i, j, and k are doubles.

    	double multHypot(double factor, double side1, double side2)
    	{
    	  // get length of hypotenuse
    	  double hyp = java.lang.Math.pow(side1*side1+side1*side2, 0.5);
    
    	  // multiply it by factor and return the result
    	  return factor * hyp;
    	}
    	
    1. (4 points) There is an error in multHypot. What is it?

    2. (7 points) The method could generate a fault that does not lead to a failure. Explain how, specifying the parameters, the fault, and why no failure occurs.

    3. (4 points) Give an example of input parameters that cause a failure, and say what the failure is.

  6. (10 points) Draw below a diagram representing the ``waterfall'' software process model.

  7. (3 points) Which of the following is not noted by the textbook as a standard part of a feasibility study? (choose one)
    1. a definition of the problem.
    2. alternative solutions.
    3. a high-level design.
    4. required resources and costs.
    5. required delivery dates.

  8. (3 points) In object oriented design, an heir module (choose one)
    1. abstracts its parent module.
    2. USES its parent module.
    3. COMPRISES its parent module.
    4. is more specialized than its parent module.
    5. all of the above.

  9. (3 points) Black box testing tests (choose one)
    1. what the program is supposed to do.
    2. the node coverage condition.
    3. the program's validity.
    4. the program's errors, faults, and failures.
    5. the program's control flow graph.

  10. (3 points) Proceeding directly from module testing to system testing is called (choose one)
    1. yo-yo testing.
    2. big-bang testing.
    3. testing in the large.
    4. testing in the small.
    5. top-down testing.

  11. (3 points) The textbook states that in order to achieve modular composability, decomposability, and understanding, modules must have (choose one)
    1. high cohesion and low coupling.
    2. high cohesion and high coupling.
    3. low cohesion and low coupling.
    4. low cohesion and high coupling.
    5. either (a) or (d).

  12. (3 points) Testing that newly added functionality does not introduce errors into software that was previously correct is called (choose one)
    1. testing in the large.
    2. overload testing.
    3. structural testing.
    4. cause-effect graph testing.
    5. regression testing.