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 |
[edit]
Text-reading questions
- What is execution architecture?
- What is concurrency?
- Is a process safer than a thread? Why?
- What is the relationship between concurrent subsystems and compute nodes?
- Name some common sub-systems that are good candidates for concurrent components. Briefly explain why they are good candidates.
- If a database was not a concurrent component, what would be some of the consequences?
- What are some typical costs of making components concurrent?
- What are some typical benefits of making components concurrent?
- What is a passive component? What is it useful for?
- Explain the difference between a synchronous call and a callback.
- Describe the concurrent subsystems view. Draw a small example.
- Describe the process view. Draw a small example.
- Give some examples of active components, and explain why they are should be stereotyped as active components.
- Give some examples of service components, and explain why they are should be stereotyped as service components.
- What is a physical view?
- Give examples of physical components.
- What is a deployment view?
- In what ways do performance needs affect deployment?
- In what ways do security needs affect deployment?
- In what ways do reliability needs affect deployment?
- How can use-case maps be used for aid analysis of runtime quality attributes? Give a short example.
[edit]
Exploration questions
- 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?
- Draw a concurrent subsystems view for your architecture.
- Draw a process view for your architecture.
- Compare and contrast the above.
- Allocate the conceptual components of your architecture to your concurrent subsystems.
- Are all responsibilities accounted for?
- What new responsibilities do you see in the execution architecture?
- What kinds of additional information might you add to a physical view?
- Give several reasons why a software element might be mapped to a particular piece of hardware.
[edit]
Related articles
- (None listed.)
