1. modularity Software modularity is measured by how well software is decomposed into smaller pieces with standardized interfaces. It is analogous to modularity for hardware. We want to create products by combining reusable chunks of code, so you only implement a feature or functionality once and then maximize reuse. 2. Maintainability Software maintenance is the process of changing, modifying, and updating software to keep up with customer needs. Software maintenance is done after the product has launched for several reasons including improving the software overall, correcting issues or bugs, to boost performance, and more. 3. Flexibility Flexibility in software engineering is the ability of the system to respond to uncertainty in a way that allows it to function normally. Software house flexibility in projects is the ease with which the project team is open to changes in assumptions, goals, or the course of the process. 4. scalability Software scalability is the ability to grow or shrink a piece of software to meet changing demands on a business. Software scalability is critical to support growth, but also to pivot during times of uncertainty and scale back operations as needed.