In Software Architecture Design, the _____ pattern involves dividing the system into interconnected components to improve modifiability and scalability.

  • Component-Based
  • Facade
  • MVC
  • Singleton
In Software Architecture Design, the "Component-Based" pattern involves dividing the system into interconnected components, enhancing modifiability and scalability.

You are part of a team responsible for the uptime and reliability of a critical e-commerce platform. How would monitoring and logging practices assist in ensuring the platform's availability and performance?

  • They detect performance issues
  • They ensure data privacy
  • They have no impact
  • They help identify new features
Monitoring and logging practices are crucial for detecting performance issues in a critical e-commerce platform. They provide insights into system behavior, errors, and bottlenecks, helping maintain uptime and reliability.

_____ can be used to visualize and specify how external actors interact with a system to achieve specific goals.

  • Flowcharts
  • Prototypes
  • Use Cases
  • User Stories
Use cases can be used to visualize and specify how external actors interact with a system to achieve specific goals, helping in requirements analysis and design.

In software development, a _____ is used to keep track of reported software bugs and their status.

  • Bug Tracker
  • Compiler
  • Debugger
  • Version Control
In software development, a "Bug Tracker" is used to keep track of reported software bugs and their status. It helps teams manage and prioritize bug fixes efficiently.

What is the purpose of using Entity-Relationship diagrams in database design?

  • To create program code.
  • To manage hardware resources.
  • To visualize data structures.
  • To write user documentation.
Entity-Relationship diagrams (ER diagrams) are used in database design to visualize the data structure, including entities, attributes, and their relationships, helping in understanding the database's architecture.

How does the Agile methodology address the limitation of inflexibility in traditional SDLC?

  • By adding more phases
  • By avoiding documentation
  • By promoting collaboration
  • By reducing the development time
Agile addresses the inflexibility of traditional SDLC by promoting collaboration, frequent communication, and adaptive planning. It allows for changes to be incorporated throughout the development process.

Adherence to the _____ SOLID principle ensures that the software entities should depend on abstractions and not on concretions.

  • Dependency Inversion
  • Liskov Substitution
  • Open-Closed
  • Single Responsibility
Adherence to the Dependency Inversion SOLID principle ensures that software entities should depend on abstractions (e.g., interfaces) rather than concrete implementations. This promotes flexibility, extensibility, and the ease of swapping out components without affecting the system's core.

_____ testing can be time-consuming and prone to human error, while _____ testing can quickly execute a large number of tests and is less prone to errors.

  • Alpha; Beta
  • Manual; Automated
  • Unit; Integration
  • White-box; Black-box
Manual testing can be time-consuming and prone to human error, while automated testing can quickly execute a large number of tests and is less prone to errors. Automated testing is essential in modern software development for efficiency and reliability.

_____ testing is more suitable for tasks that require repeated execution, while _____ testing is often more suitable for exploratory or usability testing.

  • Exploratory, Regression
  • Integration, Unit
  • Regression, Exploratory
  • Unit, Integration
"Unit testing" is more suitable for tasks that require repeated execution, focusing on individual components. "Integration testing" is suitable for verifying interactions between components.

In the context of SOLID principles, how does the Dependency Inversion Principle aid in creating a flexible architecture?

  • It allows high-level modules to depend on abstractions and not concrete implementations.
  • It encourages high dependence on concrete implementations.
  • It enforces that high-level modules should always use concrete implementations directly.
  • It promotes tight coupling between modules.
The Dependency Inversion Principle (DIP) in SOLID principles advocates that high-level modules should depend on abstractions (interfaces or abstract classes) rather than concrete implementations. This promotes flexibility and allows different implementations to be swapped without affecting the high-level module. DIP aids in creating a flexible and maintainable architecture.