Software quality must be addressed during the whole process of software development. However, design is of particular importance in developing quality software for two reasons. First, design is the first stage in software system creation in which quality requirements can begin to be addressed. Errors made at this stage can be costly, even impossible, to be rectified. Second, as we will see below, design decisions have significant effects on the quality of the final product. | Software design and architecture Lecture notes Chapter 3