Along with the architecture goals, there also must be taken into consideration non functional requirements, which are critical success factors in developing the architecture.
The nonfunctional requirements of the system identify what the system must achieve for itself in order for it to be considered successful. Those requirements differ from the architecture system goals by the fact they are considered measurable requirements, whereas the goals of a system are not measurable.
Each of the nonfunctional requirements here has an identifiable metric associated with it (though testing or tracking that metric is another matter entirely). Examples of non-functional requirements are: security, manageability, reliability, availability, scalability, capacity, extensibility, flexibility, performance, project constraints, and testability. In any case, the idea of the equal importance of both functional requirements (what the system should do) and non-functional requirements must be stresses. No software system can stand on without mixing the fulfillment of both versions of requirements.