โ† All CPA Flashcard Decks

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
  1. What does the Interface Segregation Principle (ISP) recommend?

    Answer: Clients should not be forced to depend on interfaces they do not use

    ISP states that clients should not be forced to depend on methods they do not use, advocating for smaller, role-specific interfaces over large general-purpose ones.

  2. In software development, what is 'encapsulation'?

    Answer: Bundling data and methods that operate on that data within a single unit, restricting direct access to some components

    Encapsulation bundles data and the methods that operate on it into a class while hiding internal implementation details from outside access.

  3. Which software quality attribute refers to how easily a system can be modified to fix defects or improve performance?

    Answer: Maintainability

    Maintainability is the ease with which a software system can be modified to correct faults, improve performance, or adapt to a changed environment.

  4. What is the primary benefit of using the Strategy design pattern?

    Answer: It allows the algorithm to be selected at runtime

    The Strategy pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable, allowing the algorithm to vary independently from clients that use it.

  5. What is meant by 'separation of concerns' in software design?

    Answer: Dividing a program into distinct sections, each addressing a separate concern

    Separation of concerns is a design principle for separating a computer program into distinct sections, each handling a different concern or responsibility.

  6. In UML, what does a dashed arrow with an open arrowhead represent?

    Answer: Dependency

    In UML class diagrams, a dashed arrow with an open arrowhead represents a dependency relationship, indicating that one element relies on another.

  7. Which software development principle suggests that code should be easy to read and understand for other developers?

    Answer: KISS (Keep It Simple, Stupid)

    KISS encourages developers to keep their code as simple as possible, avoiding unnecessary complexity and making it more readable and maintainable.