Программное обеспечение и его разработка - [12]

Шрифт
Интервал

Прогресс в использовании вычислительных машин шел в точности по общей схеме. Сначала они выполняли то, что делалось и раньше, без них, и было хорошо известно — платежные ведомости, инвентаризация, баллистические и инженерные расчеты. Лишь постепенно захватывались новые области применения — справочные системы, управление информационными системами и системы разделения времени.

Наконец, вычислительные машины начали использовать в той области, которую я называю управление процессами, и именно здесь, в этой новой области использования теперь уже «старого» орудия труда, нам наиболее трудно проводить разработку программного обеспечения.


Использование вычислительной машины

Одна из главнейших проблем, связанных с вычислительными машинами, состоит в их крайней разносторонности — их можно использовать буквально для всего. Как еще в 1936 г. показал Тюринг, любая функция или процесс, которые можно выразить с помощью какого-либо алгоритма, могут быть выполнены очень простой машиной, если, конечно, не принимать во внимание временные факторы.

В 1910 г. Бертран Рассел и Альфред Норт Уайтхед выпустили труд «Principia Mathematica», в котором выдвинули принцип, согласно которому основанием всех математических дисциплин является логика. Тем самым доказательство теорем, решения различных задач можно рассматривать в терминах специального вида утверждений, каждое из которых может быть истинным или ложным. Мы обнаруживаем, что вычислительная машина это гораздо более сложное устройство, нежели просто арифметический вычислитель, это еще и логическая машина.

Документы, описывающие различные использования вычислительных машин, состоят из сотен и сотен пунктов. Можно продолжать составление таких списков до бесконечности, но занятие это совершенно бесполезное. Куда больше пользы принесет попытка разделить виды использования вычислительных машин на качественные категории, отличающиеся друг от друга требованиями к аппаратуре, программному обеспечению, людям. Различия должны быть достаточно глубокими, чтобы такое деление было полезным всем тем, кто создает сложные системы, основанные на использовании вычислительных машин.

Мы будем рассматривать пять различных типов использования:

Тип 1. Обработка данных

Тип 2. Решение научных задач

Тип 3. Информационные системы

Тип 4. Диалоговые системы решения задач

Тип 5. Управление процессами

И история развития, и терминология вычислительной техники провели четкое различие между машиной, используемой для коммерческих расчетов — процесса, который отмечен как обработка данных, — и машиной для решения задачи, той машиной, что, собственно, и называется вычислительной машиной. Аппаратура, разрабатываемая для одного из этих использований, сильно отличалась от аппаратуры, применявшейся в другой области. Лишь недавно (1964) одна и та же аппаратура получила возможность работать и там и там, выполняя обе задачи.

Вычислительная машина для решения научных задач была устроена так, чтобы наиболее быстрым образом производить вычисления. Обрабатывающая машина — обрабатывающая данные — была машиной ввода/вывода, машиной, которая управляла внешними файлами. В течение первых 12 лет выпуска вычислительных машин фирма IBM сопровождала две различные ветви машин — машины для обработки данных и научные машины.

Серия машин IBM/360, объявленная в 1964 г., изменила положение, поскольку для IBM стало слишком дорого разрабатывать, строить и сопровождать две различные ветви.


Использование типа I. Обработка данных

Бухгалтерские расчеты проводятся постфактум. Учет векселей, ведение регистрационных журналов, составление платежных ведомостей и проведение инвентаризации есть всего лишь работа с записями о прошедших событиях. Разработанная для проведения быстрых расчетов баллистических траекторий вычислительная машина, отвергнутая в свое время фирмой IBM, была доведена до состояния экономической рентабельности корпорацией Sperry Rand в 1952 г. Пользователи заставили ее составлять платежные ведомости и инвентарные списки.


Использование типа II. Решение научных задач

Многие называют большие вычислительные машины «большими арифмометрами». На основе небольшого числа исходных данных мощная машина может работать часами, решая уравнение теплопроводности или строя прогнозы погоды.


Использование типа III. Информационные системы

После нескольких лет использования люди осознали, что все необходимые им данные находятся «внутри» и вполне доступны. Было написано специальное программное обеспечение, и пользователи получили возможность вводить запросы в вычислительную машину и получать от нее ответы на эти запросы. Родился новый вид использования вычислительных машин.


Использование типа IV. Диалоговые системы решения задач

Если отдельный пользователь решает на машине математическую или логическую задачу, по ходу дела вмешиваясь в решение, говорят, что пользователь работает в «диалоговом», или «интерактивном», режиме.

Когда в одно и то же время одной и той же вычислительной машиной могут пользоваться сотни пользователей, то говорят, что все они работают в режиме разделения времени. Это еще один способ выполнять работы, связанный с использованием ЭВМ по типу I или типу II. Отличие проявляется в использовании машины в целом, каждый отдельный пользователь может этих отличии и не замечать.


Рекомендуем почитать
Изучаем Java EE 7

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)


Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


Фундаментальные алгоритмы и структуры данных в Delphi

Книга "Фундаментальные алгоритмы и структуры данных в Delphi" представляет собой уникальное учебное и справочное пособие по наиболее распространенным алгоритмам манипулирования данными, которые зарекомендовали себя как надежные и проверенные многими поколениями программистов. По данным журнала "Delphi Informant" за 2002 год, эта книга была признана сообществом разработчиков прикладных приложений на Delphi как «самая лучшая книга по практическому применению всех версий Delphi».В книге подробно рассматриваются базовые понятия алгоритмов и основополагающие структуры данных, алгоритмы сортировки, поиска, хеширования, синтаксического разбора, сжатия данных, а также многие другие темы, тесно связанные с прикладным программированием.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.


Как пасти котов. Наставление для программистов, руководящих другими программистами

«Как пасти котов» – это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач.