Software architectural evaluation becomes a familiar practice in software engineering community for developing quality software. Architectural evaluation reduces software development effort and costs, and enhances the quality of the software by verifying the addressability of quality requirements and identifying potential risks and it provides assurance to developers that their chosen architecture will meet both functional and non-functional quality requirements. This paper presents a discussion on different software architectural evaluation methods and techniques and concentrates on summarizing the importance of the different early and late evaluation methods, similarities and difference between them, their applicability, strengths and weaknesses.