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.