Software Engineering

sealm

Member
Joined
Dec 31, 2005
Messages
14
Reaction score
0
Location
israel
Сейчас в области Software Engineering все движеться в направлении развития надежных средств тестинга для исправления создавшихся ошибок по в процессе разработки. А нет ли каких то наработок в обратном направлении : создание надежных средств разработки с жесткими правилами не допускающих ошибок (предотвращение вместо исправления).
 

Unsiker

Member
Joined
Feb 19, 2007
Messages
40
Reaction score
0
Age
40
Location
lol
незнаю, ничего такого не слышал
 

ploki

Member
Joined
May 16, 2005
Messages
237
Reaction score
180
Location
Москва
Такие наработки есть, причём очень много.

Сначала отвлечение.
Первый тезис не совсем верен, Software Engineering движется во все стороны.
Сам вопрос тоже сформулирован слишком строго. Средств разработки, не допускающих ошибок, быть не может. А вот средства разработки, предотвращающие или снижающие число ошибок отдельных классов, разрабатываются непрерывно.
Всё развитие инструментальных средств - это борьба в том числе и с большим объёмом неконцептуальных ошибок. Один язык Ада со соответствующей инфраструктурой чего стоит. Но всё в мире взаимосвязано, а понятие "ошибки" настолько сложно, что борясь с некоторыми классами ошибок, мы теряем что-то другое. Поэтому важен компромисс. Навскидку рекомендую посмотреть некоторые эссе Джоэла Сполски, особенно про дырявые абстракции, "Мифический человекомесяц" Брукса, "Совершенный код" Макконнелла, историю создания Ады и Оберона.

Непосредственно сабжем занимаются огромные разделы теории алгоритмов, семантики и прагматики языков программирования, теории трансляции. Сюда же - методологии проектирования, модели ЖЦ, построение СПЖЦ.

Причём сколько всего конкретного придумано!
Принудительное проектирования, объектно-ориентированная парадигма в своём первоначальном виде, логическое и функциональное программирование и вообще декларативный подход к решению стандартных задач, шаблоны проектирования (от банды четырёх и далее). Программирование по контракту (предусловия и постусловия, автоматическая проверка инвариантов и т.д.), модульное программирование. Строгая типизация, сборщики мусора, умные указатели, виртуализация ресурсов. Автоматическая геннерация кода по модели. Автоматическая оптимизация. Автоматическая верификация и т.п.
 
Top