ICT Software Development Concepts 4 — Questions and Answers
Question 1: What does 'Big O notation' measure in algorithm analysis?
- The size of the codebase in bytes
- The upper bound of an algorithm's time or space complexity relative to input size (Correct answer)
- The number of bugs in a given function
- The memory allocated to the operating system
Correct answer: The upper bound of an algorithm's time or space complexity relative to input size
Big O notation describes the worst-case upper bound of an algorithm's complexity (time or space) as the input size grows.
Question 2: In software testing, what is a 'mock object'?
- A prototype of the user interface
- A simulated object that mimics the behavior of real dependencies for testing purposes (Correct answer)
- A test that runs against a production database
- An incomplete feature stub meant for demo use
Correct answer: A simulated object that mimics the behavior of real dependencies for testing purposes
A mock object imitates the behavior of real dependencies, allowing tests to verify interactions without relying on actual implementations.
Question 3: Which software development methodology emphasizes delivering working software in short iterations called sprints?
- Waterfall
- Scrum (Correct answer)
- RAD (Rapid Application Development)
- V-Model
Correct answer: Scrum
Scrum is an agile framework that organizes work into time-boxed iterations called sprints, typically lasting 1–4 weeks.
Question 4: What is the role of a 'build tool' like Maven or Gradle in software development?
- To write unit tests automatically
- To automate compiling source code, managing dependencies, and packaging applications (Correct answer)
- To track changes to source files using version control
- To monitor application performance in production
Correct answer: To automate compiling source code, managing dependencies, and packaging applications
Build tools like Maven and Gradle automate the process of compiling code, resolving dependencies, running tests, and packaging deployable artifacts.
Question 5: What is 'polymorphism' in object-oriented programming?
- The ability of a class to inherit properties from multiple parent classes
- The ability of different objects to respond to the same interface or method call in their own way (Correct answer)
- Creating many instances of the same class
- Hiding implementation details from the user
Correct answer: The ability of different objects to respond to the same interface or method call in their own way
Polymorphism allows objects of different classes to be treated through a common interface, with each class providing its own implementation.
Question 6: In the context of databases, what does ACID stand for?
- Atomicity, Consistency, Isolation, Durability (Correct answer)
- Authorization, Caching, Indexing, Distribution
- Abstraction, Compilation, Integration, Deployment
- Availability, Consistency, Integrity, Distribution
Correct answer: Atomicity, Consistency, Isolation, Durability
ACID (Atomicity, Consistency, Isolation, Durability) are the four key properties that guarantee reliable database transactions.
Question 7: Which concept describes software components that are easy to test because they have no hidden dependencies?
- Tight coupling
- High cohesion
- Loose coupling
- Dependency injection (Correct answer)
Correct answer: Dependency injection
Dependency injection is a technique where dependencies are provided externally rather than created inside the component, making units easy to test in isolation.
What does 'Big O notation' measure in algorithm analysis?