What makes good software?

Student Suggestions

Doesn't crash - reliability
Does desired functions properly - correctness
Increases user productivity - usability
User can find functions easily - usability
Simple, consistent, "intuitive" user interface
Customizable via preferences
Maintainable (fix problems, add features)
Good internal documentation
Efficiency (speed and memory)
Compatibility - with previous versions and with other software
Tailorable for novices or advanced users
Proper error handling, graceful crashing
Portability
Fun
Good user documentation
Upgradeable
Takes appropriate advantage of new technologies
Secure
Testability
Robust
 
 
Q: As the analyst, how do you ensure that the product will meet the customer's expectations for quality?

A: Express the customer's quality expectations as quantifiable statements in Nonfunctional Requirements section of SRS.

Q: How do we decide how to rank the quality attributes?

A: By making tradeoffs to satisfy the unique properties of the specific problem.

Q: Where are these tradeoffs documented?

A: Engineering Analysis section of SRS.