1/35
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Design Phase
In what phase of a software development project the designing and development of the software are performed?
Changes
When developing the software of the project, generally there are […] in the requirements document that may occur, such as the client adding additional requirements or changing a requirement.
Changes
These could affect the development of the software where there is a need to apply changes on the source codes.
Bad Design
When the software architecture has a […], it will be hard to apply changes on the project.
Rigidity
Fragility
Immobility
What are three important characteristics of a bad design architecture that should be avoided?
Rigidity
Which bad design characteristic is it where the software is hard to change because every applied change will affect many parts of the software?
Fragility
Which bad design characteristic is it when applying changes, unexpected parts of the software breaks?
Immobility
Which bad characteristic is it where the modules of the software are hard to reuse in another software because these cannot be extracted from the current software?
Design Principles
In order to create a good design architecture, various software […] can be followed.
Design Principles
What are the set of guidelines to be followed that helps developers arrange methods and data structures into classes?
SOLID
It is what Martin assembled as a set of five software design principles, and Michael Feathers arranged these principles into an acronym called […].
SOLID Principles
What are applied to software development projects to make software easier to change when requirements changes?
Single Responsibility Principle (SRP)
Open-Closed Principle (OCP)
Liskov Substitution Principle (LSP)
Interface Segregation Principle (ISP)
Dependency Inversion Principle (DIP)
What does SOLID acronym stands for?
Single Responsibility Principle (SRP)
What is one of the basic principles most developers apply to build robust and maintainable software?
Single Responsibility Principle (SRP)
Which suggests that each software module, class, or interface should have only one reason to change?
Open-Closed Principle (OCP)
What states that for a software to be easy to change, the software classes must be designed to allow the behavior of those classes to be changed by adding new code rather than changing existing code?
Liskov Substitution Principle (LSP)
What principle states that the derived classes should be substitutable for their base classes to build a software from interchangeable modules or classes?
Barbara Liskov
Who introduced the Liskov Substitution Principle (LSP)?
Interface Segregation Principle (ISP)
What principle advises software designers to avoid depending on things that they don’t use?
Dependency Inversion Principle (DIP)
What principle suggests that flexible software are those with classes that depend on abstract classes or interfaces?
Reduce source code complexity
Increase readability, extensibility & maintenance
Reduce accidental errors & implement reusability easily
Achieve easier & better software testing
Following the SOLID Principles help developers to achieve the following:
Single Responsibility Principle (SRP)
What instructs developers to design each module, interface, or class of a software system to have only one responsibility?
Single Responsibility Principle (SRP)
In what principle this is under: “the software systems are changed to satisfy the needs of the users or actors; and those users are the ‘reason to change’ that the principle is referring to.”
Single Responsibility Principle (SRP)
What does not state that a class should only have one method; rather, a class can have any number of members such as methods and instance variables as long as its members are related to only one responsibility of the class?
Open-Closed Principle (OCP)
What states that software modules, interfaces, or classes should be open for extension but closed for modification?
Open-Closed Principle (OCP)
In this principle, it means that when there are new requirements for the software, the new behavior must be added by deriving a new class without modifying the existing class?
Open-Closed Principle (OCP)
What suggests not to add functionality on the class that has been already tested and is working properly, but rather to extend that class for adding new functionality?
Open-Closed Principle (OCP)
Which principle apply this: abstract the class using inheritance or interfaces; then, whenever there is a new requirement, that functionality should be added to a new derived class without modifying the existing class?
Liskov Substitution Principle
What suggests that when creating a new derived class of an existing class, make sure that the derived class can be a substitute for its base class?
Liskov Substitution Principle
In this principle, it means that all the derived classes of a base class should be able to perform the same behavior of their base class without negative side effects.
Interface Segregation Principle (ISP)
What suggests avoiding depending on things that are not used?
Interface Segregation Principle (ISP)
In what principle it means that clients should not be forced to implement interfaces they don’t use?
Dependency Inversion Principle
What suggests that the most flexible software systems are those in which source code dependencies refer only to abstractions, not to concretions?
HLC ❌ depend on LLC. Both ✔ depend on abstractions.
Abstractions ❌ depend upon details. Other way around.
What are the two things DIP stated?
HLC ❌ depend on LLC. Both ✔ depend on abstractions.
This means a high-level class is a class that does something significant in the application, while a low-level class is a class that does secondary work.
Abstractions ❌ depend upon details. Other way around.
This means that developers must design the abstract class by looking at the needed details of the class.