When designing a software system, it's common to deal with dozens or hundreds of various requirements. In order to make sense of them and come up with a good design, you need to know which of them are important and which could be implemented regardless of your design decisions, or even dismissed. You should learn how to recognize the most important ones so you can focus on them first and deliver the most value in the shortest possible time.
You should prioritize requirements using two metrics: the business value and the impact on architecture. Those that will be high on both scales are most important and should be dealt with as a matter of priority. If you come up with too many such requirements, you should revisit your prioritization scheme. If it doesn't help, it might be that the system just isn't achievable.
ASRs are those that have a measurable impact on your system's architecture. They can be both functional...