Which design principle aims to manage dependencies between modules effectively?
- Cohesion
- Coupling
- Abstraction
- Inheritance
The design principle that aims to manage dependencies between modules effectively is "Coupling." It refers to the degree of interconnection between modules in a software system. Reducing coupling helps make the system more maintainable and flexible.
Software reverse engineering often involves analyzing ______ to understand how a program works.
- Source code
- User interface
- Hardware components
- User documentation
Software reverse engineering typically involves analyzing the source code of a program to understand how it works. Source code contains the instructions and logic that govern the program's behavior. By examining the source code, reverse engineers can gain insights into the program's functionality.
Why is regression testing crucial when implementing a new feature within an existing system?
- It speeds up the development process
- It helps reduce the cost of development
- It ensures that new features do not break existing functionality
- It is a formality without much impact
Regression testing is crucial when implementing a new feature within an existing system because it helps ensure that the introduction of new features does not lead to the breaking of existing functionality. This is essential for maintaining the software's stability and quality.
How does regression testing ensure the consistent functionality of software after changes have been made?
- By retesting all test cases
- By testing only the modified code
- By retesting the entire system
- By comparing the new version with the previous one
Regression testing ensures the consistent functionality of software after changes by retesting the entire system. This practice helps identify any unintended side effects of code changes and ensures that the software continues to work correctly across all its features.
The _______ model is an approach to software evolution that focuses on incremental development and operational prototyping.
- Waterfall
- Spiral
- Evolutionary
- Agile
The Spiral model is an approach to software evolution that emphasizes incremental development and operational prototyping. This model divides the project into cycles or "spirals," with each spiral incorporating user feedback and refined prototypes. This iterative approach allows for continuous improvements and risk management throughout the software development process.
During white box testing, the tester must have knowledge of the ______ to construct test cases and identify issues.
- System's users
- External interfaces
- Internal code structure
- Project timeline
In white box testing, the tester needs to have knowledge of the internal code structure to construct test cases and identify issues. This type of testing involves examining the internal logic, structure, and flow of the software code. Understanding the code is essential for effective white box testing.
What is the primary aim of software verification in the software development life cycle?
- Identifying and fixing defects in the software
- Ensuring that the software meets the customer's requirements
- Testing the software in a real-world environment
- Validating user interface design
The primary aim of software verification is to identify and fix defects in the software. It involves activities like code reviews and inspections to ensure the software aligns with its specifications and design.
The process of adjusting the contrast or brightness of an image is termed as _______ in image processing.
- Segmentation
- Normalization
- Histogram Equalization
- Enhancement
In image processing, adjusting the contrast or brightness of an image is termed as "Enhancement." Image enhancement techniques are used to improve the visual quality of an image by enhancing specific features such as brightness and contrast.
The gradient explosion problem in deep learning can be mitigated using the _______ technique, which clips the gradients if they exceed a certain value.
- Data Augmentation
- Learning Rate Decay
- Gradient Clipping
- Early Stopping
Gradient clipping is a technique used to mitigate the gradient explosion problem in deep learning. It limits the magnitude of gradients during training, preventing them from becoming too large and causing instability.
In Gradient Boosting, what is adjusted at each step to minimize the residual errors?
- Learning rate
- Number of trees
- Feature importance
- Maximum depth of trees
In Gradient Boosting, the learning rate (Option A) is adjusted at each step to minimize residual errors. A smaller learning rate makes the model learn more slowly and often leads to better generalization, reducing the risk of overfitting.
While preparing data for a machine learning model, you realize that the 'Height' column has some missing values. Upon closer inspection, you find that these missing values often correspond to records where the 'Age' column has values less than 1 year. What might be a reasonable way to handle these missing values?
- Impute missing values with the mean height
- Impute missing values with 0
- Leave missing values as they are
- Impute missing values based on 'Age'
In this case, it might be reasonable to leave missing values as they are. Imputing with the mean height or 0 may introduce bias, and imputing based on 'Age' should be done carefully, as infants may have different height characteristics than adults. Depending on the context and dataset size, leaving the missing values untouched might be the best choice.
Data that has some organizational properties, but not as strict as tables in relational databases, is termed as _______ data.
- Unstructured Data
- Semi-Structured Data
- Raw Data
- Big Data
Data that has some organization but doesn't adhere to a strict tabular structure is known as "Semi-Structured Data." It includes data formats like JSON, XML, and others that have a certain level of structure.