Lecture 3 Flashcards

1
Q

What are software architecture tactics?

A

Low-level, reusable architectural decisions that guide how a system fulfills quality attributes.

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

Why are software architecture tactics important?

A

They improve system quality, provide structured problem solving, and enhance communication and reusability.

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

What is a quality attribute scenario?

A

A structured way to specify quality attribute requirements using stimulus, source, environment, artifact, response, and response measure.

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

What are two general approaches to achieving quality attributes?

A

Design Tactics and Architectural Patterns.

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

What is availability in software systems?

A

The degree to which a system is operational and accessible when required for use.

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

What are tactics to achieve high availability?

A

Redundancy
* Have a backup ready if something fails.
Failover Mechanism
* Automatically switch to a backup system without
interrupting the service.
Load Balancing
* Distribute the user load across multiple servers
Health Monitoring
* Continuously check if the system parts are healthy and
working
Scheduled Maintenance
* Plan downtimes during low-usage hours.
Automatic Restart
* Systems should auto-restart if they crash

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

What is performance in software architecture?

A

How quickly a system responds to events, including timing and resource usage.

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

Name common performance tactics.

A

Caching, Load Balancing, Parallelism/Concurrency.

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

What is security in software systems?

A

The ability to protect data and resources against unauthorized access or attacks.

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

What are the key characteristics of security?

A

Confidentiality, Integrity, Availability, Authentication, Authorization.

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

What is modifiability?

A

How easily a software system can be changed or adapted after implementation.

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

What supports modifiability?

A

Good modularity, clear interfaces, code readability, and documentation.

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

What is testability?

A

How effectively and efficiently a system or its components can be tested.

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

How can you improve testability?

A

Use modular code, avoid hard-coded dependencies, add logging, use dependency injection.

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

What is usability?

A

How easy it is for users to accomplish tasks and how well the system supports the user.

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

What tactics support usability?

A

UI design, feedback mechanisms, accessibility.

17
Q

What tactics support availability?

A

Fault Tolerance, Monitoring and Alerting, Disaster Recovery.

18
Q

What tactics support maintainability?

A

Modularity, Documentation, Testability.

19
Q

What tactics support scalability?

A

Horizontal Scaling, Vertical Scaling, Elasticity.

20
Q

Name a common mistake in software design.

A

Not defining clear requirements, not testing the design, or not documenting the design.

21
Q

What are the 7 important system qualities

A

❖ Availability
❖ Performance
❖ Security
❖ Modifiability
❖ Testability
❖ Usability
❖ Sustainability