You are on page 1of 1

Theory Questionnaire (75 min)

1. Are design patterns a form of reuse? If so, what are you reusing?
2. Are design patterns a form of code reuse?
3. Is a hash table a form of code reuse?
4. Can any design solution be considered a design pattern?
5. Do design patterns provide architecture? Briefly explain your answer.
6. The first column below has the names of some design pattern and the second column has their intents but in
another order. Find a correct match between the two lists, by coupling the pattern number with the intent letter in
the two columns on the right.
Design pattern name Design pattern intent DPN DPI
1. Decorator a) A class of which only a single instance can exist. 1
2. Façade b) Separates object construction from its representation. 2
3. Command c) Creates an instance of several derived classes. 3
4. Iterator d) A fully initialized instance to be copied or cloned. 4
5. Singleton e) Creates an instance of several families of classes. 5
6. Composite f) Match interfaces of different classes. 6
7. Abstract Factory g) Separates an object’s interface from its implementation. 7
8. Proxy h) Transformations and computations on data streams dynamically connected. 8
9. Strategy i) A tree structure of simple and composite objects. 9
10. Template method j) Add responsibilities to objects dynamically. 10
11. Observer k) A single class that represents an entire subsystem. 11
12. Filter l) An object representing another object. 12
13. Builder m) Let’s pass requests along a sequence of handlers. Upon receiving a request, 13
each handler decides either to process the request or to pass it to the next
handler in the sequence.
14. Bridge n) A way to include language elements in a program. 14
15. Adapter o) Sequentially access the elements of a collection. 15
16. Factory method p) A way of notifying changes to a number of classes. 16
17. Interpreter q) Encapsulates an algorithm inside a class. 17
18. Prototype r) Defer the exact steps of an algorithm to a subclass. 18
19. Chain of responsibility s) Encapsulate a command request as an object. 19
7. You are building a system that relies on a complex algorithm, and that algorithm may be changed often due to
marketing pressures. What pattern would best support this?
8. You are building a system in which you want to separate the domain logic layer from the user interface layer. In
particular, you want to allow changes in the state of the domain logic layer objects to be reflected in changes to
one or more objects in the user interface layer. The domain layer shouldn’t know about the objects in the user
interface layer, or even how many there are. What pattern would best support this?
9. What is a service in software engineering? Enumerate at least three principles of the service orientation.
10. Describe the relationships between web service, interface and endpoint.
11. What is software design?
12. Enumerate five UML diagrams you should use for documenting software design.
13. In software design, you can count on one thing that is constant:
a) Analysis b) Changes c) Coding d) Inheritance.
14. What is a software architecture and its composing elements?
15. Enumerate and briefly describe the mobile code styles.
16. The Broker Architectural Pattern. Description, examples, benefits and liabilities.
17. Give a brief description to each of the following terms in the architectural design context:
a) Publish-subscribe b) Event handler c) Layer
18. Describe the Architectural Design Workflow.
19. Briefly explain Message Exchange Patterns.
20. What is a CORBA object?
21. What is the Shared Nothing Architecture? How does it scale?
22. Here is the structure of a typical web-based e-business system:

Propose two architectural styles that could be appropriate for this system. Identify the components and connectors of
the system and discuss their architectural features. Use a software architectural visual notation to describe these
architectures.
23. Enumerate three solutions for remote communication in distributed architectures.
24. Enumerate the main benefits of component-based architectures.
25. Briefly describe the passivation process in the J2EE technology.
26. What distinguishes microservices from other software services?
27. Sketch a Restful service request for modifying at 2000 salary of John, an employee stored in the web resource
…/personnel.

You might also like