Сейчас в области Software Engineering все движеться в направлении развития надежных средств тестинга для исправления создавшихся ошибок по в процессе разработки. А нет ли каких то наработок в обратном направлении : создание надежных средств разработки с жесткими правилами не допускающих ошибок (предотвращение вместо исправления).