Introduction Flashcards

(15 cards)

1
Q

What is the difference between functional and nonfunctional requirements?

A

Functional requirements are what tasks should be performed and nonfunctional describes how the tasks should be performed.

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

What are four common examples of nonfunctional requirements?

A

Scalability, performance, availability, and security.

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

What are the five most common forms of estimations?

A

Load, storage, bandwidth, latency, resources.

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

What is load estimation?

A

Predicting the expected number of requests per second, data volume, or user traffic for the system.

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

What is storage estimation?

A

Estimating the amount of storage required to handle the data generated by the system.

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

What is bandwidth estimation?

A

Determining the network bandwidth needed to support the expected traffic and data transfer.

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

What is latency estimation?

A

Predicting the response time and latency of the system based on its architecture and components.

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

What is resource estimation?

A

Estimating the number of servers, CPUs, or memory required to handle the load and maintain desired performance levels.

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

Suppose you’re asked to design a social media platform with 100 million daily active users (DAU) and an average of 10 posts per user per day.

Provide a load estimate per day and per second.

A

With 10 posts a day and 100 million active users, that’s 1 billion requests per day.

Since there are 86,400 seconds in a day, you’d divide one billion by that (11,574/second).

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

Consider a photo-sharing app with 500 million users and an average of 2 photos uploaded per user per day. Each photo has an average size of 2 MB.

Provide a storage estimation required to store a single day of photos.

A

With 500 million active users uploading two images a day, that’s one billion images uploaded a day.

Since each image is 2MB, that’s 2 billion megabytes (2,000,000,000MB) which 2 petabytes (2PB).

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

For a video streaming service with 10 million users streaming 1080p videos at 4 Mbps, what would be a bandwidth estimation?

A

With 10 million users streaming videos at 4MB/second, this would be 40 million MB/second (40,000,000MB/second) or 40TB/second.

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

Suppose you’re designing an API that fetches data from multiple sources, and you know that the average latency for each source is 50 ms, 100 ms, and 200 ms, respectively.

If the data fetching process is sequential, what is the estimated latency? What if the process is parallel?

A

Since the process is sequential, it would be the sum of all of the child processes (50ms, 100ms, 200ms) or 350ms.

If these processes were parallelized, it would be limited by the longest process which is 200ms.

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

Imagine you’re designing a web application that receives 10,000 requests per second, with each request requiring 10 ms of CPU time.

Provide a resource estimate the number of CPU cores needed.

A

If we have 10,000 requests/second, and each requires 10ms of CPU time, this would require 100,000ms or 100 seconds, meaning you would require 100 cores (assuming each CPU can handle 1,000ms per core).

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

If you had to design a messaging service similar to WhatsApp, what are five important things to estimate?

A

Number of users, messages sent per day, average message size (consider text, images, and video), storage requirements/retention (considering replication), bandwidth requirements for messaging traffic (based on volume/size)

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

Suppose you are designing a video streaming platform similar to Netflix, what are five important things to estimate?

A

Number of active users, number of concurrent users (to handle peak load), video sizes and bitrates (consider low and high resolutions), storage for videos (including redundancy, potentially locality), and bandwidth requirements (factoring in varying bitrates, concurrent users, etc.)

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