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.

Why is the Software Development Life Cycle (SDLC) considered important for the development of high-quality software?

  • It eliminates all bugs.
  • It ensures low cost.
  • It provides a systematic approach.
  • It speeds up development.
SDLC is important because it offers a structured and systematic approach to software development. It helps in managing requirements, quality, and risk, leading to high-quality software.

What is the primary purpose of a bug tracking system in software development?

  • Document software design
  • Enhance software performance
  • Facilitate communication among team members
  • Track and manage software defects
A bug tracking system's primary purpose is to track and manage software defects, also known as bugs or issues. It helps in identifying, prioritizing, and resolving issues to improve software quality.

The _____ maintenance model involves making changes to a software product to correct issues discovered after its initial release.

  • Adaptive
  • Corrective
  • Perfective
  • Preventive
Corrective maintenance is the process of making changes to a software product to correct issues and defects discovered after its initial release. This type of maintenance aims to fix problems without adding new features or altering existing functionality.

_____ 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.