Software architecture involves the most significant decisions about the organization of software solution.
- Selecting the stuctural elements and their interfaces that compose system
- specifying the brhavior of the system as collaborations among those elements
- composing these structural and behvioral elementsinto larger subsystems
- applying an architectural style that guides this organization
purpose of architecture
-
understanding
- simplifies by abstracting
- provides blueprints
- exposes ares of risk
-
commmunicating
- communicates key informationn
- provides different views or perspectives
- capture the concern of all stakeholders
- makes design decisions
-
difficzult development
-
poor qualiti conditions
- thinking about applications has moved up tot the whiteboard phse
- team members and businesses partners should not have to ask questions such as: what does that arrow mean? is that monolith or set of microservices?
- insted the discussions should focus on services being delivered to the business
- there is no big design up front
commmon misconseptions about architecture
- architeccture is a design -> not only
- architecture is infrastructure
- architecture is just structure
- architecture is flat and one blueprint is enough
- architecture cannot be mesredor validated
- arcchitecture is pure art
- architecture is pure art
differend kinds of parameters
- idioms - proraming level
- analysis and design patterns - class level
- architecural patt
- enterprise level
- top down
- bottom up
- meet in the midle