Lesson 18: Software Design Concepts Flashcards
What are some key aspects of Software frameworks?
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.
What is a Database?
It is like a big, digital filing cabinet — it organizes and stores information.
How does database work?
When a software application needs a piece of information, it
asks the database. The database then finds the information
and sends it back.
What is API (Application Programming
Interface)?
APIs allow different software applications to interact with each other.
How do APIs work?
APIs are the “waiters” of software, taking your
“orders” (requests) and bringing back the “dishes”
(data/results) you asked for.
What is a Software Architecture?
High-level structures and patterns that
define the organization and design
of a software system.
What is a Client-Server Architecture?
● 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.
What are Benefits of Client-Server Architecture?
● 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.
What is Monolithic Architecture?
all components tightly integrated and run together.
What are some aspects of Monolithic Architecture?
● 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.
What are some key aspects of Microservices Architecture?
● 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).
What are some key aspects of Cloud-Based Architectures?
● 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.