Overview Flashcards

1
Q

If you’re designing the network in the organization, and decides on the specific configuration of the servers, what kind of Architect are you?

A

Infrastructure Architect

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

The Software Architect’s mission is to design a system that is:

A

Fast, Secure, Reliable and easy to maintain

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Do Software Architects have to be able to code?

A

Yes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Which of the following jobs can help you get promoted to a Software Architect?

A

Developer, Team Leader, CTO

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

As an architect, what knowledge you should have BEFORE beginning work for a new company?

A

How is this company doing business-wise

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the difference between “System Requirements” and “System Goals”?

A

Requirements describe what the system should do, goals describe how the system will help the organisation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is the difference between “System Requirements” and “System Goals”?

A

This architecture’s goal is to help us complete the project in half the time, using the budget, without any compromise on quality

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

It’s important to closely follow the architecture process in order to:

A

Make sure the architecture created is the most optimal for the system

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What Is the First Step in the Architecture Process?

A

Defining the system requirements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is the “Map the Components” step in the process?

A

Map the various software units in the system and define what each of them does.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

After writing the architecture document, you should:

A

Support the development team

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Functional Requirements are usually defined by:

A

The System Analyst

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

“What the System Should Do” is defined in the _________

A

Functional requirements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Which of the Following is NOT a Non-Functional Requirement?
Performance
Screen colour
Concurrent users

A

Screen Colour

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

In Most Cases, Does the Client Know the Non Functional Requirements?

A

No

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Facebook is what type of interface?

A

Web App

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

GET https://www.mysite.com/api/users/17 is a form of what?

A

REST Web API

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What Type of Application is Best Suited If Your System Requires Access to the User’s Location?

A

Mobile

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What Do Console Applications Have That Services Do Not?

A

User Interface

20
Q

Which platform is best for Desktop Apps on Windows?

A

.NET

21
Q

Which platform would you recommend for developing Web API that:

  1. Is cross Platform
  2. Is dynamically Typed
  3. Offers great performance
A

node.js

22
Q

Which front end JavaScript framework is better for quick and simple web front end?

A

React.
Angular is a comprehensive framework with long learning curve, and is less optimized for quick and simple apps.

23
Q

Which one of the following capabilities DOES NOT exist in typical relational databases?
Transactions
Foreign Keys
Unstructured Data Support

A

Unstructured Data Support
Relational databases support only structured data (with some notable exceptions). NoSQL databases are the preferred way to store and query unstructured data.

24
Q

What is the relationship between Non-Functional Requirements and Quality Attributes?

A

Quality Attributes fulfi the non-functional requirements.
The various Quality Attributes map to the Non-Functional Requirements and are implemented in the architecture.

25
Q

Which quality attributes defines the ability of the system to grow and shrink according to load?

A

Scalability

26
Q

Which Quality Attribute deals with the easiness of adding new code to the system?

A

Extensibility

27
Q

Which Quality Attribute is used when designing the system’s monitoring?

A

Manageability.
The manageability quality attribute helps us manage the application, including its monitoring.

28
Q

What is the purpose of the Layered Architecture?

A

Makes to component much more modular.
Using layered architecture helps us modularize the component, and switch entire functionality by replacing a single layer.

29
Q

In a classic layered component, can the SI layer call directly to the DAL?

A

No.
Layers cannot skip the layer beneath them, and usually there is a BL layer beneath the SI layer.

30
Q

Using Interfaces, what can we avoid?

A

Strong Coupling.
Interfaces allow us to separate the actual implementation of two classes using contract - Interface - thus prevent the strong coupling between them

31
Q

Using Constructor Injection greatly helps:

A

With Testing.
Using Constructor Injection really simplifies testing, that can inject some mock types when running tests.

32
Q

If your interface contains 25 members, which principle of SOLID does it break?

A

Interface Segregation Principle

33
Q

Which of the following is NOT part of the System Architecture?

A

Defining the graphic theme of the system

34
Q

What problem is solved by using Services Directory?

A

The Spider Web.
Using Services Directory we avoid the Spider Web, where each service communicates directly with other services, thus having a dependency on them.

35
Q

Which component is essential for implementing Stateless Architecture?

A

Load Balancer.
Load Balancer enables balancing the load between services, which is the whole point of stateless architecture.

36
Q

Would you cache telemetry data that’s received every 5 seconds and retrieved by end users every 1 minute on average?

A

No.
We usually want to cache data that is rarely changed and frequently retrieved, and this case is the complete opposite.

37
Q

Which messaging method would you prefer between two services:
The first one - receives data from various sensors for processing
The second one - processes the data and saves it in DB.
Assume that performance are not top priority, but all the data must be processed, and we want to avoid data loss as much as possible.

A

Queue.
Queue is probably the best match here. It’s the most reliable messaging method, on the expense of performance.

38
Q

What are the sub-sections of the Components’ Drill Down section?

A

Role, Tech stack, Architecture, development instructions

39
Q

What is the purpose of the Architecture Document?

A

To describe what should be developed and how, and to lay out the requirements.

40
Q

What are an audience of the Architecture Document?

A

Developers
Project Manager
CTO

41
Q

Which requirements are detailed in the architecture document?

A

Functional and Non-Functional

42
Q

What is the purpose of the executive summary?

A

To provide a high level overview of the architecture and boost confidence in your network.

43
Q

Which section in the document describes the technology stack?

A

In the components’ drill down or in the Architecture overview section.
If the system is comprised of various, separate services, each runs in its own process, then the tech stack is described per service. On the other hand, if the system is a single process one, then the tech stack is described in the architecture overview section.

44
Q

What are Micro Services?

A

An architecture in which various functionalities ar implemented as separate, loosely coupled services that interact with each other using standard, lightweight protocol.

45
Q

What does CQRS stand for?

A

Command
Query
Responsibility
Segregation