Lesson 18: Software Design Concepts Flashcards

1
Q

What are some key aspects of Software frameworks?

A

Framework = Blueprint: Provides a set structure for the development process.

Developer = Builder: Uses the framework to guide the software creation.

Benefits: simplified development process, saving time and resources.

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

What is a Database?

A

It is like a big, digital filing cabinet — it organizes and stores information.

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

How does database work?

A

When a software application needs a piece of information, it
asks the database. The database then finds the information
and sends it back.

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

What is API (Application Programming
Interface)?

A

APIs allow different software applications to interact with each other.

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

How do APIs work?

A

APIs are the “waiters” of software, taking your
“orders” (requests) and bringing back the “dishes”
(data/results) you asked for.

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

What is a Software Architecture?

A

High-level structures and patterns that
define the organization and design
of a software system.

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

What is a Client-Server Architecture?

A

● Separates software into client-side
(user interface) and server-side (data processing) components.

● Clients send requests to the server for data or functionality.

● The server processes the requests
and sends back responses to the clients.

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

What are Benefits of Client-Server Architecture?

A

● Separation of concerns: Client-side focuses on user interface and interactions,
while the server-side handles data processing and storage.

● Scalability: The server-side can handle multiple client requests simultaneously,
allowing the application to serve a large number of users.

● Centralized data management: Data is stored and managed centrally on the
server-side, ensuring consistency and facilitating backups and disaster recovery.

● Security: The server-side can enforce access controls, authentication, and encryption, protecting sensitive data.

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

What is Monolithic Architecture?

A

all components tightly integrated and run together.

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

What are some aspects of Monolithic Architecture?

A

● Change Impact: Modifications affect the
entire system; full re-deployment needed.

● Scaling: Involves replicating the entire
application.

● Strengths: Simplicity in development,
testing, and deployment.

● Weaknesses: Complexity increases
with application growth; changes and
scaling are difficult.

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

What are some key aspects of Microservices Architecture?

A

● Organizes software as a collection of small,
independent, and loosely coupled services.

● Each service is responsible for a specific
functionality or feature.

● Services can be developed, deployed, and
scaled independently.

● Communication between services is usually done through APIs (Application Programming
Interfaces).

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

What are some key aspects of Cloud-Based Architectures?

A

● Utilizes cloud computing resources for
scalability, reliability, elasticity and
cost-effectiveness.

● Applications and services are deployed
and managed in the cloud.

● Offers benefits like auto-scaling, high
availability, and pay-as-you-go pricing models.

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