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. | CSE 303 – Software Design and Architecture LECTURE 03 Previous Lecture Design phase in SDLC – architecture and detailed design Factors that affect design Quality Models Outline Good design Quality attributes of software design Software design principles Concepts in design good design Efficiency Efficiency refers to the responsiveness of the system, . the time required to respond to stimuli (events), or the number of events processed in some interval of time. Efficiency The time to process a sequence of events can be divided into three parts. First, time is needed to communicate between different software components that collaborate to process an event. Second, the computation times that components executed may have overlaps or gaps between them. Third, the times are needed for each component to complete its computation. Correctness Correctness is the property that software implements the specified users’ requirements. It is impossible that a design at any level that does not correctly implement the specified requirements would lead to a correct implementation. Reliability Reliability can be defined as the probability that a system performs user required functionality correctly at a specified environment in a given period of time. Portability Portability is the property of a software system that can be easily transported from one hardware/software platform to another, for example, from a PC/Windows environment to a Sun/Unix environment or a Macintosh environment. Maintainability Maintainability refers to the easiness of maintaining a software system. There are two types of software maintenance operations. corrective maintenance. adaptive maintenance. Well-structured design helps software engineers to understand the system. Reusability Reusability is the property of a software system that its components can be easily reused in the development of other software systems. Reusability depends on the generality of the components in a given application domain and the . | CSE 303 – Software Design and Architecture LECTURE 03 Previous Lecture Design phase in SDLC – architecture and detailed design Factors that affect design Quality Models Outline Good design Quality attributes of software design Software design principles Concepts in design good design Efficiency Efficiency refers to the responsiveness of the system, . the time required to respond to stimuli (events), or the number of events processed in some interval of time. Efficiency The time to process a sequence of events can be divided into three parts. First, time is needed to communicate between different software components that collaborate to process an event. Second, the computation times that components executed may have overlaps or gaps between them. Third, the times are needed for each component to complete its computation. Correctness Correctness is the property that software implements the specified users’ requirements. It is impossible that a design at any level that does not .