Lecture 2 Flashcards

1
Q

What does the ‘S’ in SOLID stand for?

A

Single Responsibility Principle

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

What does the ‘O’ in SOLID stand for?

A

Open/Closed Principle

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

What does the ‘L’ in SOLID stand for?

A

Liskov Substitution Principle

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

What does the ‘I’ in SOLID stand for?

A

Interface Segregation Principle

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

What does the ‘D’ in SOLID stand for?

A

Dependency Inversion Principle

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

What is the purpose of SOLID principles?

A

To create understandable, readable, and testable code that many developers can collaboratively work on.

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

What is the Single Responsibility Principle?

A

A class should have only one reason to change, meaning it should have only one job or responsibility.

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

What is the Open/Closed Principle?

A

Software entities should be open for extension but closed for modification.

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

What is the Liskov Substitution Principle?

A

Objects of a superclass should be replaceable with objects of its subclasses without altering correctness.

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

What is the Interface Segregation Principle?

A

Clients should not be forced to depend on interfaces they do not use.

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

What is the Dependency Inversion Principle?

A

High-level modules should not depend on low-level modules. Both should depend on abstractions.

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

What is a Software Quality Attribute?

A

A measurable or testable property of a software system indicating how well it satisfies stakeholder needs.

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

What is a System Quality Attribute?

A

Describes the overall quality of the entire system including software and hardware aspects.

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

Give an example of a Software Quality Attribute.

A

Maintainability, Modifiability, or Testability.

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

Give an example of a System Quality Attribute.

A

Availability, Scalability, or Reliability.

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

What are non-functional requirements?

A

Qualities, characteristics, and constraints of a system beyond specific functionalities.

17
Q

What are functional requirements?

A

Describe what the system does, like user login or order management.

18
Q

What is the difference between Software and System Quality Attributes?

A

Software attributes focus on the software’s internal behavior, while system attributes include both software and hardware.

19
Q

How can you specify a software quality attribute requirement?

A

Using a scenario with stimulus, source, environment, artifact, response, and response measure.

20
Q

What are the stakeholders in software architecture according to ISO/IEC/IEEE 42010:2011?

A

Users, Acquirers, Developers, and Maintainers of the system.

21
Q

What are Architectural tactics?

A

Architectural tactics are design decisions or strategies that software architects use to achieve or improve specific quality attributes (like performance, security, modifiability, etc.) in a system

22
Q

What are tactics?

A

Tactics, like design patterns, are techniques that architects have been using for years.

23
Q

What are Quality attribute scenarios?

A

Quality attribute scenarios are a structured way to define and express non-functional requirements
A complete quality attribute scenario includes:
* Source of stimulus – Who or what generates the event?
* Stimulus – What event occurs?
* Environment – What are the system conditions at the time?
* Artifact – What part of the system is affected?
* Response – What is the system’s reaction?
* Response measure – How is the response measured?

24
Q

How does patterns differ from patterns?

A

Tactics are small-scale design decisions to achieve specific quality attributes while patterns are high-level solution templates for common architecture problems. Tactics are narrow and only target on specific concern/quality attribute while patterns are broad and targets to improve system structure