Which of the following should be included in a good defense-in-depth strategy provided by object-oriented programming for software deployment?
Correct Answer: C
The option that should be included in a good defense-in-depth strategy provided by object-oriented programming for software deployment is encapsulation. Encapsulation is a technique that provides the protection and the abstraction of the data or the information and the methods or the functions that are associated with an object or a class, by hiding or restricting the access or the visibility of the data or the information and the methods or the functions from the other objects or classes, and exposing or allowing only the relevant or necessary data or information and the methods or the functions to the other objects or classes.
Encapsulation can provide a good defense-in-depth strategy for software deployment, because it can:
* Prevent or reduce the unauthorized or unintended access or modification of the data or the information and the methods or the functions that are associated with an object or a class, and ensure the integrity and the confidentiality of the data or the information and the methods or the functions.
* Simplify or modularize the design and the development of the software, by separating or isolating the data or the information and the methods or the functions that are associated with an object or a class, and reducing the complexity or the dependency of the data or the information and the methods or the functions.
* Enhance or improve the maintainability and the reusability of the software, by facilitating the changes or the updates of the data or the information and the methods or the functions that are associated with an object or a class, and enabling the reuse or the sharing of the data or the information and the methods or the functions.
The other options are not the options that should be included in a good defense-in-depth strategy provided by object-oriented programming for software deployment. Polyinstantiation is not a technique that provides the protection and the abstraction of the data or the information and the methods or the functions that are associated with an object or a class, but rather a technique that allows multiple versions or instances of the same data or the information to exist in a database, at different levels of security or classification, and for different users or groups. Polyinstantiation can provide a good defense-in-depth strategy for database security, but not for software deployment. Polymorphism is not a technique that provides the protection and the abstraction of the data or the information and the methods or the functions that are associated with an object or a class, but rather a technique that allows an object or a class to have different forms or behaviors, depending on the context or the situation, and to respond differently to the same message or the same method.
Polymorphism can provide a good defense-in-depth strategy for software flexibility, but not for software deployment. Inheritance is not a technique that provides the protection and the abstraction of the data or the information and the methods or the functions that are associated with an object or a class, but rather a technique that allows an object or a class to acquire or inherit the data or the information and the methods or the functions that are associated with another object or class, and to extend or override the data or the information and the methods or the functions. Inheritance can provide a good defense-in-depth strategy for software consistency, but not for software deployment. References: CISSP All-in-One Exam Guide, Eighth Edition, Chapter 8: Software Development Security, page 1025. Official (ISC)2 CISSP CBK Reference, Fifth Edition, Chapter 8: Software Development Security, page 1026.