Architectural Drivers
Specification Methods
Domain Driven Design
Patterns
Miscellaneous
100

List all architectural drivers.

High-level functionality.
Technical constraints.
Business constraints.
Quality attribute requirements.

100

Give me an example of a user story.

As a [Who]
I want [What]
So that [Why]

100

What's the general idea of domain driven design?

Developers should work together with domain experts.

100

What are design patterns?

Patterns are proven (conceptual) solutions to recurring design problems.

100

True or false:

Methodology doesn’t change as fast as tools do.

True.

200

As an architect, you need to make a lot of d _ _ _ _ _ _ _ _. 

decisions

200

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.

200

The most important thing to remember about any kind of design (including DDD and ADD) is to  _ _ _ _ _ _ _!

iterate!

200

What is a tier?

It's a group of servers that do similar tasks.

200

What is the source of all evil in scaling and deployment? ;)

Databases.

300

How many phases are there in the Simplified Software Lifecycle?


Three phases.
Phase 1 - requirements.
Phase 2 - architecture.
Phase 3 - implementation.

300

What can we do to make the natural language approach more precise?

We can use templates or schemas.

300

What are the components of DDD (the spaces)?

The problem space and the solution space.

300

There are 3 groups of "Gang of Four" patterns. Name any 2.

Creational. Structural. Behavioral

300

What do we use the C4 model for?

We use it to visualize software architecture.

400

True or false: Functional requirements usually have a major impact on design decisions.

False. Functional requirements usually have little impact on design decisions

400

Name a popular tactic to increase testability.

Create an abstraction class for data sources.

400

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.

400

When should we use a non-distributed system instead of a distributed system?

You expect < 100 users/day.
Low data traffic.
No data constraints.

400

Which quality attributes are important for most architectural docs? (name at least one -bility)

Usability. Traceability. Maintainability.
Testability is also nice to have.

500

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.

500

Describe a semi-formal approach to architecture.

Use partially formalized notations like UML or similar notations.

500

Name the 3 types of subdomains.

The core subdomain.
The supporting subdomain.
The generic subdomain.

500

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.

500

What's worth 40% of your grade for this course?

The course project :)

M
e
n
u