Software architecture encompasses:• Working out functional requirements that cut across use cases• Working out non-functional requirements • Description system components