Let’s start with some definitions. Software engineering can be defined as all of the tasks needed to produce a quality product: define requirements, design and implementation of product and tests, product verification, and release creation. The goal of software engineering then, is to make money for the company by producing products people want to buy [Johanna Rothman].
The software quality management is concerned with ensuring that the required level of quality is achieved in a software product, involves defining appropriate quality standards and procedures and ensuring that these are followed, should aim to develop a ‘quality culture’ where quality is seen as everyone’s responsibility.
Quality simply means that a product should meet its specification. So the specification should include customer quality requirements (efficiency, reliability, etc.) and developer quality requirements (maintainability, reusability, etc.); some quality requirements are difficult to specify in an unambiguous way. Software specifications are usually incomplete and often inconsistent [Ian Sommerville].