Development of Techniques and Models for Improving Software Reliability