Программное обеспечение и его разработка
Шрифт:
Какие же способности людей расширяются с помощью вычислительных машин? Оказывается, две очень разные человеческие характеристики — его ум и воля.
«Новинка» — популярная телевизионная передача рассказала однажды о вычислительной машине, названной «умной машиной». Однако ЭВМ это больше, чем просто дополнительный мозг, и этот факт имеет глубокое влияние на программное обеспечение, которое мы должны разрабатывать с учетом того, что вычислительная машина является еще и продолжением нашей воли.
«Продолжение» мозга. Высокая скорость работы ЭВМ позволит людям решить
«Продолжение» воли. В несколько ином смысле вычислительная машина «продолжает» человеческую волю. Она выполняет приказы и делает выбор между вариантами, невзирая на то, присутствует рядом человек или нет. Именно эта способность выбирать из разных вариантов и делает ее продолжением человеческой воли. Причем в этом смысле скорость работы ЭВМ совершенно несущественна.
Если лишить машину возможности выбора, она превратится в простое расширение человеческого мозга! Реализуется такой выбор с помощью команд условного перехода, которые являются воплощением функции выбора.
Люди и новые орудия труда. Люди всегда начинают с того, что используют новые орудия труда для решения старых задач. Только через годы или даже десятилетия продолжительного опыта новое орудие начинает использоваться для новых целей. Вычислительные машины быстро проникают во все новые области применения. И именно для этих новых применений разработка программного обеспечения особенно трудна.
Телеграф заменил верховых посыльных. Радио сменило телеграф. Однако надежды на то, что радио будет использоваться вместо телефона (что приведет в исчезновению проводов), не оправдались; это, по-видимому, связано с отсутствием секретности при радиопередачах. Любой, кто имеет радиоприемник, может спокойно слушать все разговоры. Прошло 20 лет использования радио, прежде чем совершенно случайно не было обнаружено, что радио это великое средство для развлечения — некий дантист из Питтсбурга начал по субботним дням «трансляцию» музыки из своего гаража, и началась новая эра радиовещания и развлечений с доставкой на дом. То самое свойство, которое не позволило радио сделаться заменой телефона, и сделало его мощным орудием индустрии развлечений.
Дэвид Сарнов, предвидя такое использование радио, в своем полуфантастическом меморандуме писал за целое десятилетие до начала передач упомянутого дантиста:
Мне пришел в голову план развития, в результате выполнения которого радио станет обычным предметом домашнего обихода, каким является пианино или фонограф. Идея состоит в доставке музыки на дом без использования проводов. В прошлом уже делались такие попытки с проводами, но они не удались, так как провода в эту схему явно не вписываются. Радио — это как раз то, что нам необходимо. Можно разработать специальный приемник в виде простейшего «музыкального радиоящика», приспособленного для работы на нескольких различных длинах волн, менять которые можно будет простым поворотом выключателя и нажатием единственной кнопки…
Меморандум Сарнова в точности предсказал то, что и произошло в действительности. Однако его руководство посмеялось над ним, и передачи начала вести первой не его фирма.
Прогресс в использовании вычислительных машин шел в точности по общей схеме. Сначала они выполняли то, что делалось и раньше, без них, и было хорошо известно — платежные ведомости, инвентаризация, баллистические и инженерные расчеты. Лишь постепенно захватывались новые области применения — справочные системы, управление информационными системами и системы разделения времени.
Наконец, вычислительные машины начали использовать в той области, которую я называю управление процессами, и именно здесь, в этой новой области использования теперь уже «старого» орудия труда, нам наиболее трудно проводить разработку программного обеспечения.
Одна из главнейших проблем, связанных с вычислительными машинами, состоит в их крайней разносторонности — их можно использовать буквально для всего. Как еще в 1936 г. показал Тюринг, любая функция или процесс, которые можно выразить с помощью какого-либо алгоритма, могут быть выполнены очень простой машиной, если, конечно, не принимать во внимание временные факторы.
В 1910 г. Бертран Рассел и Альфред Норт Уайтхед выпустили труд «Principia Mathematica», в котором выдвинули принцип, согласно которому основанием всех математических дисциплин является логика. Тем самым доказательство теорем, решения различных задач можно рассматривать в терминах специального вида утверждений, каждое из которых может быть истинным или ложным. Мы обнаруживаем, что вычислительная машина это гораздо более сложное устройство, нежели просто арифметический вычислитель, это еще и логическая машина.
Документы, описывающие различные использования вычислительных машин, состоят из сотен и сотен пунктов. Можно продолжать составление таких списков до бесконечности, но занятие это совершенно бесполезное. Куда больше пользы принесет попытка разделить виды использования вычислительных машин на качественные категории, отличающиеся друг от друга требованиями к аппаратуре, программному обеспечению, людям. Различия должны быть достаточно глубокими, чтобы такое деление было полезным всем тем, кто создает сложные системы, основанные на использовании вычислительных машин.
Мы будем рассматривать пять различных типов использования:
Тип 1. Обработка данных
Тип 2. Решение научных задач
Тип 3. Информационные системы
Тип 4. Диалоговые системы решения задач
Тип 5. Управление процессами
И история развития, и терминология вычислительной техники провели четкое различие между машиной, используемой для коммерческих расчетов — процесса, который отмечен как обработка данных, — и машиной для решения задачи, той машиной, что, собственно, и называется вычислительной машиной. Аппаратура, разрабатываемая для одного из этих использований, сильно отличалась от аппаратуры, применявшейся в другой области. Лишь недавно (1964) одна и та же аппаратура получила возможность работать и там и там, выполняя обе задачи.