Общее понятие ПО для ПК

Компьютер - это устройство для обработки информации. Для работы пользователя на компьютере нужно установить программы, которые будут содержать команды на понятном компьютеру языке. Удобство работы пользователя зависит от факторов:

  • вычислительная мощность компьютера,
  • используемые устройства ввода-вывода информации,
  • наличие мощных программ работы с информацией,
  • удобный и понятный программный интерфейс.

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

Непрерывное повышение мощности персональных компьютеров, периферийных устройств, а также развитие средств связи дает разработчикам программного обеспечения все больше возможностей для максимально полного удовлетворения запросов конечных потребителей. Это и ставший стандартом графический интерфейс для любого ПО, и внедренные возможности для отправки документов и данных с помощью Интернет непосредственно из прикладной программы (Microsoft Word , Excel , Access и др.), и возможность использования компьютера как хранилища информации благодаря появлению новых видов накопителей большой емкости и малым временем доступа к данным, а также многие другие возможности и сервисные функции.

При своем выполнении программы могут использовать различные устройства для ввода и вывода данных, подобно тому, как человеческий мозг пользуется органами чувств для получения и передачи информации. Сам по себе ПК не обладает знаниями ни в одной области своего применения, все эти знания сосредоточены в выполняемых на нем программах. Поэтому часто употребляемое выражение «компьютер сделал» означает ровно то, что на ПК была выполнена программа, которая позволила выполнить соответствующее действие. В настоящее время весь комплекс ПО делится на системные и пользовательские программы. Системное программное обеспечение выполняет функции «организатора» всех частей ПК, а также подключенных к нему внешних устройств. Программы для пользователей служат для выполнения каких – либо конкретных задач во всех сферах человеческой деятельности.

Прикладное программное обеспечение.

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

   Проблемно-ориентированные ППП
   Программные продукты данного класса можно классифицировать по разным признакам:

  1. типам предметных областей;
  2. типам информационным системам;
  3. функциям и комплексам задач, реализуемых программным способом, и др. 

   Для некоторых предметных областей возможна типизация функций управления, структуры данных и алгоритмов обработки. Это вызвало разработку значительного числа ППП одинакового функционального назначения и, таким образом, создало рынок программных продуктов:

  1. ППП автоматизированного бухгалтерского учета; 
  2. ППП финансовой деятельности; 
  3. ППП управления персоналом (кадровый учет); 
  4. ППП управления материальными запасами; 
  5. ППП управления производством; 
  6. банковские информационные системы и т. п. 

   Основные тенденции в области развития проблемно-ориентированных программных средств:

  1. создание программных комплексов в виде автоматизированных рабочих мест (APM) управленческого персонала;
  2. создание интегрированных систем управления предметной областью на базе вычислительных сетей, объединяющих АРМы в единый программный комплекс с архитектурой "клиент – сервер"; 
  3. организация данных больших информационных систем в виде распределенной базы данных в сети ЭВМ; 
  4. наличие простых языковых средств конечного пользователя для запросов к базе данных; 
  5. создание программного обеспечения, позволяющего настраивать функции обработки данных конечными пользователями (без участия программистов); 
  6. защита программ и данных от несанкционированного доступа (парольная защита на уровне функций, режимов работы, данных). 

   Для подобного класса программ высоки требования к оперативности обработки данных (например, пропускная способность для банковских систем должна составлять несколько сот транзакций в секунду). Велики объемы хранимой информации, что обусловливает повышенные требования к средствам администрирования данных БД (актуализации, копирования, обеспечения производительности обработки данных).
   Наиболее важно для данного класса программных продуктов создание дружественного интерфейса для конечных пользователей.
   Данный класс программных продуктов развивается как в плане реализуемых ими функций, так и в плане используемого для их создания инструментария разработчика. Со временем границы компьютеризации информационных систем, как правило, расширяются, что приводит к изменению функций существующих ППП.

ППП автоматизированного проектирования
   Программы этого класса предназначены для поддержания работы конструкторов и технологов, занимающихся построением чертежей, схем, диаграмм, графическим модулированием и конструированием, созданием библиотеки стандартных элементов чертежей и их многократным использованием, созданием демонстрационных иллюстраций и мультфильмов.
   Отличительными особенностями этого класса программных продуктов являются высокие требования к технической части системы обработки данных, наличие библиотек встроенных функций, объектов, интерфейсов с графическими системами и базами данных.

