•In
general, there are three high level answers to this question: and, it is very
difficult
to answer precisely
1.Satisfying functional and performance requirements
•Maybe
this is too obvious to include
•Often
not achieved, though
2.Managing
complexity
3.Accommodating
future change