Software Engineering 1 - words/knowledge needed for 1-4 of "multible choice" Flashcards

1
Q

Name the SOLID principles of object-oriented programming

A

Single Responsibility Principle (SRP)
Open/Closed Principle (OCP)
Liskov Substitution Principle (LSP)
Interface Segregation Principle (ISP)
Dependency Inversion Principle (DIP)

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

Explain Single Responsibility Principle (SRP)

(the S in SOLID principles of object-oriented programming)

A

Definition: A class should have only one reason to change, meaning it should have only one responsibility.

Goal: Keep classes focused on a single functionality to make the system more modular and easier to maintain.

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

Explain Open/Closed Principle (OCP)

(the O in SOLID principles of object-oriented programming)

A

Definition: Software entities (classes, modules, functions) should be open for extension but closed for modification.

Goal: Allow behavior to be extended without altering existing code, reducing the risk of introducing bugs in already-tested functionality.

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

Explain Liskov Substitution Principle (LSP)

(the L in SOLID principles of object-oriented programming)

A

Definition: Subclasses should be substitutable for their base classes without altering the correctness of the program.

Goal: Ensure that derived classes extend behavior without breaking the existing system.

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

Explain Interface Segregation Principle (ISP)

(the I in SOLID principles of object-oriented programming)

A

Definition: A class should not be forced to implement interfaces it does not use.

Goal: Create smaller, more specific interfaces rather than large, multipurpose ones, so that implementing classes only need to know about relevant methods.

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

Explain Dependency Inversion Principle (DIP)

(the D in SOLID principles of object-oriented programming)

A

Definition: High-level modules should not depend on low-level modules; both should depend on abstractions.

Goal: Decouple components by relying on abstractions rather than concrete implementations, enabling easier swapping and testing of components.

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

Explain Recovery Testing

A

Recovery Testing is a type of software testing that evaluates how well a system can recover from crashes, hardware failures, or other catastrophic issues. The primary goal is to ensure the system can return to a stable state after an unexpected disruption.

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

Explain Performance Testing

A

Definition: Performance testing evaluates how a system performs under various conditions, including normal and peak loads. It aims to measure responsiveness, stability, and scalability.

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

What are the key objectives of Perfomance Testing?

A

Key Objectives of Perfomance Testing:
- Identify bottlenecks in the system.
- Ensure the system meets performance benchmarks such as response time, throughput, and resource usage.
- Test the system’s behavior under stress (e.g., high user loads).

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

Name 4 types of Perfomance testing

A

Types of Performance Testing:
Load Testing
Stress Testing
Scalability Testing
Endurance Testing

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

Explain Load Testing
(a type of Perfomance Testing)

A

Load Testing: Assesses performance under expected user load.

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

Explain Stress Testing
(a type of Perfomance Testing)

A

Stress Testing: Tests limits by increasing the load beyond normal levels.

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

Explain Scalability Testing
(a type of Perfomance Testing)

A

Scalability Testing: Evaluates the system’s ability to scale up or down.

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

Explain Endurance Testing
(a type of Perfomance Testing)

A

Endurance Testing: Checks performance over an extended period.

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

Explain Compatibility Testing

A

Definition: Compatibility testing ensures that the software operates correctly across various environments, such as different operating systems, browsers, hardware configurations, or network conditions.

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

What are the key objectives of Compability Testing?

A

Key Objectives of Compability Testing:
Confirm that the application behaves consistently across diverse platforms.
Identify any platform-specific issues or limitations.
Ensure proper integration with other software components or tools.

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

Name 4 aspects of Compability testing

A

OS Compatibility: Windows, macOS, Linux, etc.
Browser Compatibility: Chrome, Firefox, Safari, etc.
Device Compatibility: Smartphones, tablets, desktops, etc.
Network Compatibility: Different bandwidths or latency levels.

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

Give examples of OS Compatibility
(an aspect of Compability Testing)

A

Windows, macOS, Linux, etc.

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

Give examples of Browser Compatibility
(an aspect of Compability Testing)

A

Chrome, Firefox, Safari, etc.

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

Give examples of Device Compatibility
(an aspect of Compability Testing)

A

Smartphones, tablets, desktops, etc.

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

Give examples of Network Compatibility
(an aspect of Compability Testing)

A

Different bandwidths or latency levels.

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

Explain Data Validation or Input/Output Testing

A

Definition: This testing ensures the accuracy, reliability, and consistency of data being input into the system, processed, and output to the user or external systems.

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

What are the key objectives of Data Validation or Input/Output Testing?

A

Key Objectives of Data Validation or Input/Output testing:
- Validate that inputs conform to expected formats and constraints.
- Check data transformations, calculations, or processing accuracy.
- Verify that outputs are correct, complete, and in the expected format.

24
Q

What are the 3 steps in Data Validation or Input/Output Testing?

A

Steps in Data Validation Testing:
Validate Input Data
Test Data Processing
Verify Output Data

25
Q

Explain the first step in Data Validation or Input/Output Testing:

1) Validate Input Data

A

Ensuring that all inputs meet predefined criteria, such as correct formats, acceptable ranges, or required constraints. This step prevents invalid data from entering the system.

26
Q

Explain the second step in Data Validation or Input/Output Testing:

2) Test Data Processing

A

Ensures that the system correctly processes input data according to defined rules, algorithms, or transformations. This step verifies that the logic used to manipulate, calculate, or transform data functions as intended.

