Software development frameworks are considered the engine that leads the development activities within software development organizations, so the main interest in this research is establishing a framework to effectively lead the development activities to enhance the software quality. The proposed framework relates each development phase with its available artifacts, software metrics can be extracted from its artifacts and relates the test practices and QA best practices during the SDLC. It provides an organized approach to handle miscommunication and poor team management that usually lead to team confusion. It also provides a way to disengage the ambiguity between the software fault and failure through establishing a clear relationship between the both concepts and developing automated models to predict the software correctness and measure its reliability.