Фредерик Брукс - Мифический человеко-месяц или как создаются программные системы стр 4.

Шрифт
Фон

Я глубоко признателен мисс Саре Элизабет Мур (Sara Elizabeth Moore), мистеру Дэвиду Вагнеру (David Wagner) и миссис Ребекке Беррис (Rebecca Burris) за помощь в подготовке данной рукописи, а также профессору Джозефу Слоуну (Joseph C. Sloane) за советы в отношении иллюстраций.

F. P. B., Jr. Чэпел Хилл, Северная Каролина Октябрь 1974

Глава 1

Смоляная яма

Een Schip op bet strand is een baken in zee.[Корабль на мели — моряку маяк.]

ГОЛЛАНДСКАЯ ПОСЛОВИЦА

Самая яркая сцена доисторических времён — борьба огромных животных со смертью в смоляных ямах. Воображение представляет динозавров, мамонтов и саблезубых тигров, пытающихся высвободиться из смолы. Чем отчаянней борьба, тем сильнее затягивает смола, и как бы ни был силён или ловок зверь, в конечном итоге ему уготована гибель.

Такой смоляной ямой в последнее десятилетие было программирование больших систем: в ней сгинул не один большой и сильный зверь. По большей части это происходило в области систем, где мало кому удалось реализовать спецификации, уложиться в график и бюджет. Большие и малые, массивные и жилистые — одна за другой эти команды увязли в смоле. Казалось, ничто в отдельности не вызывает трудностей — одну лапу всегда можно вытащить. Но накопление действующих одновременно и взаимовлияющих факторов все более и более замедляет движение. Вызывает удивление неприятность возникшей проблемы, и распознать её сущность нелегко. Но нужно это сделать, если мы собираемся решить её.

Поэтому начнём с определения того, что такое системное программирование, и какие радости и печали оно таит.

Системный программный продукт

Время от времени можно прочесть в газете о том, как в переоборудованном гараже пара программистов сделала замечательную программу, оставившую позади разработки больших команд. И каждый программист охотно верит в эти сказки, поскольку знает, что может создатьлюбуюпрограмму со скоростью, значительно превышающей те 1000 операторов в год, которые, по сообщениям, пишут программисты в промышленных бригадах.

Почему же до сих пор все профессиональные бригады программистов не заменены одержимыми дуэтами из гаражей? Нужно посмотреть на то,что , собственно, производится.

В левом верхнем углу рисунка 1.1 находитсяпрограмма . Она является завершённым продуктом, пригодным для запуска своим автором на системе, на которой была разработана. В гаражах обычно производитсятакойпродукт, и это — тот объект, посредством которого отдельный программист оценивает свою производительность.

Есть два способа, которыми программу можно превратить в более полезный, но и более дорогой объект. Эти два способа представлены по краям рисунка.

При перемещении вниз через горизонтальную границу программа превращается впрограммный продукт . Это программа, которую любой человек может запускать, тестировать, исправлять и развивать. Она может использоваться в различных операционных средах и со многими наборами данных. Чтобы стать общеупотребительным программным продуктом, программа должна быть написана в обобщённом стиле. В частности, диапазон и вид входных данных должны быть настолько обобщёнными, насколько это допускается базовым алгоритмом. Затем программу нужно тщательно протестировать, чтобы быть уверенным в её надёжности. Для этого нужно подготовить достаточное количество контрольных примеров для проверки диапазона допустимых значений входных данных и определения его границ, обработать эти примеры и зафиксировать результаты. Наконец, развитие программы в программный продукт требует создания подробной документации, с помощью которой каждый мог бы использовать её, делать исправления и расширять. Я пользуюсь практическим правилом, согласно которому программный продукт стоит, по меньшей мере, втрое дороже, чем просто отлаженная программа с такой же функциональностью.

Рис. 1.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке