SoftwarePractice.org: Home | Courseware | Wiki | Archive

Module 6: Architectural Styles

From SoftwarePractice.org

Module 6 of the Foundations of Software Architecture course, based on A Software Architecture Primer by John Reekie and Rohan McAdam.


Contents

Text-reading questions

  1. What is a pattern?
  2. Why is it good that certain structures occur repeatedly in architecture and design?
  3. What is a pipe-and-filter architecture? Name some benefits and liabilities.
  4. What is a client-server architecture? Name some benefits and liabilities.
  5. What is the key characteristic that indicates a need for a layered architecture?
  6. Name three common examples of layered architectures.
  7. Who (typically) communicates with the top layer?
  8. Who (typically) communicates with the bottom layer?
  9. Can layer number $J$ depend on layer $J-2$?
  10. What are the two types of (recommended) interfaces to layers?
  11. What are the three tiers in the logical 3-tier model? What are the responsibilities of each tier?
  12. What is a thin client?
  13. What is the difference between a layered architecture and an N-tier architecture?

Exploration questions

  1. What is the most difficult part of designing a layered architecture?
  2. Describe the key lessons contained in the paper entitled The Big Ball of Mud, by Brian Foote and Joseph Yoder.

Related articles

  • (None listed.)
Personal tools