---
# System prepended metadata

title: Screaming Architecture

---

---
slideOptions:
  transition: slide
---

# Screaming Architecture

---

### Core concept

1. What does the architecture of your application scream?
2. Highest-level package



---

### THE THEME OF AN ARCHITECTURE

- OOSE - A Use Case Driven Approach
- Frameworks are tools to be used, not architectures to be conformed to
- Architectures are not (or should not be) about frameworks.

---


### THE PURPOSE OF AN ARCHITECTURE

- Good architectures are centered on use cases 
- A good software architecture allows decisions about frameworks, databases, web servers, and other environmental issues and tools to be deferred and delayed

---

### BUT WHAT ABOUT THE WEB?

- Is the web an architecture? 
- The web is a delivery mechanism
- Application is delivered over the web is a detail and should not dominate your system structure.

---

### FRAMEWORKS ARE TOOLS, NOT WAYS OF LIFE
- Frameworks can be very powerful and very useful.
- costs? 
- Think about how you can preserve the use-case emphasis of your architecture

---

### TESTABLE ARCHITECTURES
- System architecture is all about the use cases
- use-case objects should coordinate your Entity objects

---

### CONCLUSION
- first impression
- New programmers should be able to learn all the use cases of the system, yet still not know how the system is delivered. 