27
Q

Explain the third step in Data Validation or Input/Output Testing:

3) Verify Output Data

A

Ensures that the data generated as output from the system is accurate, complete, and presented in the correct format.

28
Q

Explain the Model-View-Controller (MVC) architecture pattern

A

The Model-View-Controller (MVC) is a software architecture pattern used to separate concerns in an application, making it more modular, maintainable, and scalable. The idea is to separate the application into three main components: Model, View, and Controller, each with distinct responsibilities.

29
Q

Explain the resposibility of Model in Model-View-Controller (MVC)

A

Responsibility of Model:
The Model represents the application’s data and business logic. It is responsible for retrieving, storing, and manipulating data, typically from a database or an external API. The Model also contains the rules and logic that govern how the data behaves.

30
Q

Explain the resposibility of View in Model-View-Controller (MVC)

A

Responsibility of View:
The View is responsible for rendering the user interface (UI) and displaying data to the user. It takes the data provided by the Model and presents it in a format suitable for the user (e.g., HTML for a web application, UI elements for a desktop app). The View does not manipulate data or contain business logic.

31
Q

Explain the resposibility of Controller in Model-View-Controller (MVC)

A

Responsibility of Controller:
The Controller acts as an intermediary between the Model and View. It listens for user input (such as button clicks or form submissions), processes it (often by modifying the Model), and updates the View accordingly. The Controller handles the flow of data between the Model and View.

32
Q

Name the 4 steps of the workflow in Model-View-Controller (MVC)

A

Workflow in MVC:
User interaction
Controller handling
Model updates
View update

33
Q

Explain the first step of Model-View-Controller (MVC)

1) User interaction

A

User interaction: The user interacts with the View (e.g., clicking a button or submitting a form).

34
Q

Explain the second step of Model-View-Controller (MVC)

2) Controller handling

A

Controller handling: The Controller captures the input and determines the appropriate response. It may update the Model (e.g., add an item to the cart).

35
Q

Explain the third step of Model-View-Controller (MVC)

3) Model updates

A

Model updates: The Model updates the data accordingly (e.g., the cart’s total price changes).

36
Q

Explain the fourth step of Model-View-Controller (MVC)

4) View update

A

View update: The Controller then updates the View to reflect the changes made by the Model (e.g., displaying the updated cart with new totals).

37
Q

Name 4 benefits of Model-View-Controller (MVC)

A

Benefits of MVC:
Separation of concerns: Each component has a distinct responsibility, making the code easier to maintain, update, and debug.

Scalability: You can update or replace one component

Reusability: Components can be reused across different parts of the application

Testability: With clear separation, it’s easier to test individual components

38
Q

Explain what UML(Unified Modeling Language) is

A

UML (Unified Modeling Language) is a standardized modeling language used in software engineering to visualize, specify, construct, and document the architecture and design of software systems. It provides a set of diagrams and notations to represent various aspects of a system, making it easier for developers, architects, and stakeholders to understand and communicate ideas.

39
Q

Name 4 Key Features of UML

A

Key Features of UML:

  • Visual Representation
  • Standardization
  • Flexibility
  • Platform-Independent
40
Q

Explain what Visual Representation of UML is

A

Visual Representation: Provides a graphical way to design and visualize a system’s structure and behavior.

41
Q

Explain what Standardization of UML is

A

Standardization: UML is standardized by the Object Management Group (OMG), ensuring consistency and interoperability across tools and teams.

42
Q

Explain what Flexibilty of UML is

A

Flexibility: It can model any type of system, from small applications to large, distributed systems.

43
Q

Explain what Platform-Independence of UML is

A

Platform-Independent: UML is not tied to any programming language or platform.

44
Q

What is UML:s used for?

A

Uses of UML:
- System Design: Plan and design the structure and behavior of a system before implementation.

  • Documentation: Document the components, relationships, and workflows of a system for maintenance and future development.
  • Communication: Serve as a common language for developers, business analysts, and stakeholders.
45
Q

UML diagramscan be devided into 2 types, which?

A

structural diagrams and behavioral diagrams

46
Q

Explain the Structural UML Diagram “Class Diagram”

A

Shows classes, attributes, methods, and relationships.

47
Q

Explain the Structural UML Diagram “Object Diagram”

A

Represents instances of classes at a specific moment.

48
Q

Explain the Structural UML Diagram “Component Diagram”

A

Illustrates the system’s components and dependencies.

49
Q

Explain the Structural UML Diagram “Deployment Diagram”

A

Models the physical deployment of software components on hardware.

50
Q

Explain the Structural UML Diagram “Package Diagram”

A

Groups related elements into packages.

51
Q

Explain the Behavioral UML Diagram “Use Case Diagram”

A

Describes system functionality from a user’s perspective.

52
Q

Explain the Behavioral UML Diagram “Sequence Diagram”

A

Shows interactions between objects in a time sequence.

53
Q

Explain the Behavioral UML Diagram “Activity Diagram”

A

Represents workflows or processes.

54
Q

Explain the Behavioral UML Diagram “State Diagram”

A

Models the states and transitions of an object.

55
Q

Explain the Behavioral UML Diagram “Interaction Overview Diagram”

A

Combines elements of activity and sequence diagrams.

56
Q

Explain the Behavioral UML Diagram “Timing Diagram”

A

Focuses on time-related interactions.