CpSc 372

Exam 1

 

Name______________________________________________

 

Answer any FIVE of the six questions. If you answer all six, one of them will NOT be graded. All questions are counted the same: 20 points each.

 

  1. The Unified Modeling Language (UML) defines a syntax that can be used to describe various types of development artifacts.
    1. Explain the meaning and purpose of each of the symbols. Also tell what each text string names.

 

The entire box is a class definition box

+ public attribute  # protected attribute  - private attribute; name in the top third of the box is the class name; names in the middle third are attribute names; after the colon is the type of each attribute; names in bottom third are operation names; void indicates no value is returned

 

 

 

    1. What information is given by the following UML diagram?

The class GameBoard depends upon the class Sprite; and defines an attribute called puck of type Sprite; the class also defines a method move with no return value

    1. Explain the difference between a sequence diagram and an activity diagram. (Difference does not mean define both. It means tell how are they different.)

 

The difference is how much of an algorithm they show. The sequence diagram shows exactly one path while the activity diagram shows all possible paths

 

    1. What relationship(s) are there between a class diagram and a sequence diagram?

There can only be messages between objects that are related on the class diagram by association or aggregation


 

 

  1. Consider a software system that automates the grading of computer science exams. The system would be built by faculty and students. It would use an experimental pattern recognition system to locate phrases from the exam key in the answers that students write on exam papers. The system would be written in LISP, a language most of the faculty and students have known for a long time. The user interface would be a simple web page that accepts the filename for the exam key and a directory name in which the exam papers are stored.
    1. Describe two actors for such a system.
    2. Define an abstract level use case for the system.
    3. Define a system end-to-end use case that specializes the abstract use case you created in (b).
    4. Draw the use case diagram for this (a), (b), and (c).

 

 

Actors: faculty member and TA

Abstract use case: The actor uses the system to grade an exam.

Concrete use case: The actor uses the system to grade the first exam in CpSc 372.


 

  1. For the system described in question 2,
    1. Give a complete (4 piece) statement of one risk associated with this system.

The system may count an incorrect answer as correct. (event)

This is quite likely (probability)

The student’s score will be higher than it should be. (cost)

A human will scan all incorrect answers. (mitigation)

 

    1. Describe what each of the four pieces of a risk statement mean.

The event is what could go wrong.

The probability estimates how likely it is to go wrong.

The cost is the penalty that will be paid if something goes wrong.

Mitigation is what we will do to reduce the probability that the event will occur.

 

    1. Consider the elements of a feasibility study. What information would you collect to show that this project (building the system described in question 2) is feasible.

Examples of similar grading programs

 

    1. Who in the organization performs a feasibility study?

It is a combined effort. It is led by management, maybe the prospective project leader. Technical people are also used to evaluate the technical aspects.

 


 

  1. One of the architecture patterns we discussed was the Model/View/Controller.
    1. What role does each of the three components play in the architecture?

Model maintains the state of the system

View maintains the graphical presentation

Controller allows a user to input data or change a display by scrolling or other actions.

 

    1. What are the basic assumptions about a system that is based on MVC?

We will have several views for each Model and these will change over the product’s life cycle. Adding a new View should be easy.

 

Time is not a critical factor.

 

    1. Describe how the system in question 2 would fit with the MVC architecture? Describe what part of the functionality would be in each of the three parts of the architecture?

It would not fit well. The program is a batch application with little or no user interaction.

 

    1. How does the system in question 2 differ from the ArcadeGame products we are building? How does this affect the architecture?

The system in #2 is a batch system with little user interaction while the ArcadeGames are heavily interactive. The pattern recognition algorithm will be complex while the animation algorithm will be simple.

 


 

  1. ArcadeGame product line
    1. The product line architecture is an important asset of the organization. Why is an architecture an important asset?

The architecture defines the underlying structure upon which everything else is built.

 

    1. How is the role of the core asset developer different from the role of the product developer? How are they the same?

 

The core asset developer takes a view of all the products in the product line and the product developer focuses on just one product.

Both roles are building pieces needed for a  final product.

 

    1. What is the purpose of the Scope document? If we “broaden” the scope of the product line how is the product line different?

The scope document defines which products are in the product line and which are not.

By broadening the scope we include more products.

 

    1. What is the purpose of the CONOPS document?

The CONOPS defines the organizational structure of the product line organization. It defines the chain of command for various types of decisions.

 

 

 


 

  1. A process model determines the sequence in which a set of process phases is carried out.
    1. Select two of the models we studied and compare them to each other. What does model A do better than model B? What does model B do better than model A?

Take the waterfall and the iterative models. The waterfall is better about estimating when a project will be complete. The iterative is better at moving forward even when some information is missing.

 

 

    1. The phases that constitute the software development life cycle do not change from one process model to another. List the phases in the life cycle of developing a product. Give a brief description of each phase.

 

Requirements – interaction with client/users to determine WHAT  the system should do

Analysis – examination of the requirements and the surrounding domain to determine if the requirements are correct, complete, consistent

Architectural design – determines the overall structure of the program

Detailed design – decides on the exact classes and their interrelationships

Construction – the classes are built

System testing – the pieces are tested as a complete system to determine whether they do everything the system is supposed to do

 

 

    1. What is the difference between the outputs from a process phase and the exit criteria for that phase?

 

The outputs are the deliverables that have been prepared during the phase. The exit criteria are the measures of how complete, correct and consistent those outputs are.