SoftwarePractice.org: Home | Courseware | Wiki | Archive

Module 4: Execution Architecture

From SoftwarePractice.org

Module 4 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 execution architecture?
  2. What is concurrency?
  3. Is a process safer than a thread? Why?
  4. What is the relationship between concurrent subsystems and compute nodes?
  5. Name some common sub-systems that are good candidates for concurrent components. Briefly explain why they are good candidates.
  6. If a database was not a concurrent component, what would be some of the consequences?
  7. What are some typical costs of making components concurrent?
  8. What are some typical benefits of making components concurrent?
  9. What is a passive component? What is it useful for?
  10. Explain the difference between a synchronous call and a callback.
  11. Describe the concurrent subsystems view. Draw a small example.
  12. Describe the process view. Draw a small example.
  13. Give some examples of active components, and explain why they are should be stereotyped as active components.
  14. Give some examples of service components, and explain why they are should be stereotyped as service components.
  15. What is a physical view?
  16. Give examples of physical components.
  17. What is a deployment view?
  18. In what ways do performance needs affect deployment?
  19. In what ways do security needs affect deployment?
  20. In what ways do reliability needs affect deployment?
  21. How can use-case maps be used for aid analysis of runtime quality attributes? Give a short example.

Exploration questions

  1. Based on the use-case maps of your architecture, which components do you see to be concurrent? How much benefit do you find to use-case maps for understanding concurrent behavior?
    1. Draw a concurrent subsystems view for your architecture.
    2. Draw a process view for your architecture.
    3. Compare and contrast the above.
  2. Allocate the conceptual components of your architecture to your concurrent subsystems.
    1. Are all responsibilities accounted for?
    2. What new responsibilities do you see in the execution architecture?
  3. What kinds of additional information might you add to a physical view?
  4. Give several reasons why a software element might be mapped to a particular piece of hardware.

Related articles

  • (None listed.)
Personal tools