ППП общего назначения
   Данный класс содержит широкий перечень программных продуктов, поддерживающих преимущественно информационные технологии конечных пользователей. Кроме конечных пользователей, этими программными продуктами, благодаря встроенным средствам технологии программирования, могут пользоваться и программисты для создания усложненных программ обработки данных.
   Представители данного класса программных продуктов – настольные системы управления базами данных (СУБД), обеспечивающие организацию и хранение локальных баз данных на автономно работающих компьютерах, либо централизованное хранение баз данных на файл-сервере и сетевой доступ к ним. 
   В настоящее время наиболее широко представлены реляционные СУБД для персональных компьютеров, осуществляющие:

  1. работу с базой данных через экранные формы; 
  2. организацию запросов на поиск данных с помощью специальных языков запросов высокого уровня; 
  3. генерацию отчётов различной структуры данных с подведением промежуточных и окончательных итогов; 
  4. вычислительную обработку путём использования встроенных функций, программ, написанных с использованием языков программирования и макрокоманд.

   Пользовательские приложения (прикладные программы), функционирующие в среде СУБД, создаются по типу меню работы конечного пользователя, каждая команда которого обеспечивает автоматизированное выполнение определенной функции. В современных СУБД (например, в СУБД Access 2.0) содержатся элементы CASE-технологии проектирования, в частности:

  1. визуализирована схема баз данных; 
  2. осуществлена автоматическая поддержка целостности баз данных при различных видах обработки (включение, удаление или модификация данных баз данных); 
  3. предоставляются так называемые "мастера", обеспечивающие поддержку процесса проектирования (режим "конструктор") – "мастер таблиц", "мастер форм", "мастер отчётов", "построитель меню" и т. п.; 
  4. созданы для широкого использования прототипы (шаблоны) структур баз данных, форм, отчетов и т. д.

   Всё это свидетельствует о расширении функциональных возможностей СУБД как инструментального средства для создания приложений.

  1.    Серверы баз данных – успешно развивающийся вид программного обеспечения, предназначенный для создания и использования при работе в сети интегрированных баз данных в архитектуре "клиент – сервер". Многопользовательские СУБД (типа Paradox, Access, FoxPro и др.) в сетевом варианте обработки данных хранят информацию на файл-сервере – специально выделенном компьютере в централизованном виде, но сама обработка данных ведется на рабочих станциях. Серверы баз данных, напротив, всю обработку данных (хранение, поиск, извлечение и передачу клиенту) выполняют самостоятельно, одновременно обеспечивая данными большое число пользователей сети. Общим для различных видов серверов баз данных является использование реляционного языка SQL (Structured Query Language) для реализации запросов к данным.
       Большинство серверов баз данных может использовать одновременно несколько платформ (Windows NT, Unix, OS/2 и др.), поддерживает широкий спектр протоколов передачи данных (IPX, TCP/IP, X.25 и др.).
       Некоторые серверы реализуют распределенное хранение информации в сети, поддерживают интерфейсы на уровне вызова типа:
    1. ODBC – Open Data Base Connectivity – для доступа к разнородным базам данных; 
    2. DAL – Data Access Language – для создания запроса на выборку данных, распределённых в сети; 
    3. SAG/CLI – SQL Access Group/Call Level Interface – для распределенных запросов и др. 

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

  2.    Генераторы (серверы) отчётов – программные средства, имеющие самостоятельное направление развития, обеспечивающие реализацию запросов и формирование отчётов в печатном или экранном виде в условиях сети с архитектурой "клиент – сервер".
       Сервер отчётов подключается к серверу баз данных, используя все уровни передач и драйверы сервера баз данных. Серверы отчётов включают:
    1. программы планирования используются для учёта времени для формирования отчётов по требованию пользователей, составления расписания выдачи и распространения отчётов по сети; 
    2. программы управления очередью запросов на формирование отчётов;
    3. программы ведения словаря пользователей для разграничения доступа к сформированным отчётам; 
    4. программы ведения архива отчётов и др. 

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

  3.    Текстовые процессоры – программы, используемые для автоматического форматирования документов, вставки рисованных объектов и графики в текст, составления оглавлений и указателей, проверки орфографии, шрифтового оформления, подготовки шаблонов документов. Примером развития данного направления программных продуктов являются издательские системы.
  4.    Табличный процессор – программы для вычислений силами конечного пользователя; средства деловой графики, программы специализированной обработки (встроенные функции, работа с базами данных, статистическая обработка данных и др.). 
  5.    Средства презентационной графики – специализированные программы, предназначенные для создания изображений и их показа на экране, подготовки слайд-фильмов, мультфильмов, видеофильмов, их редактирования, определения порядка следования изображений. Презентация может включать показ диаграмм и графиков. Все программы презентационной графики условно делятся на программы для подготовки слайд-шоу и программы для подготовки мультимедиа-презентации. Для работы этих программ необходимо также наличие специализированного оборудования – LCD (Liquid Crystal Desktop) – жидкокристаллической проекционной панели, которая просвечивается проектором для вывода изображения на экран, видеотехника. 
       Презентация требует предварительного составления плана показа. Для каждого слайда выполняется проектирование: определяются содержание слайда, размер, состав элементов, способы их оформления и т. п. Данные для использования в слайдах можно готовить как вручную, так и получать в результате обмена из других программных систем. 
  6.    Интегрированные пакеты – набор нескольких программных продуктов, функционально дополняющих друг друга, поддерживающих единые информационные технологии, реализованные на общей вычислительной и операционной платформе. 
       Наиболее распространены интегрированные пакеты, компонентами которых являются:
    1. СУБД;
    2. текстовый редактор; 
    3. табличный процессор; 
    4. органайзер;
    5. средства поддержки электронной почты;
    6. программы создания презентаций;
    7. графический редактор.

       Компоненты интегрированных пакетов могут работать изолированно друг от друга, но основные достоинства интегрированных пакетов проявляются при их разумном сочетании друг с другом. Пользователи интегрированных пакетов имеют унифицированный для различных компонентов интерфейс, тем самым обеспечивается относительная легкость процесса их освоения.
       Отличительными особенностями данного класса программных средств являются:

    1. полнота информационных технологий для конечных пользователей; 
    2. однотипный интерфейс конечного пользователя для всех программ, входящих в состав интегрированного пакета – общие команды в меню, стандартные пиктограммы одних и тех же функций (сохранение на диске, печать, проверка орфографии, шрифтовые оформления и т. п.), стандартное построение и работа с диалоговыми окнами и др.; 
    3. общий сервис для программ интегрированного пакета (например, словарь и средства орфографии для проверки правописания, построитель диаграмм, конвертер данных и др.); 
    4. легкость обмена и ссылок на объекты, созданные программами интегрированного пакета (применяется два метода: DDE – динамический обмен данными и OLE – динамическая компоновка объектами), единообразный перенос объектов (метод drag-and-drop); 
    5. наличие единой языковой платформы для разбора макрокоманд, пользовательских программ; 
    6. возможность создания документов, интегрирующих в себе возможности различных программ, входящих в состав интегрированного пакета. 
         Интегрированные пакеты эффективны и при групповой работе в сети многих пользователей. Так, из прикладной программы, в которой работает пользователь, можно отправить документы и файлы данных другому пользователю, при этом поддерживаются стандарты передачи данных в виде объектов по сети или через электронную почту. 
       

       Методо-ориентированные ППП
       Данный класс включает программные продукты, обеспечивающие, независимо от предметной области и функции информационных систем, математические, статические и другие методы решения задач. Наиболее распространены методы математического программирования, решение дифференциальных уравнений, имитационного моделирования, исследования операций.
       Методы статистической обработки и анализа данных (описательная статистика, регрессионный анализ, прогнозирование значений технико-экономических показателей и т. п.) имеют широкое применение. Так, современные табличные процессоры значительно расширили набор встроенных функций, реализующих статистическую обработку и информационные технологии статистического анализа. Вместе с тем необходимость в использовании специализированных программных средств статистической обработки, обеспечивающих высокую точность и многообразие статистических методов, также растёт. На базе методов сетевого планирования с экономическими показателями проекта, формированием отчётов различного вида оформилось новое направление программных средств – управление проектами, пользователями этих программ являются менеджеры проектов.

       Офисные ППП
       Данный класс программных продуктов включает программы, обеспечивающие организационное управление деятельностью офиса:

    1.    Органайзеры (планировщики) – программное обеспечение для планирования рабочего времени, составления протоколов встреч, расписаний, ведения записной и телефонной книжки.
         В состав программ-органайзеров входят: калькулятор, записная книжка, часы, календарь и т. п. Наиболее часто подобное программное обеспечение разрабатывается для ноутбуков, персональных компьютеров блокнотного типа.
    2.    Программы-переводчики, средства проверки орфографии и распознавания текста включают:
      1. программы-переводчики, предназначенные для создания подстрочника исходного текста на указанном языке; 
      2. словари орфографии, используемые при проверке текстов; 
      3. словари синонимов, используемые для стилевой правки текстов;
      4. программы для распознавания считанной сканерами информации и преобразования в текстовое представление. К ним относятся: 
        1. ППП OCR Cunei Form 2.0 – обеспечивает распознавание смешанных русско-английских текстов, в формате RTF сохраняется как текст, так и иллюстрации;
        2. ППП OCR Tiger – шрифтовая обучаемая система распознавания русского языка с возможностью автоматического выбора шрифта из библиотеки, обеспечивает многостраничный ввод текстов; 
        3. ППП Stylus Lingvo Office – реализует весь цикл «от листа до листа» – с помощью сканера осуществляется считывание текстового изображения, находящегося на печатном листе; FineReader осуществляет распознавание оптических образов и запись считанной информации в текстовом виде; Stylus for Windows выполняет перевод на указанный язык; корректор орфографии Lingvo Corrector и резидентный словарь Lingvo осуществляет проверку и правку. Результат перевода представляется в формате текстового редактора Word for Windows. 
    3.    Коммуникационные ППП – предназначены для организации взаимодействия пользователя с удаленными абонентами информационной сети. В условиях развития глобальной информационной сети Internet появился новый класс программного обеспечения – браузеры, средства создания WWW-страниц. Они различаются возможностями поддержки языка HTML, использованием цвета при оформлении фона, текста, форматированием текста, использованием графических форматов изображений, таблиц, фонового звука, мультипликации и т. п. Большинство браузеров используют язык Java. Электронная почта также становится обязательным компонентом офисных ППП. Наиболее широко распространенные ППП электронной почты:
      1. Eudora 2.1.2 (Qualcomm); 
      2. Pegasys Mail 2.4 (David Haris); 
      3. DML (DEMOS). 

         Они различаются платформами, на которых работают (DOS, Windows 3.x, Windows 95, Windows NT, Macintosh), ценой и условиями распространения, поддерживаемыми транспортными протоколами, интерфейсом с сетями. Электронная почта должна обеспечивать шифрование передаваемой информации, факсимиле подписи, проверку орфографии на любом из языков, управление сообщениями по электронной почте (оповещение о новой почте, организация почтовых ящиков, поиск, цитирование корреспонденции и т. д.).

       Настольные издательские системы
       Данный класс программ включает программы, обеспечивающие информационную технологию компьютерной издательской деятельности:

    1. форматирование и редактирование текстов; 
    2. автоматическую разбивку текста на страницы; 
    3. создание заголовков; 
    4. компьютерную верстку печатной страницы; 
    5. монтирование графики; 
    6. подготовку иллюстраций и т. п. 

       ППП Adobe Page Maker 6.0 обеспечивает подготовку многостраничных цветных публикаций, гибкий дизайн страниц, высококачественную печать. Расширены возможности по верстке: неограниченное число страниц-шаблонов, которые могут использоваться в одной публикации; применение различных эффектов к цветным изображениям; настройка резкости и регулировка цветов в импортированных файлах; возможно закрепление расположения объектов на странице, автоматическое выравнивание объектов. 
       Разработаны и включены новые цветовые библиотеки, используются новые технологии HiFi Color и PANTONE Hexachrome, которые расширяют цветовую гамму традиционной офсетной печати.

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

       Системы искусственного интеллекта
       Данный класс программных продуктов реализует отдельные функции интеллекта человека. Основными компонентами систем искусственного интеллекта являются база знаний, интеллектуальный интерфейс с пользователем и программа формирования логических выводов. Их разработка идет по следующим направлениям:

    1. программы-оболочки для создания экспертных систем путем наполнения баз знаний и правил логического вывода; 
    2. готовые экспертные системы для принятия решений в рамках определенных предметных областей; 
    3. системы управления базами знаний для поддержания семантических моделей (процедуральной, семантической сети, фреймовой, продукционной и др.). 

       Как правило, интеллектуальный интерфейс включает:

    1. диалоговый процессор на естественном языке; 
    2. планировщик, преобразующий описание задачи в программу решения на основе информации базы знаний;
    3. монитор, осуществляющий управление компонентами интерфейса. 

    Понятие ППП

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

    1. отдельные прикладные программы;
    2. библиотеки прикладных программ;
    3. пакеты прикладных программ;
    4. интегрированные программные системы.

       Рассмотрим по порядку каждую из этих групп. Отдельная прикладная программа пишется, как правило, на некотором универсальном языке программирования (Паскаль и т.п.) и предназначается для решения конкретной прикладной задачи. Примерами могут служить программа решения системы линейных алгебраических уравнений тем или иным численным методом, программа вычисления собственных значений матрицы и т. д. Авторами таких программ являются прикладные программисты, специализирующиеся: в соответствующих предметных областях. Прикладная программа может быть реализована в" виде набора модулей, каждый из которых выполняет некоторую самостоятельную функцию. Например, программа вычисления собственных значений матрицы может включать модули, - реализующие преобразования матрицы из одной, формы представления в другую ввод и вывод данных, обработку аварийных ситуаций с выдачей диагностических сообщений пользователю и другие действия.
       Библиотека представляет собой набор отдельных программ, каждая из которых решает некоторую прикладную задачу или выполняет определенные вспомогательные функции (управление памятью, обмен с внешними устройствами и т.п.). Библиотеки программ зарекомендовали себя эффективным средством решения вычислительных задач. Они интенсивно используются при решении научных и инженерных задач с помощью ЭВМ. Условно их можно разделить на библиотеки широкого применения и специализированные библиотеки. 
       Программы, входящие в состав библиотеки широкого применения, предназначены для решения задач из различных предметных областей. 
       Специализированные библиотеки ориентированы на решение отдельных, порой достаточно узких, классов задач.
       Переход от разработки отдельных прикладных программ к созданию библиотек программ поставил перед разработчиками ряд проблем как системного, так и прикладного характера. К числу основных проблем, возникающих на различных этапах конструирования библиотеки, относятся проблемы систематизации, документирования, тестирования и переносимости. 
       Проблема систематизации состоит в разбиении библиотеки на разделы и подразделы в соответствии с классификацией зада предметной области и методов их решения. Сюда входит выбор единых правил наименования программ (с учетом модификации и развития библиотеки), единых форм представления и наименования математически сходных объектов, единой схемы контроля ошибок и т. д.    Проблема документирования заключается в составлении единых правил описания программ библиотеки. Наличие качественной документации существенно упрощает доступ к отдельным программам, организацию взаимодействия между программами, включение новых программ. Важную роль при решении указанной проблемы играют средства автоматизации документирования, обеспечивающие широкое применение шаблонов (для титульных листов, фрагментов текста и т. п.), использование текстов программ библиотеки для автоматизированного составления документации и т. д.
       Тестирование библиотеки состоит в проверке программ на специально подготовленных тестовых данных.    Результаты тестирования в большой мере зависят от правильности и полноты набора тестов. Тестирование, в частности, включает проверку соответствия текста программы выбранному стандарту языка программирования, определение области применимости программы и качестве диагностического аппарата, выявление разнообразных количественных характеристик, программы (скорость работы, точность получаемых результатов и т. п.) сравнение с другими программами для решения той же задачи.
       Проблема переносимости состоит в разработке методов и средств, обеспечивающих возможность использования программ библиотеки в различных вычислительных условиях (на различных.типах ЭВМ, в различных операционных системах и т.д.) Эта проблема включает в себя такие аспекты, как следование стандарту языка программирования, организация работы с машинно-зависимыми константами, создание инструментальных средств, позволяющих автоматизировать перенос программ из одной вычислительной среды в другую. Доступ к программам библиотеки осуществляется с использованием штатных средств того или иного языка программирования. Разработка библиотек программ обычно осуществляется силами прикладных программистов. При этом нередко в библиотеку включаются программы, написанные в разное время и разными авторами. Отсутствие в составе библиотеки специализированного системного обеспечения позволяет в большинстве случаев при ее конструировании обойтись без какой-либо существенной помощи системных программистов (они могут привлекаться, например, для написания лишь отдельных служебных программ).
       Таким образом, характерной особенностью библиотек программ является отсутствие проблемно-ориентированного входного языка и достаточно развитого системного обеспечения. Как правило, библиотеки программ ориентированы на типовые задачи предметной области и не содержат средств решения специфических прикладных задач (в первую очередь это относится к библиотекам широкого применение программы которых могут использоваться для решения задач из различных предметных областей).
       Перейдем теперь к рассмотрению пакетов прикладных программ (ППП) как самостоятельной формы прикладного программного обеспечения. Для этого прежде всего необходимо уточнить само понятие пакета. В настоящее время не существует признанной всеми специалистами единой точки зрения по этому вопросу. Отсутствует также единая терминология в пакетной проблематике. Это объясняется прежде всего новизной данного научного направления, которое сложилось, в основном за последние 30 лет (приблизительно с начала 70-х годов). Кроме того, различные определения ППП рассматривают это понятие с разных точек зрения, выделяя те или иные функциональные или структурные особенности пакетов. ППП определяется и как совокупность программ для решения определенного класса задач, к которой обращаются при помощи простой символики (языка) и как совокупность программ, совместимых по структуре данных, способам управления, объединяемых общностью функционального назначениями представляющих собой средство решения класса задач определенным кругом пользователей. При этом под классом задач понимается множество прикладных проблем, обладающих общностью применяемых алгоритмов и информационных массивов, а также определение пакета как комплекса взаимосвязанных программ, обладающих специальной организацией, которая обеспечивает значительное повышение производительности труда программистов и пользователей пакета. В данном случае не делается попытки выделить ППП среди других форм программного обеспечения ЭВМ.
       Будем считать пакетом программ любой комплекс, ориентированный на решение некоторого класса задач. Формально такое определение не исключает из числа пакетов и библиотеки программ. Однако сложившееся на сегодняшний день представление о ППП как о самостоятельной форме программного обеспечения, позволяет указать на ряд характерных отличительных особенностей пакетов.    Одной из главных особенностей является ориентация ППП не на отдельную задачу, а на некоторый класс задач, включающий и специфические задачи предметной области. Отсюда следует необходимость, модульной организации ППП как основного технологического принципа его конструирования. Суть этого принципа состоит в оформлении общих фрагментов используемых алгоритмов в виде самостоятельных модулей. Решение сформулированной пользователем задачи осуществляется некоторой "цепочкой" таких модулей.
       Другой особенностью ППП является наличие в его составе специализированных языковых средств, обеспечивающих удобную работу пользователя с пакетом. Как правило, развитый пакет обладает несколькими входными языками, ориентированными на выполнение различных функций и различные типы пользователей. Язык может предназначаться для формулировки исходной задачи, описания алгоритма решения и начальных данных, организации доступа и поддержания базы данных или информационной базы ППП, разработки программных модулей, описания модели предметной области, управления процессом решения в диалоговом режиме и других целей.
       Еще одна особенность ППП состоит в наличии специальных системных средств, обеспечивавших принятую в предметной области дисциплину работы. К их числу относятся специализированные банки данных, средства информационного обеспечения, средства взаимодействия пакета с операционной системой и т. п.
       Наконец, интегрированной программной системой назовем комплекс программ, элементами которого являются различные пакеты и библиотеки программ. Примером служат системы автоматизированного проектирования, имеющие в своем составе несколько ППП различного назначения. Часто в подобной системе решаются задачи, относящиеся к различным классам или даже к различным предметным областям.
       Следует указать на отсутствие четких и однозначных границ между перечисленными формами прикладного программного обеспечения. Так, отдельная прикладная программа, ориентированная на решение класса задач и оформленная в виде совокупности модулей может рассматриваться как библиотека или даже пакет программ несмотря на отсутствие специализированных языковых и системных средств.    Переход от создания библиотек программ к разработке ППП был вызван целым рядом причин. К их числу прежде всего относится резкое увеличение возможностей ЭВМ. Это привело к значительному усложнению системного обеспечения вычислительных машин. Произошли существенные изменения в большинстве областей применения ЭВМ.

    Структура и основные компаненты ППП

       Несмотря на большое разнообразие конкретных пакетных разработок, можно выделить следующие основные компоненты ППП:

    1. входные языки;
    2. предметное обеспечение;
    3. системное обеспечение.

       Важно отметить, что такое разбиение на составные элементы отражает в первую очередь функции, выполняемые программами ППП, а не структуру самих программ, которая зависит от индивидуальных особенностей конкретного пакета. В разных пакетах указанные компоненты могут быть развиты в различной степени или вовсе отсутствовать. Однако наиболее развитые ППП, как правило, обладают всеми этими компонентами, каждый из которых может иметь довольно сложную структуру. В многочисленных работах, посвященных пакетной проблематике, из-за не устоявшейся терминологии нередко используются другие названия составных элементов ППП. Например, входной язык называют также языком заданий или языком управления. Для обозначения предметного обеспечения применяются термины "функциональное наполнение", "функциональная подсистема" или "тело пакета". Системное обеспечение часто называют системным наполнением, организующей или управляющей программой, а также процессором пакета.
       Рассмотрим функции каждого из компонентов ППП.
    Входные языки представляют собой средство общения пользователя с пакетом. Как отмечалось раньше развитый пакет может обладать несколькими входными языками, предназначенными для выполнения различных функций и ориентированными на различные типы пользователей. Можно выделить следующие основные типы пользователей ППП:
       Разработчик ППП, осуществляющий его модификацию и развитие с учетом изменения круга пользователей, класса решаемых задач (появление новых типов задач, развитие численных методов, модификация форм проведения работ и т. д.), а также состава аппаратного и программного обеспечения ЭВМ:
       Ответственный за сопровождение, в функции которого входит поддержание пакета в работоспособном состоянии в условиях конкретной вычислительной системы (обеспечение сохранности программ и массивов данных, своевременное дублирование информационных файлов, выявление ошибок в программах пакета).
    Администратор, отвечающий за организацию доступа пользователей к пакету, содержимое базы данных, защиту информации от несанкционированного доступа;
       Конечный пользователь, применяющий пакет для решения конкретных прикладных задач.
    Входные языки отражают объем и качество предоставляемых пакетом средств, а также удобство их использования. Таким образом, с точки зрения конечного пользователя именно входной язык является основным показателем возможностей ППП.
       В качестве входных языков могут использоваться как универсальные, так и специализированные языки программирования. Например, в качестве входного языка разработчика ППП для написания прикладных и системных программ пакета обычно используется тот или иной универсальный язык программирования (Фортран, Паскаль). В то же время входной язык конечного пользователя в развитом пакете, как правило, является языком качественно более высокого уровня по сравнению с универсальными языками. Изобразительные средства такого языка учитывают особенности задач предметной области и специфику пользователей. Подобные языки называют проблемно-ориентированными, или предметно-ориентированными.
       Перейдем теперь к рассмотрению других компонентов ППП, конкретная прикладная деятельность характеризуется двумя факторами:

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

       Предметное обеспечение представляет собой компонент пакета, отражающий особенности первого из этих факторов, т. е. особенности конкретной предметной области. Предметное обеспечение включает:

    1. программные модули, реализующие алгоритмы (или их отдельные фрагменты) решения прикладных задач;
    2. средства сборки программ из отдельных модулей;

       Определение состава библиотеки модулей и форм их взаимодействия между собой является одной из наиболее трудоемких задач при построении ППП. Ее решение предполагает проведение тщательного и квалифицированного модульного анализа используемых алгоритмов. Удачно проведенный модульный анализ в значительной степени влияет на полноту охвата предметной области, а также на возможность расширения класса решаемых задач. Таким образом, выделение модулей существенно зависит от специфики задач и используемых алгоритмов и, по сути дела, отражает принятый в пакет способ сборки программ.
       Наиболее распространено в настоящее время оформление каждого модуля в виде программной единицы на том или ином языке программирования. Такой модуль обеспечивает решение некоторой самостоятельной задачи и связан с другими модулями лишь входной и выходной информацией. Организация предметного обеспечения в виде библиотеки программ характерна для большинства существующих ППП.
       Помимо рассмотренного подхода к оформлению модулей как программных единиц используются и другие способы.
       Системное обеспечение представляет собой совокупность системных средств (программы, файлы, таблицы и т. д.), обеспечивающих определенную дисциплину работы пользователя при решении прикладных задач. По своей роли в составе ППП и выполняемым функциям системное обеспечение по существу является специализированной операционной системой, определяющей операционное окружение пакета. Несмотря на многообразие способов реализации системного обеспечения в рамках конкретных пакетных разработок, можно выделить его следующие основные компоненты:

    1. монитор, управляющий процессом решения и взаимодействием всех компонентов ППП;
    2. трансляторы с входных языков;
    3. средства работы с данными;
    4. средства информационного обеспечения, реализующие выдачу разнообразной справочной информации как по запросам пользователей (о структуре и возможностях ППП, о допущенных ошибках и т.д.), так и по запросам различных компонентов пакета (например, сведения о свойствах модулей предметного обеспечения, необходимые планировщику вычислений);
    5. различные служебные программы, в том числе реализующие взаимодействие пакета с операционной системой (работа с внешней памятью, средства ввода/вывода, драйверы специализированных, внешних устройств и др.).

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

    Этапы развития ППП

       Пакетная проблематика в качестве самостоятельного научно направления сложилась в основном за последние 15-20 лет. Первые ППП представляли собой простые тематические подборки программ для решения отдельных задач в той или иной прикладной области. Современный пакет является сложной программной системой, включающей специализированные системные и языковые средства. В относительно короткой истории развития вычислительных ППП можно выделить 4 основных поколения (класса) пакетов. Каждый из этих: классов характеризуется определенными особенностями входящих состав ППП компонентов - входных языков, предметного и системного обеспечения.
       В качестве входных языков ППП первого поколения использовались универсальные языки программирования (Фортран, Алгол-60 и т. п.) или языки управления заданиями соответствующих операционных систем Проблемная ориентация входных языков достигалась за счет соответствующей мнемоники в именах переменных, функций процедур, а также в текстовых константах. Составление заданий на таком языке практически не отличалось от написания программ на алгоритмическом языке.
       Предметное обеспечение первых ППП, как правило, было организовано в форме библиотек программ, т.е. в виде наборов (пакетов) независимых программ на некотором базовом языке программирования (отсюда впервые возник и сам термин "пакет"). Такие ППП иногда называют пакетами библиотечного типа, или пакетами простой структуры.
       В качестве системного обеспечения пакетов первого поколения обычно использовались штатные компоненты программного обеспечения ЭВМ: компиляторы с алгоритмических языков, редакторы текстов, средства организации библиотек программ, архивные системы и т. д.Эти пакеты не требовали сколько-нибудь развитой системной поддержки, и для их функционирования вполне хватало указанных системных средств общего назначения. В большинстве случаев разработчиками таких пакетов были прикладные программисты, которые пытались приспособить универсальные языки программирования к своим нуждам.
       Разработка ППП второго поколения осуществлялась уже с участием системных программистов. Это привело к появлению специализированных входных языков (их называют встроенными языками) на базе универсальных языков программирования. Проблемная ориентация таких языков достигалась не только за счет использования определенной мнемоники, но также применением соответствующих языковых конструкций, которые упрощали формулировку задачи и делали ее более наглядной. Транслятор с такого языка представлял собой препроцессор (чаще всего макропроцессор) к транслятору соответствующего алгоритмического языка.
       В качестве модулей в пакетах этого класса стали использоваться не только программные единицы (т.е. законченные программы на том или ином языке программирования), но и такие объекты, последовательность операторов языка программирования, совокупность данных, схема счета и др.
       Существенные изменения претерпели также принципы организации системного обеспечения ППП. В достаточно развитых пакетах второго поколения уже можно выделить элементы системного обеспечения, характерные для современных пакетов: монитор, трансляторы с входных языков, специализированные банки данных, средства описания модели предметной области и планирования вычислений и др.
       Третий этап развития ППП характеризуется появлением самостоятельных входных языков, ориентированных на пользователей-непрограммистов. Особое внимание в таких ППП уделяется системным компонентам обеспечивающим простоту и удобство. Это достигается главным образом за счет такой специализации входных языков и включения в состав пакета средств автоматизированного планирования вычислений. 
       Наконец, четвертый этап характеризуется созданием ППП, эксплуатируемых в диалоговом режиме работы. Основным преимуществом диалогового взаимодействия с ЭВМ является возможность активной обратной связи с пользователем в процессе постановки задачи, ее решения и анализа полученных результатов. Появление и интенсивное развитие различных форм диалогового общения обусловлено прежде всего прогрессом в области технических средств обеспечения диалога. Сюда относится создание разнообразной дисплейной техники (растровые дисплеи, средства реализации графических, цветовых и звуковых возможностей, различные технические устройства для ведения диалога и т. д.), а также надежных и скоростных линий связи. Развитие аппаратного обеспечения повлекло за собой создание разнообразных программных средств поддержки диалогового режима работы (диалоговые операционные системы, диалоговые пакеты программ различного назначения и т. д.). Во многих приложениях диалог уже полностью заменил пакетную обработку, а построчный режим диалога уступает место поэкранному режиму и многооконному графическому способу общения. 
       Прикладная система состоит из диалогового монитора-набора универсальных программ, обеспечивающих ведение диалога и обмен данными, и базы знаний об области. Информация о структуре, целях и форма диалога задает сценарий, в соответствии с который монитор управляет ходом диалога. Носителями процедурных знаний о предметной области являются прикладные модули, реализующие функции собственной системы. Таким образом, создание прикладной системы сводится к настройке диалогового монитора на конкретный диалог, путем заполнения базы знаний. При этом программировать в традиционном смысле этого слова приходится лишь прикладные модули, знания о диалоге вводятся в систему с помощью набора соответствующих средств - редактора сценариев. Логично требовать, чтобы редактор сценариев также представлял собой диалоговую программу, отвечавшую рассмотренным выше требованиям. Благодаря готовому универсальному монитору программист может сосредоточиться на решении чисто прикладных задач, выделение же знаний о диалоге в сценарий обеспечивает в значительной степени необходимая гибкость программного продукта.
       Большое внимание в настоящее время уделяется проблеме создания "интеллектуальных" ППП. Такой пакет позволяет конечному пользователю лишь сформулировать свою задачу в содержательных терминах, не указывая алгоритма ее решения. Синтез решения и сборка целевой программы производятся автоматически. При этом детали вычислений скрыты от пользователя, и компьютер становится интеллектуальным партнером человека, способным понимать его задачи. Предметное обеспечение подобного ППП представляет собой некоторую базу знаний, содержащую как, процедурные, так и описательные знания. Такой способ решения иногда называют концептуальным программированием, характерными особенностями которого является программирование в терминах предметной области использование ЭВМ уже на этапе постановки задач, автоматический синтез программ решения задачи, накопление знаний о решаемых задачах в базе знаний.    В заключение данного раздела рассмотрим еще одну современную тенденцию разработки ППП. Она заключается в применении специализированных инструментальных средств и систем, позволяющих ускорить и упростить процесс создания пакета, а также снизить стоимость разработки. При этом особое внимание уделяется созданию системных средств, позволяющих использовать в качестве предметного обеспечения ППП написанные ранее прикладные программы. Кроме того, инструментальные системы обычно реализуются таким образом, что их можно использовать в качестве базы (готовых компонентов) для системного обеспечения разрабатываемых пакетов (поэтому их иногда называют базовые инструментальными системами). Создание инструментальных средств, упрощающих разработку ППП в различных предметных областях, представляет собой одно из актуальных направлений системного программирования в пакетной проблематике.
       При выборе метода реализации того или иного ППП следует учитывать особенности конкретной ситуации, в частности, имеющиеся в наличии людские и материальные ресурсы. Так пакет библиотечного типа, не являясь развитой системой с точки зрения рассмотренных требований, обладает, однако, тем преимуществом, что входной язык и системное обеспечение такого пакета могут быть достаточно легко реализованы силами прикладного программиста. Поэтому в случае, когда подобный пакет удовлетворяет конкретных пользователей, его разработка является вполне оправданной.

http://izi.vlsu.ru/teach/books/906/theory.html

Категории: 

Метки: