Flexibility | Scalability |
Reusability | Maintainability |
Encapsulation | Testing |
Collaboration | Fault Isolation |
The capability of a system to handle increased workload or size by adding more modules or components. | The ability of a system to easily adapt and change by adding, removing, or modifying its components or modules without affecting other parts of the system. |
The ease with which a system can be maintained or repaired by replacing or updating individual modules or components. | The ability of modules or components to be reused in different systems or applications, reducing development time and effort. |
The ease of testing individual modules or components in isolation, allowing for faster and more efficient testing process. | The practice of hiding the internal details of a module or component and providing a well-defined interface or API for interacting with it. |
The ability to contain and isolate faults or bugs within a specific module or component, minimizing the impact on the overall system. | The ability for multiple developers to work on different modules or components simultaneously without interfering with each other. |
Interoperability | Modifiability |
The ease with which a system can be modified or customized by changing or extending its modules or components. | The capability of different modules or components to seamlessly work together and exchange information or functionality. |