Нет серебряной пули - No Silver Bullet

"Нет серебряной пули - сущность и случайность в разработке программного обеспечения"- широко обсуждаемый документ о программная инженерия написано Премия Тьюринга победитель Фред Брукс в 1987 г.[1][2] Брукс утверждает, что «не существует единой разработки ни в технологии, ни в технике управления, которая сама по себе обещает хотя бы одну порядок величины [десятикратное] улучшение производительности, надежности и простоты за десятилетие ». Он также заявляет, что« мы не можем ожидать когда-либо двукратного роста каждые два года »в разработке программного обеспечения, как это происходит в разработке аппаратного обеспечения (Закон Мура ).

Резюме

Брукс различает два разных типа сложности: случайную сложность и существенную сложность. Это связано с Аристотель классификация. Случайная сложность связана с проблемами, которые инженеры создают и могут исправить; например, детали написания и оптимизации сборка код или задержки, вызванные пакетной обработкой. Существенная сложность вызвана решаемой проблемой, и ничто не может ее решить; Если пользователи хотят, чтобы программа выполняла 30 различных действий, тогда эти 30 функций являются важными, и программа должна выполнять эти 30 различных действий.

Брукс утверждает, что случайная сложность существенно снизилась, и современные программисты тратят большую часть своего времени на решение основных сложностей. Брукс утверждает, что это означает, что сокращение всех случайных действий до нуля не даст такого же улучшения на порядок, как попытка уменьшить существенную сложность. Пока Брукс настаивает, что никого нет Серебряная пуля, он считает, что ряд инноваций, направленных на преодоление существенной сложности, может привести к значительным улучшениям. Одной из технологий, которая позволила значительно улучшить случайную сложность, было изобретение языки программирования высокого уровня, Такие как Ада.[3] Сегодняшние языки, такие как C, C ++, C # и Ява, считаются улучшениями, но не такого же порядка.[нужна цитата ]

Брукс выступает за органическое "выращивание" программного обеспечения путем постепенной разработки. Он предлагает разработать и реализовать основную и подпрограммы в самом начале, а рабочие подразделы заполнить позже. Он считает, что такое программирование волнует инженеров и обеспечивает работающую систему на каждом этапе разработки.

Брукс утверждает, что есть разница между «хорошими» и «великими» дизайнерами. Он постулирует, что, поскольку программирование - это творческий процесс, одни дизайнеры по своей сути лучше других. Он предполагает, что между обычным дизайнером и великим разница в десять раз больше. Затем он выступает за одинаковое отношение к звездным дизайнерам и звездным менеджерам, предоставляя им не только равные права. вознаграждение, но и все привилегии более высокого статуса: большой офис, персонал, дорожные средства и т. д.

Статья и более поздние размышления о ней Брукса ».Нет серебряной пули 'Refired, можно найти в юбилейном издании Мифический человеко-месяц.[4]

Связанные понятия

Работа Брукса иногда цитировалась в связи с Закон вирта, чтобы утверждать, что «программные системы растут в размере и сложности быстрее, чем изобретаются методы управления сложностью».[5]

Смотрите также

Рекомендации

  1. ^ Брукс, Фредерик. П., младший (1987). «Нет серебряной пули - суть и случайность в разработке программного обеспечения» (PDF). Компьютер. 20 (4): 10–19. CiteSeerX  10.1.1.117.315. Дои:10.1109 / MC.1987.1663532.
  2. ^ Brooks, Proc. ИФИП
  3. ^ "Нет серебряной пули: сущность и случайности разработки программного обеспечения" (PDF). Фредерик П. Брукс-младший. оригинал (PDF) на 2016-09-10. Получено 2019-08-14.
  4. ^ Мифический человеко-месяц, серебряная пуля Refired
  5. ^ Тим А. Майчжак (2012). Улучшение тестирования программного обеспечения: технические и организационные разработки. Springer Science & Business Media. п. 4. ISBN  978-3-642-27464-0.


дальнейшее чтение

внешняя ссылка