1. What are the elements of a software architecture? What role does a software architecture description play in development?
  2. Give a definition of software architecture. Can you think of alternative definitions?
  3. What kind of patterns can you think of for distributed object architectures?
  4. Give an example of a complex software architecture. Can you relate the description of the architecture to the definition given earlier?
  5. Discuss the possible motivations for deploying embedded logic.
  6. How would you extend a given imperative or declarative language with objects?
  7. Discuss the Java Native Interface. Does it provide a solution for the problem posed in the previous question? Explain.
  8. What determines the choice for an architectural style? Give an example!