FlashKeepers

Computer Science · College · College and University

Software Engineering, Unit 3: Software Design Principles (SOLID)

Software Engineering, unit: Software Design Principles (SOLID). Core concepts, terminology, and worked-example cues a college student meets for this unit, building on prior units without repeating them. Front: a term, concept, or short problem cue. Back: the definition, explanation, or answer.

About this set

38 basic cards for College Computer Science. Set 3 of 7 in Software Engineering. It opens with "What is SOLID, in software design?" and "What does the Single Responsibility Principle state?". Study it alongside the other College sets below.

38 cards · basic cards · AI-written, checked twice. Edit anything.

Study this set free Look inside first Get FlashKeepers for iPhone

Opens in your browser, no account. Get the iPhone and iPad app · Android app

What is SOLID, in software design?
Show answerAn acronym for five principles guiding maintainable, extensible object-oriented design
What does the Single Responsibility Principle state?
Show answerA class should have only one reason to change
What does the Open/Closed Principle state?
Show answerSoftware entities should be open for extension but closed for modification
What does the Liskov Substitution Principle state?
Show answerObjects of a superclass should be replaceable with objects of a subclass without breaking correctness
What does the Interface Segregation Principle state?
Show answerClients should not be forced to depend on interfaces they do not use
What does the Dependency Inversion Principle state?
Show answerHigh-level modules should depend on abstractions, not on low-level implementation details
Why is the Single Responsibility Principle useful?
Show answerIt keeps classes focused and easier to understand, test, and modify
How does the Open/Closed Principle typically get achieved?
Show answerBy using abstraction and polymorphism to add behavior without altering existing code
What happens if the Liskov Substitution Principle is violated?
Show answerSubstituting a subclass for its superclass can produce incorrect or unexpected behavior
What is a 'fat interface', which the Interface Segregation Principle warns against?
Show answerAn interface with too many unrelated methods, forcing implementers to support methods they don't need
What is dependency injection, related to the Dependency Inversion Principle?
Show answerSupplying a class's dependencies from outside rather than creating them internally
What is coupling, in software design?
Show answerThe degree of interdependence between software modules
What is cohesion, in software design?
Show answerThe degree to which the elements within a module belong together
Why is low coupling and high cohesion generally desirable?
Show answerIt makes code easier to understand, test, and change independently
What is code smell?
Show answerA surface indication in code that often corresponds to a deeper design problem

23 more cards in the app

Study this set free