Software Development & Design Principles Flashcards
7 cards from real CPA practice questions. Tap to flip, then mark Knew It or Still Learning โ missed cards come back until you master them.
Read the first 7 Software Development & Design Principles flashcards as text
What does 'coupling' measure in software design?
Answer: The degree of interdependence between modules
Coupling measures the degree to which one module depends on or knows about another module.
Which principle in object-oriented design states that objects of a superclass should be replaceable with objects of its subclasses without breaking the application?
Answer: Liskov Substitution Principle
The Liskov Substitution Principle (LSP) states that subclasses must be substitutable for their base classes without altering program correctness.
What type of testing verifies that individual components of a system work correctly in isolation?
Answer: Unit testing
Unit testing focuses on verifying that individual units or components of software work as expected in isolation.
In software architecture, what is a microservices architecture characterized by?
Answer: Small, independently deployable services communicating via APIs
Microservices architecture structures an application as a collection of small, loosely coupled services that communicate via well-defined APIs.
Which version control workflow involves each developer working on a dedicated long-running branch for a feature?
Answer: Feature branch workflow
The Feature Branch Workflow has developers create a dedicated branch for each feature, keeping the main branch stable.
What is the Observer design pattern primarily used for?
Answer: Defining a one-to-many dependency so that when one object changes state, all dependents are notified
The Observer pattern defines a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
What does the acronym DRY stand for in software development principles?
Answer: Don't Repeat Yourself
DRY (Don't Repeat Yourself) is a principle aimed at reducing repetition of code patterns by replacing duplicated logic with abstractions.