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

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

Разделение времени уменьшает «время ожидания решения», то есть время, проходящее от момента передачи задачи в вычислительный центр до получения результата решения. Тем самым доводится до максимума доля творчества человека в отношении: «процесс решения задачи»/«процесс созидания». В коммерческих приложениях типа III имеют дело с данными — файлами, записями, страховыми полисами, счетами, расписками, индексами клиентов. Огромные, многотомные файлы. Изнурительная работа по прочесыванию огромных файлов для нахождения единственного подходящего, выполнение простейших вычислений — иногда даже тривиальных, — и затем снова работа с файлами. Критическими характеристиками при этом являются скорость движения магнитной ленты, время доступа к диску, количество томов, размещаемых на диске, а также структура файла.

Пользователи типа IV занимаются именно вычислениями, а не файлами в смысле файлов со страховыми полисами, выданными компанией миллионам различных людей. При этом обрабатываются большие количества данных, но это не файлы, а скорее массивы. Узким местом при этом являются скорость вычислительной машины и планирование процесса, необходимые для своевременного выполнения заданий.

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

Я разделил их по тем причинам, что, во-первых, использование по типу IV создает целую индустрию, а вид использования (разделение времени) и диалоговый режим существенно отличают этот тип от простой обработки данных и, во-вторых, для машин, используемых по типам III и IV, необходима весьма различная аппаратура, а значит, и разное программное обеспечение.


Использование типа V. Управление процессами

Если ЭВМ используется для выполнения или для помощи человеку в выполнении или слежении за некоторым процессом и мы не можем продолжать его выполнение без постоянного получения промежуточных результатов, мы используем машину по типу V. Процесс может быть простым, например управление огнями светофора, но может быть и весьма запутанным, как, например, система помощи авиадиспетчерам по предотвращению столкновений самолетов или система резервирования мест на самолетах, которая одновременно взаимодействует с тысячами служащих транспортных агентств.

Управление процессом неотделимо от выполнения процесса и обычно работает в режиме реального времени. Вычислительная машина должна успевать выполнять свою работу за время, отводимое для управления.

Для пользователей тип V выглядит так же, как и типы III и IV, но любые сбои ведут при этом к полному нарушению управляемого процесса.

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

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

Итак, тип V основывается на использованиях по типам III и IV.

Тип V появляется, когда комбинация задач типов IV и III приводит к значительным усилиям по ведению сложных разработок. Современная аппаратура достаточно легко справляется с задачами типа V! Узким местом таких систем является программное обеспечение.

Эволюция использования вычислительных машин шла непрерывно от типа I к типу V.

Тип I перешел в тип III. Было бы логично попытаться по запросу получить данные, находящиеся «внутри», в ЭВМ. Каково среднее заполнение самолетов рейса Вашингтон — Париж в августе?

Использование типа III имеет значительное отличие от типа I. Люди взаимодействуютс вычислительной машиной. И опять-таки основная тяжесть этого ложится на программное обеспечение!

Пользователи типов I и II не имеют прямых контактов с машиной. Задания помещаются на перфокарты или магнитные ленты, и затем программист или ответственный по лаборатории ожидает, пока работа не будет выполнена, после чего они получают результаты, обычно отпечатанные на бумаге.

Пользователи типов III и IV непосредственно взаимодействуют с вычислительной машиной с помощью пишущей машинки или терминала с телевизионным экраном и клавиатурой. Они ведут диалог. Это совершенно не похоже на первые два случая, и для обеспечения взаимодействия пользователя с машиной нужно писать специальные программы (см. рис. 2.1).


Рекомендуем почитать
Изучаем 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-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач.