Статья Батлера Лэмпсона «Советы разработчику компьютерных систем» (Butler Lempson, Hints for Computer System Design, IEEE Software 1,1, January 1984). Большая часть советов автора относится к производительности; лучше всего раскрыты вопросы интегрированной разработки систем на аппаратном и программном уровнях. Электронный вариант статьи можно найти по адресу: http:// research.microsoft.com/~lampson/33-Hints/Abstract.html.
Предварительные оценки
Во время непринужденной беседы о разработке программного обеспечения Боб Мартин (Bob Martin) спросил меня: «Сколько воды вытекает из Миссисипи за день?» Так как до этого по его вопросам мне казалось, что мы хорошо понимаем друг друга, я вежливо переспросил: «Извините?» Когда он повторил свой вопрос, я понял, что мне остается лишь попытаться развеселить бедного парня, который, судя по всему, повредился в уме от перенапряжения, вызванного необходимостью руководить большим отделом программного обеспечения.
Мой ответ был примерно таким. Я оценил, что в это время года река имеет в ширину примерно милю, а в глубину — около 20 футов (то есть около 1/150 мили). Скорость течения я оценил как 5 миль в час или 120 миль в день. Я перемножил эти величины и получил:
1 миля * 1/250 мили * 120 миль/день = 1/2 куб мили/день
Итак, по порядку величины из Миссисипи вытекало около половины кубической мили в день. Ну и что?
Тогда Мартин вытащил из ящика стола коммерческое предложение по системе коммуникаций, которую его организация готовила к летним Олимпийским играм, и проделал аналогичные вычисления. Он определил характерное значение одного из ключевых параметров, о которых мы говорили, определив время, необходимое для почтовой пересылки одного символа. Его вычисления были так же просты, как и для реки Миссисипи, и намного более показательны. Из них следовало, что предложенный вариант системы мог бы работать, только если бы в каждой минуте было по 120 секунд, а то и больше. Мартин отослал этот вариант обратно в комиссию по разработке в тот же день. Беседа происходила за год до Олимпийских игр, система была закончена в срок и работала безукоризненно.
Таким ярким (хотя и несколько эксцентричным) способом Мартин представил мне методику предварительных оценок. Инженеры в своих институтах с успехом используют ее по любому поводу, но в программировании предварительные оценки незаслуженно обойдены вниманием.
Опубликовал vovan666
April 16 2013 23:59:38 ·
0 Комментариев ·
4550 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.