SWE 2410 Exam 1 Prep

Draft!

Closed-book, closed-note, and using Canvas.

Review

Bring your textbook to the review!

These are sample questions; some may be on the exam, but the exam question is likely to be worded differently and there will be questions on other material as well. Use these to make sure you are familiar with each of the topics, to get practice thinking about the sorts of questions you will see, and to make sure you know the technical terminology.

General approach:

Topics

The exam will cover all of the material since the beginning of the term. Ask if you are not quite sure what material that includes! Some key things to know: This is not a comprehensive list. But these items tend to show up on quizzes and exams, so provide a solid starting point. Do read the textbook: it gives important context that helps you remember key concepts and explanations.

Review Questions

  1. What are advantages of object-oriented designs over non-OO designs (that is, procedural designs: collections of steps)?
  2. What would you tell a student in Data Structures to encourage them to prioritize domain classes in their designs?
  3. Give three or more examples of classes that would appear in a solution space but not a problem space.
  4. What are the goals of the noun (and verb) identification method for systems design?
  5. Name 3 things that fail to have identity.
  6. Consider a registration system: what would be good responsibilities for
    • Class, Section, Schedule, Room, Student, Instructor, Professor
    • Draw a class diagram showing the relationships between these (and any other obvious classes).
    • How would advisors be handled in this system?
  7. Suppose a design includes a class called Main that captures the main in a program along with other stuff. Explain how this class violates the RIBS criteria in multiple ways.
  8. Explain how a high-level class diagram (covering just domain classes) is useful in system design.
  9. How would you describe the design pattern for a classroom? What would be the features? What would be reasons to not apply this pattern?
  10. Identify how the Decorator pattern could be applied to a classroom in a software system, describe that system, and draw a diagram showing the application. Which classes need to be abstract or interfaces?
  11. Give significant differences between the Strategy and Decorator patterns (so that a programmer could decide which to use).
  12. Explain a possible reason behind the name of the worst type of coupling, "content coupling". That is, explain the use of "content" in that context.
  13. What type of cohesion does a Java program exhibit if it has just one class, Main? Explain.
  14. What is the difference between temporal cohesion and procedural cohesion?
  15. Why do you suppose the highest form of cohesion is termed "functional"?