Following Behaviors helps to enhance the software quality
Abstraction- emphasize what is important and De-emphasize the unimportant at a particular level of detail.
Flexibility-apply components in ways that may not be anticipated originally.
Reuse-take components developed before and applying in new contexts,where they may not be intended to be used.
Quality-ensure that bugs are eliminated,vulnerabilities fixed and code is made more "bullet proof".
Modularity-Divide and conquer a big problem space into smaller chunks that have low coupling and high cohesion,so developers and teams can work independently.