JMU CS345 - Software Engineering
Help Policies Solutions Study-Aids Syllabus Tools
Sample Questions for Examination 1


    Software Processes, Product Design and Engineering Design
  1. Indicate whether each of the following statements is true or false:
    (1) _____ The system is never an actor in a Use Case Diagram.
    (2) _____ A "high resolution" (a.k.a., "low abstraction") Use Case Diagram will tend to have a large number of use cases for the amount of functionality in the system.
    (3) _____ A non-functional requirement is a statement that a product must have certain properties.
  2. Choose the best answer to each of the following:
    (1) _____ A system consists of:
    1. A set of objects
    2. The attributes of objects
    3. The relationships between objects
    4. All of the above
    (2) _____ Which of the following is a type of UML diagram:
    1. Activity
    2. Context
    3. User Interface
    4. None of the above
    (3) _____ Requirements can be recorded using:
    1. Natural language
    2. Formal methods
    3. Both of the above
    4. Neither of the above
    (4) _____ A model is typically:
    1. An abstraction of a target system
    2. A composition of a target system
    3. An inception of a target system
    4. All of the above
    (5) _____ A requirement is:
    1. A statement of a problem
    2. A statement of a solution
    3. Both of the above
    4. Neither of the above
  3. Based on an analysis of competitive products, you have determined that your new entry into the market will only be successful if a particular task involving the graphical user interface (GUI) can be completed within 3 seconds.
    1. In the Model Human, what are the three processors that are involved in GUI tasks?
    2. Fitt's law can be stated as follows: \[ T = a + b \cdot \log(D/S + 0.5) \]

      where \(T\) is the time to acquire a target, \(D\) is the distance to the target, and \(S\) is the size of the target. Explain the significance of Fitts's law.

  4. Briefly define the following:
    Design Pattern


    Niche Market


    Software Engineering Design


    Software Product Design


    User Interface


  5. Software engineering considers both technical matters and non-technical matters. List two technical matters and two non-technical matters that are within the domain of software engineering.
  6. Indicate the best match for each of the following:
    _____ The smallest parts of a system
    _____ A model of how a system changes over time
    _____ A prioritized list of features/requirements
    _____ A "heavyweight" software process
    _____ A model of what should happen
    _____ Are we building the right project?
    _____ Are we building the product right?
    1. Atoms
    2. Descriptive Model
    3. Dynamic Model
    4. Prescriptive Model
    5. Product Backlog
    6. Scrum
    7. Static Model
    8. Validation
    9. Verification
    10. Waterfall Process
  7. Is Scrum an iterative software process? Is it an incremental software process? Justify your answers.
  8. Consider the following UML Activity Diagram.

    ProcessOrder.gif

    1. Identify all of the activities in this diagram.
    2. Identify all of the object/data nodes in this diagram.
    3. Identify all of the actions in this diagram.
    4. Identify all of the decision nodes in this diagram.
    5. Identify all of the fork nodes in this diagram.
    6. Identify all of the join nodes in this diagram.
    7. Identify a control flow in this diagram.
    8. Identify a data flow in this diagram.
    9. Can "Pick Order" and "Create Invoice" occur at the same time?
    10. Can "Record Order" and "Ship" occur at the same time?
  9. Discuss the ways in which products can be categorized.
  10. Discuss the differences between needs and requirements (as we have used these terms in this course).
  11. Explain the principle of least astonishment as it relates to user interface design.
  12. Explain why (using what you know about human vision) you should not use red text on a blue background.
  13. What is wrong with (i.e., identify the problems/shortcomings in) the following domain glossary and needs list for the DogGone GPS-equipped dog collar monitoring system. (Note: The Stakeholder IDs are listed after each need.)

    Domain Glossary

    Collar - A band or chain fastened around the neck of an animal used as a means of restraint or identification.

    GPS - The Global Positioning System.

    GPS Receiver - A device that receives signals from GPS satellites and uses those signals to determine the devices longitude and latitude.

    UDP - The User Datagram Protocol

    WES - The Westminster Encryption Standard. A symmetric-key encryption algorithm developed by the Westminster Kennel Club.

    Needs List
    1. Users need to be able to provide the system with the ID to use. (C1)
    2. The system needs to report all NMEA messages. (C2)
    3. The system needs to transmit a message every 5 minutes. (C1, C2)
    4. The system needs to transmit messages to doggone.com on UDP port 22801.
    5. The system needs to run for at least 32 hours when the battery is fully-charged. (C2)

    6. The system needs to be reliable. (C1, L1)
    7. Each system needs to have a unique, pre-programmed ID. (L2)
    8. The system needs to encrypt messages using WES. (L1,L2)

  14. One could use UML Activity Diagrams instead of Use Case Descriptions to provide the details of how actors interact with the system. Explain why (natural language) Use Case Descriptions are more appropriate than Activity Diagrams for this purpose during the product design phase. (Hint: Think about how they are used and who uses them.)
  15. Though many people mistakenly omit them from Activity Diagrams, explain why it is important to include Merge Nodes and not just have multiple Flows enter an Action Node directly.
  16. Create a Use Case Diagram (in UML) for the following explanation of the workings 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.
  17. The following Use Case Description was written during the design of a card-based payment system:
    Use Case: 
         PayForProductWithCard
    
    Actors: 
         User, Bank, Cashier
    
    Trigger: 
         User inserts Card
    
    Precondition:
         The Cashier has taken the product from the User
         and entered the price of the product into the System.
    
    Basic Flow:
    
         1.  The System reads information off of the Card
    
         2.  The System prompts the User to enter the type of Card
             (presenting the options "Credit" and "Debit" and "Cancel").
    
         3.  The System displays the amount of the payment 
             (in dollars and cents).
    
         4.  The System prompts the User to approve the payment (presenting
             the options "Yes" and "No").
    
         5.  If the User approves the payment a transaction is sent to the
             Bank and the Cashier is notified to give the product to the User.
    
    Extensions:
    
         5a. If the User does not approve the payment, the Cashier
             is notified to keep the product and the System is reset.
    

    Identify all of the problems in this use case description and write an improved version.

  18. Draw the UML Class Diagram for the Composite Pattern. Explain all of the relationships in the diagram.
  19. Given the following Playable interface, Note class, and Chord class:
    /**
     * The requirements of a Playable in a song
     */
    public interface Playable
    {
        /**
         * Play this Playable
         */
        public abstract void play();
    }
      
    /**
     * A single Note in a song
     */
    public class Note implements Playable
    {
        // Details omitted
    
    
        /**
         * Explicit Value Constructor
         *
         * @param pitch    The pitch ('A','B','C','D','E','F', 'G' or 'R')
         * @param sharp    true for a sharp and false for a natural
         * @param octave   The octave (relative to middle C)
         * @param duration 1 for whole notes, 2 for half notes, etc...
         * @param dotted   Whether the note is dotted
         */
        public Note(char pitch,   boolean sharp, int octave, 
                    int duration, boolean dotted)
        {
           // Details Omitted
           
        }
    
    
        /**
         * Play this Note
         */
        public void play()
        {
           // Details omitted
        }
    }
      
    /**
     * A Chord in a song
     */
    public class Chord implements Playable
    {
        // Details omitted
    
    
        /**
         * Explicit Value Constructor
         *
         * @param notes   The Note objects in the Chord
         */
        public Chord(List<Note> notes)
        {
           // Details Omitted
           
        }
    
    
        /**
         * Play this Note
         */
        public void play()
        {
           // Details omitted
        }
        
    }
      

    create a Lyric class that specializes the Note and adds a void setSyllable(String s) method and a String getSyllable() method. Remember to include an appropriate constructor.

  20. 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.
  21. Compare and contrast the "Pipe and Filter" architectural style with the "Layered" architectural style.
  22. Explain how one distinguishes the client from the server in a client-server architecture.
  23. Comprehensive Questions
  24. In order for the grammar checker in your word processor to work correctly, many different modules must work correctly.
    1. What kind of UML diagram would you use to describe the static structure of such a system?
    2. What kind of UML diagram would you use to describe the dynamic behavior of such a system?
    3. How should you verify such a system? (Note: You must discuss both unit testing and system testing. You may also need to discuss other aspects of verification.)
  25. Indicate the best match for each of the following:
    _____ Creating a requirements specification
    _____ Defining components of the user interface
    _____ Selection of an architectural style
    _____ Solciting user needs
    _____ Selection of a design pattern
    _____ Characterizing users based on how they will interact with the system
    1. Product Design - Analysis Phase
    2. Product Design - Resolution Phase
    3. Engineering Design - Analysis Phase
    4. Engineering Design - Resolution Phase
  26. Tools
  27. Choose the best answer to each of the following:
    (1) _____ Eclipse is:
    1. A Java documentation tool.
    2. A WWW browser.
    3. An Integrated Development Environment
    4. All of the above
    5. None of the above
    (2) _____ Visual Paradigm is:
    1. A tool that was designed to facilitate a particular agile software development process.
    2. A tool that was designed to facilitate a particular heavyweight software development process.
    3. An Integrated Development Environment
    4. A GUI Sketch/Wireframe Tool
    5. All of the above
    6. None of the above

Copyright 2024