Исходные данные для решения расчетной задачи могут задаваться или все сразу в начале выполнения программы, решающей задачу, или поступать порциями (записями, сообщениями).
Решение многих расчетных задач укладывается в типовую схему, включающую последовательные шаги ввода исходных данных, выполнения вычислений и вывода результатов. В ряде случаев решение расчетных задач сводится к последовательному применению нескольких алгоритмов (программ). Например, при решении систем обыкновенных дифференциальных уравнений, составляющих математическую модель рыночной экономики, может потребоваться сначала провести расчет начальных условий и коэффициентов уравнений, а после решения системы уравнений вычислить обобщенные характеристики исследуемого процесса по заданным формулам.
Можно выделить несколько типовых подходов к организации применения ЭВМ для решения расчетных задач. Эти подходы, рассматриваемые в историческом плане, можно считать этапами развития ППП:
1. При возникновении потребности в решении конкретной задачи оставляется и отлаживается программа или несколько последовательно выполняемых программ. Для программирования используется один из универсальных языков программирования (Basic, Pascal, Fortran, C, C++ , Assembler и т.д.).
2. Заранее составляются подпрограммы реализации типовых шагов алгоритмов, например, для реализации методов численного анализа, преобразования форм представления данных и т.п. Такие готовые подпрограммы накапливаются в форме исходных или объектных модулей в библиотеке, размещаемой на магнитном диске. При составлении прикладной программы в нее включаются обращения к библиотечным подпрограммам. Сами библиотечные подпрограммы присоединяются к прикладной программе в процессе трансляции (исходные модули) или при редактировании связей (объектные модули).
Библиотеку готовых подпрограмм уже можно рассматривать как ППП, используемый совместно с прикладной программой. Примерами таких ППП являются пакеты научных подпрограмм на языках ПЛ/1, Алгол и Фортран, которые использовались на БЭСМ-6 и ЕС ЭВМ в 70-е и 80-е годы..
3. Для совокупности родственных задач разрабатывается ППП, охватывающий некоторую предметную область. Здесь ППП – это совокупность программных модулей, между которыми установлены связи по управлению и по данным в соответствии с решаемой прикладной задачей. Модули пакета могут объединяться в программы, а программы – использовать общие файлы данных. Для запуска программ пакета в нужной последовательности могут использоваться средства операционной системы. Для решения новой прикладной задачи нужно готовить соответствующие исходные данные и разрабатывать последовательность обращений к операционной системе (ОС) для выполнения программ пакета в требуемой последовательности. Пользователь, применяющий такой пакет, должен знать назначение, входные и выходные данные программ пакета, а также команды ОС для запуска этих программ.
4. Дальнейшим развитием ППП стало построение пакетов с собственным языком управления – входным языком пакета (ВЯ). От пользователя требуется составление описания задачи, которую требуется решить, на ВЯ пакета и подготовка необходимых данных. Для запуска такого пакета обычно требуются минимальные сведения об используемой ОС.
Перечисленные выше четыре подхода к применению ЭВМ предполагают различную квалификацию пользователей.
Для реализации первого подхода требуется знание языка программирования, языка управления ОС и, разумеется, знание прикладной предметной области. Иначе говоря, первый подход типичен для специалиста в области прикладного программирования.
Это в полной мере относится и ко второму из рассматриваемых подходов, но применение библиотек подпрограмм обеспечивает повышение производительности труда прикладного программиста.
В третьем подходе функции прикладного программиста и пользователя пакета разделены. Прикладной программист разрабатывает пакет программ, для чего обычно требуется более высокий уровень квалификации, чем для разработки отдельных программ. От пользователя пакета требуются знание правил применения пакета и квалификация в той предметной области, к которой относятся задачи, решаемые с применением пакета, а также ограниченные сведения об используемой ОС.
Четвертый подход требует от пользователя пакета еще меньшей квалификации в области программирования, для него достаточно изучить сравнительно несложный входной язык пакета.
В настоящее время термин «пакет прикладных программ» применяется к комплексам программ различной сложности и назначения. Отметим, что наряду с этим термином сейчас все чаще используются понятия программного приложения или информационно-вычислительной системы.
Итак, назовем ППП совокупностью совместимых программ для решения задач определенного класса. ППП всегда ориентируется на пользователей определенной квалификации как в программировании, так и в той области, к которой относятся задачи решаемые с применением этого ППП.
Совместимость программ, составляющих ППП, означает возможность их взаимного использования, общность структуры управляющих данных и используемых информационных массивов. Кроме того, ППП следует рассматривать как самостоятельное программное изделие, как особый вид прикладного ПО.
Исходя из определения, можно выделить некоторые общие свойства ППП:
1. Пакет состоит из нескольких программных единиц.
2. Пакет предназначен для решения определенного класса задач и в пределах своего класса обладает определенной универсальностью, т.е. позволяет решать большинство задач этого класса.
3. Пакет допускает настройку на конкретные условия применения, т.е. в пакете предусмотрены средства управления, позволяющие выбирать конкретные возможности из числа предусмотренных.
4. Пакет разработан с учетом возможности его использования за пределами той организации, в которой он создан, и удовлетворяет общим требованиям к программному изделию:
1) соответствует существующим стандартам;
2) снабжается пользовательской документацией;
3) допускает возможность послепродажного обслуживания;
4) имеет установленную цену;
5) документация и способы применения пакета ориентированы на пользователя, имеющего определенный уровень квалификации в той области знаний, к которой относятся решаемые пакетом задачи.
Поскольку ППП предназначен для решения задач определенного класса, можно говорить о функциональном назначении пакета.
Рассмотрим классификацию ППП по их функциональному назначению (рис. 1).
Данный класс содержит широкий перечень программных продуктов, поддерживающих преимущественно информационные технологии конечных пользователей. Кроме конечных пользователей этими программными продуктами, за счет встроенных средств технологии программирования, могут пользоваться и программисты для создания усложненных программ обработки данных.
Представители данного класса программных продуктов:
1. Настольные системы управления базами данных (СУБД), обеспечивающие организацию и хранение локальных баз данных на автономно работающих компьютерах, либо централизованное хранение баз данных на файл-серверах и сетевой доступ к ним.
В настоящее время наиболее широко представлены реляционные СУБД для персональных компьютеров, осуществляющие:
· работу с базой данных через экранные формы;
· организацию запросов на поиск данных с помощью специальных языков запросов высокого уровня, например, SQL (Structured Query Language);
· генерацию отчетов различной структуры данных с поведением промежуточных и окончательных итогов;
· вычислительную обработку путем выполнения встроенных функций, программ, написанных с использованием языков программирования и макрокоманд.
Пользовательские приложения (прикладные программы), функционирующие в среде СУБД, создаются по типу меню работы конечного пользователя, каждая команда которого обеспечивает автоматизированное выполнение определенной функции.
В современных СУБД (например, в СУБД Access 2.0) содержатся элементы CASE-технологии процесса проектирования, в частности:
· визуализирована схема баз данных, позволяющая пользователю в диалоговом режиме создавать таблицы, формы, запросы, отчеты и макросы;
· осуществлена автоматическая поддержка целостности баз данных при различных видах обработки (включение, удаление или модификация данных баз данных);
· предоставляются так называемые мастера, автоматизирующие процесс проектирования (режим «конструктор») – мастер таблиц, мастер форм, мастер отчетов, построитель меню и т.д.;
· наличие собственного языка программирования.
Все это свидетельствует о расширении функциональных возможностей СУБД как инструментального средства для создания приложений.
Примеры: dBase (Ashton-Tate), Clipper (Nantucket), FoxPro (Fox Software), Approach (Lotus), Paradox (Borland), Access (Microsoft).
2. Серверы баз данных – успешно развивающийся вид программного обеспечения, предназначенный для создания и использования при работе в сети интегрированных баз данных в архитектуре клиент-сервер, в сети Интернет.
Многопользовательские СУБД (типа Paradox, Access, FoxPro и др.) в сетевом варианте обработки данных хранят информацию на файл-сервере – специально выделенном компьютере в централизованном виде, но сама обработка данных ведется на рабочих станциях. Серверы баз данных, напротив, всю обработку (хранение, поиск, извлечение и передачу данных клиенту) данных выполняют самостоятельно, одновременно обеспечивая данными большое число пользователей сети.