Software Architecture Flashcards

1
Q

What is software architecture?

A

Software architecture defines the structure of a software system, including components, relationships, design principles, and reasoning.

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

Why is software architecture important?

A

Scalability: Handles growing demands.
Maintainability: Simplifies updates and fixes.
Reliability: Minimizes vulnerabilities.
Flexibility: Adapts to new requirements easily.

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

What are the key types of software architecture?

A

Monolithic: Simple development, limited scalability.
Microservices: Independent scaling, complex infrastructure.
Layered: Separation of concerns, potential rigidity.
Event-Driven: Loose coupling, debugging complexity.
SOA: Integrates through reusable services.

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

What are the software design principles?

A

DRY: Avoid redundancy.
SOLID: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion.
KISS: Keep it simple.
YAGNI: Don’t over-engineer.

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

What are common design patterns?

A

Creational: Singleton, Factory Method, Abstract Factory.
Structural: Adapter, Decorator, Composite.
Behavioral: Observer, Strategy, Command.

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

What are the stages of the Software Development Life Cycle (SDLC)?

A

Planning and Requirement Analysis.
Defining Requirements.
Designing Product Architecture.
Building the Product.
Testing.
Deployment and Maintenance.

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

What is the difference between Waterfall and Agile approaches?

A

Waterfall: Linear, low flexibility, best for stable requirements.
Agile: Iterative, high adaptability, best for frequent changes.

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

What are common project management tools?

A

Jira, Trello, Asana. Features:
Planning/Scheduling: Tasks, workflows.
Collaboration: Dashboards, approvals.
Documentation: File management, versioning.
Evaluation: Productivity tracking.

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