List all architectural drivers.
High-level functionality.
Technical constraints.
Business constraints.
Quality attribute requirements.
Give me an example of a user story.
As a [Who]
I want [What]
So that [Why]
What's the general idea of domain driven design?
Developers should work together with domain experts.
What are design patterns?
Patterns are proven (conceptual) solutions to recurring design problems.
True or false:
Methodology doesn’t change as fast as tools do.
True.
As an architect, you need to make a lot of d _ _ _ _ _ _ _ _.
decisions
What's the problem with using natural language in software construction?
Software construction needs a high degree of precision, but natural language is notoriously imprecise.
The most important thing to remember about any kind of design (including DDD and ADD) is to _ _ _ _ _ _ _!
iterate!
What is a tier?
It's a group of servers that do similar tasks.
What is the source of all evil in scaling and deployment? ;)
Databases.
How many phases are there in the Simplified Software Lifecycle?
Three phases.
Phase 1 - requirements.
Phase 2 - architecture.
Phase 3 - implementation.
What can we do to make the natural language approach more precise?
We can use templates or schemas.
What are the components of DDD (the spaces)?
The problem space and the solution space.
There are 3 groups of "Gang of Four" patterns. Name any 2.
Creational. Structural. Behavioral
What do we use the C4 model for?
We use it to visualize software architecture.
True or false: Functional requirements usually have a major impact on design decisions.
False. Functional requirements usually have little impact on design decisions
Name a popular tactic to increase testability.
Create an abstraction class for data sources.
What kind of dictionary do we need to establish? Why?
We should establish a common dictionary so developers and experts can agree on the definition of words in the project. This helps prevent confusion later on.
When should we use a non-distributed system instead of a distributed system?
You expect < 100 users/day.
Low data traffic.
No data constraints.
Which quality attributes are important for most architectural docs? (name at least one -bility)
Usability. Traceability. Maintainability.
Testability is also nice to have.
When working on coding assignments in university, why didn’t you have to deal with architecture?
Because there were no business goals or quality requirements. You simply had to make the code work one time.
Describe a semi-formal approach to architecture.
Use partially formalized notations like UML or similar notations.
Name the 3 types of subdomains.
The core subdomain.
The supporting subdomain.
The generic subdomain.
What's the difference between Blue-Green Deployment and Canary Deployment?
Blue-Green Deployment: Switch traffic from one version to another.
Canary Deployment: Switch traffic from one version to another version, one server at a time.
What's worth 40% of your grade for this course?
The course project :)