- One of the major areas of software engineering, as specified in the SWEBOK (SoftWare Engineering Body Of Knowledge) [1], is software quality. This paper presents an argument on why software quality should be an important component of an undergraduate computer science or software engineering curricula, and why it should not be viewed only as an exercise in software testing. Next we introduce a quality development life cycle with emphasis on attention to the quality during the early stages of the development life cycle. We look at quality during the design phase, and how different techniques such as inspection, and Fault Tree Analysis (FTA) can be introduced during the requirement and design phases in order to increase the quality of the software product.