7. Кто такой Фредерик Брукс? Каков его вклад в программную инженерию?
Фредерик Брукс — американский инженер, ученый в области вычислительных систем.
- Работал в IBM, руководитель разработки семейства ОС IBM-360
- 1975 г. книга — “Мифический человеко-месяц”. Является бессмертной классикой в области разработки ПО
- 1986 г. статья — “Серебрянной пули нет”. Статья, в которой говорится, что не существует универсального способа увеличить скорость и простоту разработки ПО и надежность этого самого ПО. Позже стала отдельной главой в его книге “Мифический человеко-месяц”.
Его вклад в программную инженерию заключается непосредственно в представленной выше книге и статье, в которых Брукс определяет множество различных понятий, относящихся к программной инженерии, а также рассматривает проблемы программной инженерии и пути их решения.
8. Кто такой фон Нейман? Каков его вклад в программную инженерию?
<aside>
💡 Джон фон Нейман - в первую очередь очень сильный математик. Создал теорию игр, и клеточных автоматов. Имеет ученую степень - кандидат наук по математике. Преподавал в Принстонском университете, дальше работал в институте перспективных исследований, который также расположен в Принстоне. В 1954 он был назначен членом комиссии по атомной энергии. В течение последних лет жизни фон Нейман был главным советником по атомной энергии, атомному оружию и межконтинентальному баллистическому оружию.
</aside>
Вклад фон Неймана в программную инженерию:
- Разработал новый подход к работе с памятью в ходе разработки одной из первых вычислительных машин IAS, который представляет из себя три принципа(эти принципы в совокупности называют архитектурой фон Неймана):
- Принцип однородности памяти: он предлагает, что инструкции и данные хранятся в одной памяти, и внешне не отличаются.
- Принцип адресности: структурно память состоит из пронумерованных ячеек.
- Принцип программного управления: алгоритм решения задачи и вычисления должны быть представлены в последовательности управляющих команд(программы).
9. Перечислите признаки ПО по Бруксу.
- Сложность программных объектов существенно зависит от их размеров. Классическая же наука строила простые модели сложных явлений, т.е. масштабирование удавалось, так как сложность не была характеристической чертой рассматриваемых явлений
- Согласованность — ПО основывается не на объективных посылках (подобно тому, как теории в науке основывается на постулатах и аксиомах), а должно быть согласовано с большим количеством интерфейсов, плохо формализуемых и основанных на человеческих соглашениях
- Изменяемость — ПО легко изменить и, как следствие, требования к нему постоянно меняются в процессе разработки. Это создает много дополнительных трудностей при его разработке и эволюции
- Незримость — ПО невозможно увидеть, оно виртуально. Поэтому, например, трудно воспользоваться технологиями, основанными на предварительном создании чертежей, успешно используемыми в других промышленных областях (например, в строительстве, машиностроении)