Sample Questions for the Final Exam


  1. Discuss whether or not the waterfall life cycle describes a temporal progression. Be careful to support your arguments.

  2. Discuss the differences between needs and requirements (as we have used these terms in this course).

  3. Discuss the differences between analysis and resolution (as we have used these terms in this course).

  4. Explain the difference between the phrases "secure by design" and "secure by default".

  5. Consider a system that allows people to determine the arrival status of an airline's flights (in real time) using the WWW. Explain the difference between attacks and threats in such a system.

  6. Carefully describe attack trees and how they are used. Why is an attack tree rooted in a threat?

  7. Again, consider a system that allows people to determine the arrival status of an airline's flights (in real time) using the WWW. Identify two domain requirements in such a system. (You may specify the requirements using structured natural language, a design description language, a graphical notation, or a mathematical notation.)

  8. Create a Use Case Diagram (in UML) for the following description of an Internet auction system:
    1. Types of users
      1. Anyone
        1. Anyone may use the search features of the system.
        2. Anyone may look at an auction's information.
      2. Members
        1. Only members may bid or place items for sale.
        2. All members must register with the system.
        3. Members must supply their name and a valid e-mail address.
        4. After registering, the system will create an account for the member.
          1. A password will be mailed to the e-mail address specified.
        5. Members must log in to bid or place an item for sale.
        6. Members who forget their password can have it re-mailed to them.
    2. Auctions
      1. An auction involves an item, a seller, and zero or more bidders.
      2. Items and sellers
        1. Sellers put up items for auction
        2. The item must include a name, a closing time, and a minimum bid.
        3. The item may include a description and a picture.
        4. Sellers may have any number of auctions active at one time.
      3. Bids and bidders
        1. Any member may bid in any auction.
        2. Bids may be placed at any time before the closing time.
        3. A bid must be at least the minimum bid, and higher than any bid so far.
      4. Ending an auction.
        1. No matter how an auction ends, it is immediately removed from the list of active auctions.
        2. If no bids are placed before the closing time, the auction is closed unsuccessfully and the seller notified by e-mail.
        3. If at least one legal bid has been placed before the closing time, the auction is closed successfully. The winning bidder and the seller are both mailed each other's contact information and the winning bid.
        4. The seller may cancel the auction up to 24 hours before the closing time. All bidders on this auction will be mailed a notice of the cancellation.
    3. Searching
      1. Any user may search through active auctions by keyword.
      2. All active auctions with name or description containing the keyword are presented to the user.
        1. The auctions are sorted by closing time in chronological order.
        2. The user may click a link to go directly to the auction.

    Create a use case diagram for this system.

  9. Discuss the differences between use cases and misuse cases.

  10. Do statechart diagrams eliminate the need for class models? Why or why not?

  11. The following model describes my current address book:
    1. Carefully interpret/explain this model.

    2. How can this model be improved?

    3. Build a new model that allows for people to be members of an organization. (Note: The organization should have one address and everybody associated with that organization should have that address. The organization may have a central phone number and email address and everybody associated with the organization may have one as well.)

  12. The following is a state diagram for the new cash registers being developed by "Quick-E-Mart".

    1. There is a major problem with this state diagram. What is it?

    2. How would you fix this problem? (You may modify the above diagram or draw a new one.)

  13. I've developed an email system called JMUmble. In this system, arriving messages are handled by a PostOffice object. Depending on how the system is configured at runtime, one or more objects might need to know when a message arrives. I have currently implemented several such classes: ScreenFlasher (which makes the entire screen flash -- you always know when a message has arrived), PopularityTimer (which starts a clock that show the amount of time since the most recent message arrived), and Mumbler (which uses speech generation to read the name of the person that sent the message -- this is where the system got its name). Use the observer pattern to develop a class model of this system (in UML). You do not need to include the attributes of each class, only the operations/methods. Include comments that describe each operation/method.

  14. The following class model uses the composite pattern:

    Implement the Drawing class in either Eiffel, C#, C++, Java, or Smalltalk. (Note: You may work at a computer when answering this question. That is, you may edit, compile, and execute your code before you "submit" it.)

  15. As you probably know, several manufacturers are in the process of designing hydrogen powered cars. For one such car, to avoid explosions, the user has to change a filter at regular intervals, has to avoid overfilling the car, and has to avoid allowing the car to become too empty. Identify three user errors that might occur and propose safety requirements that would avoid these errors resulting in an explosion.

  16. One system for treating cancer patients includes a device that delivers precise amount of radiation to tumor sites. This device is controlled by software.
    1. Identify two hazards that may arise in this system.

    2. For each hazard, suggest a defensive requirement that will reduce its probability.

  17. Using your knowledge of either Eiffel, C#, C++, Java, or Smalltalk, create a checklist of common errors that could not be detected by a compiler but that might be detected in a code inspection.

  18. The following method is written in Java:
        public static int calculate(int x, int y)
        {
           int        a, b;
    
           do
           {
              a = 1;
           
              if (x > y)
              {
                 a = 2;
              }
    
              x++;     
              b = x * a;
           }
           while (b <= 0);
           
           return b;         
        }
        

    Develop a set of test cases that will test every path through this method.

  19. The following fragment is written in Java:
        // Details omitted
    
         a = in.nextInt();
         b = in.nextInt();
         c = a/b;
        

    where the nextInt() method will return the next integer value in the input stream associated with in.

    1. Identify one fault in this fragment.

    2. Identify one failure that would be caused by this fault.

    3. A symptom is a characteristic of a failure that helps you recognize that a failure has occurred. Identify a symptom for this failure.

    4. Give one condition that will cause a fault in this fragment to result in a failure.

  20. Suppose you have developed two different plans for completing the same large project. One plan requires five years to complete and has the following annual costs:
          Year          Cost
            1         3,000,000
            2         2,700,000
            3         1,200,000
            4         5,100,000
            5         8,000,000
          
    The other plan requires eight years to complete and has the following annual costs:
          Year          Cost
            1         1,500,000
            2         1,500,000
            3         1,000,000
            4         2,400,000
            5           500,000
            6         1,500,000
            7         1,500,000
            8         2,100,000
            9         6,000,000
           10         2,000,000
          

    Calculate the present value of each of these two cost streams assuming a discount rate (i.e., interest rate) of 7 percent and that all costs are incurred at the end of the year.

  21. Given the following table:
                     Time
          Task     Required      Dependencies
            1          6              
            2          5              1
            3          2              1
            4          6              1
            5          4              2,3
            6          1              4
            7          2              4
            8          4              4
            9          3              2
           10          4              5,6
           11          1              7,8
           12          4              9,10
           13          2              6,11
           14          1              12,13
          
    1. Construct an activity network.

    2. Identify the critical path.

    3. Explain why delays in activities that do not lie on the critical path do not necessarily cause slippage in the overall schedule. Provide an example.

Copyright 2008