Ideally a quality system is usually integrated into the software development process, which will provide some form of change control to help with bug fixing and future development of additional functions or other changes required. Any software developed will benefit from the use of quality systems, however the level to which these systems are applied will depend on and need to be tailored to the software being produced and regulatory requirements that need to be fulfilled.
Though the Quality system is usually defined as a separate process to be effective and efficient it must be considered and integrated as part of the development process, otherwise such quality systems just become a burden to be completed rather than used as a tool to ensure quality of the software produced.
Such systems are commonly required If you need to comply to some form of industrial or other standard when producing software systems. The quality system is used to provide and ensure confidence that the software produced will work as required, especially important in say Avionics / medical arenas.
The need for better quality control of the software development process has given rise to the discipline of software engineering. A software engineer would typically be comfortable in performing any element of the development process, from concept and requirements capture through to testing and final release.