Сложность разделения на уровни. Например, наиболее серьезной внутренней трудностью является сложность, но она не всегда неизбежна. Значительная часть (но не вся) концептуальной сложности в наших программных конструкциях проистекает от произвольной сложности самих применений. Действительно, Ларс Седаль из MYSYGMA Sohdal and Partners, международной консалтинговой фирмы в области менеджмента, пишет:
Мой опыт показывает, что все сложности, с которыми сталкиваются при разработке систем, являются признаками организационных неполадок. Попытка моделирования практической деятельности программами соответствующей сложности влечет сохранение неразберихи вместо решения проблем.
Стив Лукашик (Steve Lukasik) из Northrop доказывает, что даже организационная сложность, возможно, не является произвольной, а может испытывать воздействие принципов упорядочения:
Я получил образование в облати физики и поэтому вижу, что «сложные» вещи могут быть описаны на языке более простых понятий. Вы можете быть правы, и я не стану утверждать, что все сложные вещи поддаются принципам упорядочения… по тем же правилам доказательства нельзя утверждать, что не поддаются.
…То, что вчера было сложностью, завтра будет в порядке вещей. Сложность беспорядочного движения молекул привела к возникновению кинетической теории газов и открытию трех законов термодинамики. Сейчас программное обеспечение не позволяет увидеть присущие ему принципы упорядочения, но вы как раз и должны объяснить, почему это происходит. Это не проявление моей бестолковости или желания поспорить. Я убежден, что в один прекрасный день «сложность» программного обеспечения будет объяснена на языке каких-нибудь понятий более высокого порядка (инвариантов, как говорят физики).
Я не занимался более глубоким анализом, к которому справедливо призывает Лукашик. Как отрасль науки мы нуждаемся в развитии теории информации для количественной оценки информационного содержания статистических структур, подобно тому, как теория Шэннона делает это для информационных потоков. Это совсем не моя задача. Лукашику я просто отвечу, что сложность системы является функцией мириадов деталей, каждая из которых должна быть точно задана либо с помощью какого-нибудь общего правила, либо подробным описанием, но не просто статистически. Представляется весьма сомнительным, чтобы несогласованные результаты работы многих голов оказались достаточно связными, чтобы быть точно описанными общими правилами.
Значительно большая часть сложности программных конструкций обусловлена, однако, не соответствием внешнему миру, а самой реализацией — структурами данных, алгоритмами, способами коммуникаций. Наращивание программ с помощью больших блоков высокого уровня, созданных когда-то раньше или кем-то другим, помогает избежать целых уровней сложности. «СПН» провозглашает поход на проблему сложности в полной надежде, что можно достичь прогресса. Она выступает за добавление к программной системе необходимой сложности:
• иерархически, располагая модули или объекты по уровням;
• пошагово, что обеспечивает постоянную работоспособность системы.
Анализ Харела
Дэвид Харел (David Harel) в статье 1992 года «Кусая серебрянную пулю» предпринимает самый тщательный анализ «СПН» из всех опубликованных. [9]
Пессимизм против оптимизма и реализма. Харел рассматривает как «СПН», так и статью Парнаса 1984 года «Программные аспекты стратегических оборонительных систем» [10] как «слишком унылые». Он намеревается высветить более яркую сторону проблемы, предпосылая статье подзаголовок «К светлому будущему порграммных разработок». Так же, как и Кокс, Харел считает «СПН» пессимистической, говоря: «Если взглянуть на те же факты с другой точки зрения, возникают более оптимистические выводы». Оба они неправильно воприняли тональность статьи.
Прежде всего, моя жена, коллеги и редакторы считают, что я гораздо чаще впадаю в неоправданный оптимизм, чем в пессимизм. В конце концов я по происхождению программист, а оптимизм — это профессиональная болезнь данного ремесла.
В «СПН» прямо сказано: «Вглядываясь в предстоящее десятилетие, мы не видим серебряной пули… Однако скептицизм не есть пессимизм… Нет царского пути, но путь есть». Она предсказывает, что нововведения, происходящие в 1986 году, будучи разработаны и использованы, в совокупности действительно позволят достичь роста производительности на порядок. Десятилетие 1986-1996 подходит к концу, и это предсказание оказывается, скорее, слишком оптимистичным, а не мрачным.
Читать дальше
Конец ознакомительного отрывка
Купить книгу