CPSC 421 OOP Final Exam Crossword II

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
Across
  1. 2. A Car class that, in addition to the method drive(), has an approveParking() method is an example of _____ responsibilities
  2. 5. The base handler class is always _____
  3. 9. An AKA for PIMPL is _____ _____
  4. 12. In the example used for Dependency Injection, the class _____ is in the role of Strategy in the Strategy Pattern
  5. 15. SRP is short for the Single _____ Principle
  6. 16. std::unique_ptr<> can work with _____ types
  7. 19. _____ adds external complexity
  8. 21. API is short of Application Programming _____
  9. 22. Under LSP, _____ of the supertype must be preserved in the subtype
  10. 24. In the example used for Dependency Injection, the class _____ is in the role of a ConcreteStrategy in the Strategy Pattern
  11. 28. SOLID principles are meant to be _____ together
  12. 31. DIP is short for the Dependency _____ Principle
  13. 34. A large set of classes for a broad set of purposes is a _____
  14. 36. Responsibility should be entirely _____ by the class
  15. 37. The name of the PIMPL pointer of the class Good
  16. 39. Software entities should be closed for _____
  17. 41. SOLID principles do not guarantee _____
  18. 43. Modern design is the design of APIs and how they _____ with each other
  19. 44. By a class being _____, we mean any new class can inherit and add new features
  20. 49. Dependency Injection is a broader form of _____ _____ _____
  21. 50. An AKA for PIMPL is compiler _____
  22. 51. Handlers reduce _____
  23. 55. Selecting which implementation of a polymorphic operation (method or function) to call at run time is _____ _____
  24. 57. Requirements for _____ can vary over time on a project
  25. 60. A client using the class Good must recompile whenever we _____ a data member
  26. 61. Low external complexity often means high _____ _____
  27. 66. Good APIs are _____ enough
  28. 69. Every _____ should have a single responsibility
  29. 70. Functions/classes typically for a single purpose is a _____
  30. 72. In the Test Code Solution, the method _____() is an extension of the interface of DBAccessor
  31. 74. A partial solution to complexity is _____ features
  32. 75. Replaces subclassing a large, complex class with subclassing a _____ interface
  33. 76. Have to develop the _____ to know when is enough
  34. 77. Good APIs are _____ enough
  35. 78. Typically we use a struct instead of a class for the implementation of PIMPL since there is no need to keep it _____
  36. 80. Software entities should be open for _____
  37. 84. One advantage of Dependency Injection is that it _____ code
  38. 90. In the implementation of the methods, access to data members is through a _____
  39. 91. Dependency Injection introduces a controlled increase in _____
  40. 92. A principle used in conjunction with SOLID
  41. 95. Under _____, we depend upon abstractions, not concretions
  42. 96. SOLID principles are _____
  43. 97. LSP is short for the _____ Substitution Principle
  44. 100. OCP where implementation is extended through inheritance, is _____'s OCP
  45. 101. A partial solution to complexity is good _____
  46. 104. Selecting which implementation of an operation (method or function) to call at compile time is _____ _____
  47. 105. Under _____, objects in a program should be replaceable with an instance of subtypes without affecting program correctness
  48. 106. Dependency Injection often _____ the interface beyond that of the regular client
  49. 109. Under LSP, _____ _____ states that new methods in subtype cannot introduce state changes in a way that is not permissible in the supertype
  50. 110. C++ uses static dispatch for _____-virtual methods
  51. 111. Imagine _____ developers working on the different parts
  52. 112. In the UML Sequence Diagram, the class _____ simulates a database
Down
  1. 1. In the original UML and Code, the class _____ makes requests of the class DBUtilities
  2. 2. Handlers allow for _____ template methods
  3. 3. The traditional layered architecture _____ DIP
  4. 4. OCP is short for the _____/closed Principle
  5. 6. With ISP, we prefer _____ _____ interfaces to a general interface
  6. 7. Large programs are more complex than small programs by an _____ _____ _____
  7. 8. The first part of the vtable is typeinfo (Yes, I am giving you the answer)
  8. 10. PIMPL is short for _____ to implementation
  9. 11. In the motivating example of class Good, the name of the std::vector data member
  10. 13. A class that _____ from a class with virtual methods also has a vtable
  11. 14. With a default destructor and std::unique_ptr<>, you need to use the keyword _____ with the destructor definition
  12. 17. Developers build large programs using _____ APIs as much as possible
  13. 18. Under DIP, details should depend on _____
  14. 20. The _____ states that many client-specific interfaces are better than one general-purpose interface
  15. 23. Another advantage of Dependency Injection is that it can be used for frameworks for creating _____ _____
  16. 25. Allows _____ handlers to be created and shared
  17. 26. Methods are _____
  18. 27. ISP is short for the _____ Segregation Principle
  19. 29. According to [Koenig, Moo], library design is _____ design
  20. 30. For each method in the handler, the ConcreteClass must provide a _____
  21. 32. SOLID principles make it more likely that the system is easy to _____ over time
  22. 33. APIs are a large-scale mechanism for _____ _____ _____
  23. 35. Use std::unique_ptr<> instead of a raw pointer for _____
  24. 38. An entire programming environment, often with a custom language and IDE, is a _____
  25. 40. The name of the struct for the PIMPL implementation of the class Good
  26. 42. A client using the class Good must recompile whenever we change the _____ of a data member
  27. 45. Abstractions can have a _____ cost
  28. 46. Can add a new data member without violating _____ compatibility
  29. 47. The goal is to separate _____ operations from the rest of the class interface
  30. 48. Abstractions can have a _____ _____ cost
  31. 52. A vtable is created for every class that has _____ _____
  32. 53. According to [Koenig, Moo], language design is _____ design
  33. 54. The term "vtable" is short for _____ _____
  34. 56. Functions/classes for a set of related purposes is a _____
  35. 58. A client using the class Good must recompile whenever we _____ a data member
  36. 59. In the example used for Dependency Injection, the class _____ is in the role of a ConcreteStrategy in the Strategy Pattern
  37. 62. OCP with an abstract base class and we focus on the interface, not the implementation is _____ OCP
  38. 63. Create new APIs for any _____ functionality
  39. 64. An advantage of PIMPL is that the class implementation is ______
  40. 65. We can organize types of APIs into a _____
  41. 67. An essential skill of development is to forget and _____ on the current task
  42. 68. Easier to test, as can test _____ handlers
  43. 71. SOLID principles can be _____
  44. 73. By a class being _____, we mean it can be compiled, stored in a library, and used by client classes
  45. 79. C++ uses dynamic dispatch for virtual methods via a _____
  46. 81. In the original UML and Code, the class _____ is the only class that interacts with the database
  47. 82. Under _____, a client should not be forced to depend on methods it does not use
  48. 83. Under LSP, _____ cannot be strengthened in a subtype
  49. 85. Under LSP, _____ cannot be weakened in a subtype
  50. 86. C++ uses static dispatch for _____ methods
  51. 87. In the motivating example of class Good, the name of the std::optional data member
  52. 88. The composition and frequency of _____ indicate how tasks are isolated
  53. 89. Handlers are almost always _____ _____ or empty methods
  54. 93. C++ uses static dispatch for _____
  55. 94. Good APIs have low _____
  56. 96. A set of principles used in conjunction with SOLID
  57. 98. The template method uses the _____ to call the primitive operations
  58. 99. Under DIP, abstractions should not depend on _____
  59. 102. The primary purpose of Dependency Injection is for _____
  60. 103. C++ uses dynamic dispatch for virtual methods via a _____
  61. 107. Good APIs have a high degree of _____
  62. 108. One disadvantage of Dependency Injection is that it creates _____ classes