Реферат: 1 понятие и классификация пакетов прикладных

СОДЕРЖАНИЕ

ВВЕДЕНИЕ……………………………………………………………….

5

1 ПОНЯТИЕ И КЛАССИФИКАЦИЯ ПАКЕТОВ ПРИКЛАДНЫХ

ПРОГРАММ……………………………………………………………

6

1.1 Определение ППП. Этапы развития ППП……………………

6

1.2 Классификация ППП……………………………………………..

9

1.2.1 ППП общего назначения……………………………………

9

1.2.2 Офисные ППП………………………………………………...

16

1.2.3 Проблемно-ориентированные ППП……………………….

19

1.2.4 ППП автоматизированного проектирования…………….

21

1.2.5 Методо-ориентированные ППП……………………………

21

1.2.6 Настольные издательские системы………………………

22

1.2.7 Программные средства мультимедиа……………………

23

1.2.8 Системы искусственного интеллекта……………………..

24

1.3 Информационные технологии программирования…………

25

2 МОДЕЛЬ ПРЕДМЕТНОЙ ОБЛАСТИ ППП………………………..

30

2.1 Составные части ППП. Оболочка ППП……………………….

30

2.2 Модель предметной области ППП…………………………….

34

2.2.1 Данные…………………………………………………………

35

2.2.2 Связи…………………………………………………………...

36

2.2.3 Вектор состояния модели предметной области………..

40

2.3 Пример построения модели предметной области ППП…...

42

3 ОСОБЕННОСТИ ПРОЕКТИРОВАНИЯ УПРАВЛЯЮЩИХ

МОДУЛЕЙ ППП………………………………………………………..

48

3.1 Функции управляющих модулей пакета………………………

48

3.2 Входной язык ППП……………………………………………….

49

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

языком командного типа………………………………………...

51

3.4 Планирование вычислительного процесса в ППП………….

54

4 ОСОБЕННОСТИ ПРОЕКТИРОВАНИЯ ОБСЛУЖИВАЮЩИХ МОДУЛЕЙ ППП………………………………………………………..

61

4.1 Функции обслуживающих модулей пакета…………………..

61

4.2. Интерфейс управления…………………………………………

62

4.3 Справочный интерфейс пользователя……………………….

67

4.4 Информационный интерфейс пользователя………………..

71

4.5 Интерфейс ввода-вывода………………………………………

74

4.6 Внешний интерфейс……………………………………………..

76

5 ПРОГРАММНАЯ ИНЖЕНЕРИЯ…………………………………….

78

5.1 Проблемы разработки ПО………………………………………

78

5.2 Жизненный цикл ПО……………………………………………..

82

5.2.1. Основные процессы ЖЦ ПО………………………………

82

5.2.2 Вспомогательные процессы ЖЦ ПО……………………...

89

5.2.3 Организационные процессы ЖЦ ПО……………………...

94

5.3 Модели жизненного цикла ПО………………………………….

98

6 СТАДИИ РАЗРАБОТКИ ППП……………………………………….

104

6.1 Виды работ и трудоемкости…………………………………….

104

6.2 Формирование требований к ППП…………………………….

105

6.3 Проектирование…………………………………………………..

108

6.4 Программирование………………………………………………

113

6.5 Тестирование……………………………………………………..

118

6.5.1 Определение и принципы тестирования…………………

118

6.5.2 Методы тестирования……………………………………….

122

6.5.3 Этапы тестирования…………………………………………

123

6.6 Документирование ППП…………………………………………

127

6.7 Эксплуатация и сопровождение ППП…………………………

129

7 КАЧЕСТВО ППП………………………………………………………

134

7.1 Характеристики качества программного изделия…………..

134

7.2 Основные понятия и показатели надежности

программных средств……………………………………………

137

7.3 Дефекты программных изделий……………………………….

140

7.4 Концепция качества Six Sigma…………………………………

143

7.5 Стандарты ISO 9000……………………………………………..

145

8 ОЦЕНКА ЗАТРАТ НА РАЗРАБОТКУ ППП………………………..

148

8.1 Экономическая эффективность ПИ…………………………...

148

8.2 Исследование затрат на разработку ППП…………………...

149

8.3 Составляющие затрат на эксплуатацию, влияющие на процесс разработки ППП………………………………………..

157

8.4 Составляющие затрат на сопровождение, влияющие на процесс разработки ППП………………………………………..

159

9 ППП ЭКОНОМИЧЕСКОЙ СФЕРЫ…………………………………

162

9.1 ERP-системы………………………………………………………

162

9.1.1 Зарубежные ERP-системы………………………………….

166

9.1.2 Отечественные ERP-системы……………………………...

176

9.2 Бухгалтерские ППП………………………………………………

191

9.3 ППП финансового планирования, анализа и контроля деятельности предприятия……………………………………...

193

9.3.1 Сравнительный анализ программ «Альт-Инвест» и «Project Expert»………………………………………………..

194

9.3.2 Программные продукты серии «Аналитик»……………...

201

КонтрольнАЯ работА……………………………………………..

206

Лабораторные работы…………………………………………..

212

ЛИТЕРАТУРА……………………………………………………………

214

ПРИЛОЖЕНИЕ. Пример технико-экономического обоснования проекта разработки программного продукта….

215

ВВЕДЕНИЕ

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

Производство ПО сегодня – крупнейшая отрасль мировой экономики, в которой занято около трех миллионов специалистов (программистов, разработчиков ПО и т.п.), причем, кроме непосредственной занятости в индустрии ПО (т.е. рабочих мест в области исследований, разработки, маркетинга, продаж) существует и косвенная занятость. К сфере косвенной занятости восходящего типа относятся рабочие места в производстве, которое обеспечивает все необходимое для оформления ПО как продукта (полиграфия, тиражирование, упаковка, логистика). Косвенная занятость нисходящего типа охватывает услуги, которые реализуются на стадии продвижения ПО (реселлинг, дистрибьюция, консультирование, тренинг, рекрутинг). Так что еще несколько миллионов человек напрямую зависят от благополучия корпоративных информационных подразделений, либо от производителей ПО, таких, как корпорации Microsoft, Oracle, SAP AG, Adobe и других рангом пониже.

Рынок ПО составляет пятую часть всего мирового рынка информационных технологий (табл.).

Таблица – Развитие рынка ИТ и ПО

Год

Рынок ИТ,

млрд. долл.

Рынок ПО, млрд. долл.

Доля ПО, %

1997

1999

2000

2003 (прогноз)

720,4

840

940

1200

115,3

155,4

183,3

268,8

16

18,5

19,5

22,4

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

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

1 ПОНЯТИЕ И КЛАССИФИКАЦИЯ ПАКЕТОВ ПРИКЛАДНЫХ ПРОГРАММ

1.1 Определение ППП. Этапы развития ППП

Прикладной называют программу для решения конкретной задачи пользователя. С развитием компьютерных технологий были выделены наборы взаимосвязанных задач, которые требовалось решать в интересах определенных групп пользователей. Естественно было объединить прикладные программы связанных задач в комплекс программ, разработать такой комплекс централизованно и поставлять его отдельным пользователям и заинтересованным организациям. С конца 60-х годов многофункциональные комплексы взаимосвязанных программ стали называть пакетами прикладных программ (ППП).

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

Вместе с тем концепция ППП, переход от отдельных программ к пакетам – это переход к новому качеству прикладного ПО.

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

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

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

Можно выделить несколько типовых подходов к организации применения ЭВМ для решения расчетных задач. Эти подходы, рассматриваемые в историческом плане, можно считать этапами развития ППП:

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.2 Классификация ППП

1.2.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 и др.) в сетевом варианте обработки данных хранят информацию на файл-сервере – специально выделенном компьютере в централизованном виде, но сама обработка данных ведется на рабочих станциях. Серверы баз данных, напротив, всю обработку (хранение, поиск, извлечение и передачу данных клиенту) данных выполняют самостоятельно, одновременно обеспечивая данными большое число пользователей сети.

Общим для различных видов серверов баз данных является использование реляционного языка для реализации запросов к данным.

Большинство серверов баз данных может использовать одновременно несколько платформ (Windows NT, Unix, OS/2 и др.) и поддерживать широкий спектр протоколов передачи данных (IPX, TCP/IP, X.25 и др.).

Некоторые серверы реализуют распределенное хранение информации в сети, поддерживают интерфейсы на уровне вызова типа:

· ODBC – Open DataBase Connectivity для доступа к разнородным базам данных;

· DAL – Data Access Language для создания запроса на выборку данных, распределенных в сети;

· SAG/CLI – SQL Access Group/ Call Level Interface для распределенных запросов и др.

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

Примеры: MS SQL Server, Oracle Internet Application Server, Watcom SQL Network Server, ZOPE – Z Object Publishing Environment (Digital Creations) (сервер Web – приложений).

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

Сервер отчетов подключается к серверу баз данных, используя все уровни передач и драйверы сервера баз данных. Серверы отчетов включают:

· программы планирования – учет времени для формирования отчетов по требованию пользователей, составление расписания выдачи и распространения отчетов по сети;

· программы управления очередью запросов на формирование отчетов;

· программы ведения словаря пользователей для разграничения доступа к сформированным отчетам;

· программы ведения архивов отчетов и др.

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

Примеры: Crystal Report (Seagate Software Company), Report Smith (Borland).

4. Текстовые процессоры (текстовые редакторы) – пакеты прикладных программ для подготовки текстовых документов; предоставляют возможности автоматического форматирования документов, вставки рисованных объектов, графики, формул, составления оглавлений и указателей, проверки орфографии, шрифтового оформления, подготовки шаблонов документов и т.п.

Примеры: MS Word , Corel Word Perfect , ChiWriter (American Cybernetics), ЛЕКСИКОН (Е. Веселов, затем компания Арсеналъ).

Развитием данного направления программных продуктов являются настольные издательские системы.

5. Табличные процессоры (электронные таблицы ) – предназначены для хранения данных в двумерной табличной форме и работы с этими данными: вычисления по формулам, в т.ч. с использованием встроенных формул; решение различных задач оптимизации, статистическая обработка данных, построение диаграмм и графиков, создание простых баз данных и т.д.

Примеры: MS Excel, Lotus 1-2-3 (Lotus Development), Quattro Pro (Novell), SuperCalc (Computer Associates).

6. Графические редакторы – предназначены для обработки графических документов, включая иллюстрации, фотографии, диаграммы, чертежи, схемы.

Примеры: MS Paint , MS PhotoDraw , PhotoLine (ComputerInsel GmbH), Paint Shop Pro (JASС Inc.), Adobe Photoshop , Adobe PhotoPaint ,растровые графические редакторы, предназначенные для формирования различных цветных, в т.ч. многослойных, изображений, импорта изображений со сканеров и цифровых фотоаппаратов; поддерживают различные графические форматы, обеспечивают возможность цветовыделения, конверсии RGB/CMYK, фильтрации, использования различных спецэффектов. К векторным графическим редакторам относятся Adobe Illustrator , Corel Draw , Macromedia Freehand, 3D Studio Max (AutoDesk) [1] .

Также можно отметить редакторы VISIO Pro (VISIO International), SmartDraw (SmartDraw Software Inc.), предназначенные для создания всевозможных логических, электронных, теплотехнических и иных схем и организационных диаграмм, деловой и технической графики, а также дизайна интерьеров.

7. Средства презентационной графики – специализированные программы, предназначенные для подготовки мультимедиа-презентаций (слайд-фильмов), состоящих из нескольких слайдов, на которых размещаются рисунки, таблицы, графики, диаграммы, текстовая информация. Их показ может сопровождаться звуковыми эффектами, анимацией и помогает докладчику нагляднее донести свои мысли до аудитории. Кроме того, с помощью этих программ можно готовить 35-мм слайды, «прозрачки», Web-страницы для размещения в сети Интернет.

Для работы этих программ необходимы также наличие специализированного оборудования, например, жидкокристаллической проекционной панели LCD (Liquid Crystal Desktop) для получения крупного изображения.

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

Примеры: MS Power Point, Adobe Persuasion, Lotus Freelance Graphics, Gold Disk Astound, Novell Presentations, Super Show & Tell (Midsoft), Harvard Graphics (SPC).

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

Наиболее распространены интегрированные пакеты, компонентами которых являются:

· СУБД;

· текстовый редактор;

· табличный процессор;

· органайзер;

· средства поддержки электронной почты;

· программы создания презентаций;

· графический редактор.

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

Отличительными особенностями данного класса программных средств являются:

· полнота информационных технологий для конечных пользователей;

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

· общий сервис для программ интегрированного пакета (например, словарь и средства орфографии для проверки правописания, построитель диаграмм, конверт данных и др.);

· легкость обмена и ссылок на объекты, созданные программами интегрированного пакета (применяется два метода: DDE – динамический обмен данными и OLE – динамическая компоновка объектами), единообразный перенос объектов (метод drag-and-drop);

· наличие единой языковой платформы для разработки макрокоманд, пользовательских программ (Visual Basic for Applications компании Microsoft; PerfectScript фирмы Corel, LotusScript фирмы Lotus);

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

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

Примеры: MS Office, MS Works, MS Suite 2000 (все – Microsoft), Lotus Smartsuite (Lotus), Perfect Office (Novell), Star Office (Sun Microsystems), Claris Works (Claris Inc.).

Что, например, включает в себя MS Office 2000 Pro? Кроме хорошо известных приложений Word , Excel , PowerPoint , Access , Outlook в него входит целый ряд новых приложений: Publisher (создание полиграфических макетов изданий самого различного характера: красочных проспектов, рекламных брошюр, листовок, бюллетеней и т.п.), PhotoDraw (графический редактор с коллекцией 20000 картинок и фотографий), FrontPage (создание Web-узла, публикация и сопровождение файлов на Web-сервере), «Диспетчер контактов малого бизнеса » (нечто среднее между базой данных Access и приложением Outlook; предназначен для ведения ежедневного делового учета по каждому клиенту), браузер Internet Explorer 5.0 .

1.2.2 Офисные ППП

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

Рассмотренные выше в разделе «Общие» интегрированные пакеты прикладных программ можно отнести и к классу офисных ППП.

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

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

Примеры: Lotus Organizer, PrimaSoft Address Organizer, MS Money, MS Outlook, MS Schedule+, Daily Journal ( FormalSoft Inc.), Day-Timer Organizer ( Day-Timer Inc.), Any Time ( Individual Software Inc.) и многие другие.

2. Программы-переводчики, средства проверки орфографии и распознавания текста включают:

· программы — переводчики, предназначенные для создания подстрочника исходного текста на указанном языке;

· словари орфографии, используемые при проверке текстов;

· словари синонимов, используемые для стилевой правки текстов;

· программы для распознавания считанной сканерами информации и преобразования в текстовое представление (OCR –программы[2] ).

Примеры.

1). Профессиональная система перевода текстов PROMT (ранее Stylus) компании ПРОМТ. Она предоставляет все необходимые инструменты для работы по переводу, встраивает функции перевода в MS Office. Обширные коллекции специализированных словарей, разработанные компанией ПРОМТ, и возможность пополнения словарной базы пользователем в процессе работы позволяют получить качественный перевод текстов практически любой тематики с английского, немецкого, французского, итальянского языков на русский и наоборот. PROMT99 включает браузер WebView с функцией перевода Web – страниц и специальное приложение для пакетного перевода документов File Translator. Последняя версия называется PROMT Translation Office.

Также популярны и другие продукты этой компании: Magic Good d y (домашний мультимедийный переводчик), Stylus Help Reader (переводчик Help – файлов, непосредственно встраивающийся в Справку).

2). Коллекция профессиональных электронных словарей европейских языков МультиЛекс, система смыслового поиска текстовых документов Следопыт, программа автоматического аннотирования текстов (выделение ключевых слов) Либретто, программа автоматического составления деловых писем и документов Письмовник, сервер автоматической классификации документов по заранее определенным рубрикам Классификатор (все – компании МедиаЛингва).

3). Система оптического распознавания текста FineReade r (ABBYY Software House, ранее – BIT Software). Основные этапы работы программы: непосредственно сканирование, сегментирование (разбивка на блоки), распознавание текста, проверка орфографии, передача результата (текста, картинки и т.д.) в приложения. Последняя версия FineReader 5.0 умеет распознавать 176 языков, штрих-коды, многоколоночный текст с картинками и таблицами с сохранением оформления документа, проводить пакетную обработку документов и распределенную обработку пакетов в сети. Результаты распознавания сохраняются в форматах HTML, PDF, RTF, DOC, XLS, DBF, CSV, TXT. Специально для автоматизированного ввода платежных документов юридических лиц с помощью сканера в информационные системы разработана программа FineReader Банк. Она избавляет оператора от рутинной работы по ручному вводу информации и позволяет в 3...10 раз увеличивать скорость ввода платежных документов.

Основной конкурент этой системы на российском рынке — ППП CuneiForm (Cognitive Technologies) .

4). Система электронных словарей ABBYY Lingvo (ABBYY Software House). Осуществляет перевод слов и словосочетаний с экрана и клавиатуры с массой вариантов и перекрестных ссылок. В последних версиях есть голосовые возможности.

5). Система проверки орфографии и грамматики ОРФО (Информатик). Осуществляет проверку текстов на основных европейских языках в MS Office. Пакет встроен в русскоязычный MS Word.

6). «Русский офис» (Арсеналъ) – серия программных продуктов, предназначенных для создания единой рабочей среды на компьютере как дома, так и в офисе. В эту серию входит продукция как собственного производства, так и лицензионные ППП. В настоящее время в состав «Русского офиса» входят следующие ППП:

Лексикон – национальный текстовый редактор; Лексикон- XL – текстовый редактор и процессор электронных таблиц; Сократ – система автоматизированного перевода небольших фрагментов текста и отдельных слов; Дела в порядке – система структурированного хранения и работы с разноформатными документами; Декарт – система финансового контроля и учета; Диско Командир –файловый менеджер для работы в среде Windows; Диско Качалка – российский off-line браузер; Реаниматор – восстановление текста сообщений, искаженных при передаче по электронной почте; Хамелеон – русификатор операционной системы; Три-О-Граф – коллекция True Type – шрифтов; Picture Man – группа программ обработки изображений.

3. Справочные базы данных и информационно-поисковые системы.

Примеры.

1). Информационно-справочная система Консультант Плюс. Состоит из блоков: федеральное законодательство; региональное законодательство; международное право; бухучет, налогообложение, финансы и кредит; судебная практика; медицина и фармацевтика; деловая документация. Эти блоки ежемесячно пополняются.

2). Правовая система ГАРАНТ. Состоит из пяти блоков правовой информации (нормативные акты, международные договоры, судебная и арбитражная практика, комментарии к законодательству, проекты законов) и три блока экономической информации (бизнес-справки, формы документов и налоговый календарь).

3). Банк правовой и экономической информации Кодекс (правовые акты федерального законодательства и законодательства регионов России, собрание судебной и арбитражной практики, документы международного права, примерные формы правовых и деловых документов, комментарии, статьи, консультации юристов и аудиторов, словари юридических и бухгалтерских терминов, электронные версии печатных изданий).

4). Продукция АСУ «Импульс»: банки и базы данных «Производители товаров и услуг», «Промышленность России и ближнего зарубежья», «Продукция предприятий России» (ежегодные издания с адресами предприятий России и ближнего зарубежья, их продукции, номенклатуры экспорта-импорта и т.п.).

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

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

Примеры: MS Internet Explorer, Netscape Navigator ( Netscape Communication), Opera ( Opera Software) .

Электронная почта также становится обязательным компонентом офисных ППП. Наиболее широко распространенные ППП электронной почты: MS Outlook ; MS Outlook Express ; MS Exchange ; GroupWise ( Novell); The Bat ! ( RITLabs); Eudora Pro ( Qualcomm); Netscape Messenger; dMail ( DEMOS) и др.

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

1.2.3 Проблемно-ориентированные ППП

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

· типам предметных областей;

· информационным системам;

· функциям и комплексам задач, реализуемым программным способом, и др.

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

· ППП комплексного автоматизированного бухгалтерского учета (1С: Бухгалтерия, ИнфоБухгалтер (Информатик), Инотек-Бухгалтер (Инотек НТ), БЭСТ (Интеллект-Сервис));

· ППП анализа финансового состояния предприятия (Аналитик (ИНЭК), БЭСТ-Ф (Интеллект-Сервис), 1С: АФС );

· ППП управления персоналом (кадровый и табельный учет) (АиТ – Управление персоналом; 1С: Зарплата и Кадры );

· ППП складского учета и управления материальными запасами (1С: Торговля и Склад; Материалы без проблем (Софт-Мастер); ФОЛИО Win Склад );

· ППП комплексной автоматизации управления различными предприятиями (БОСС (АйТи), АККОРД (АТЛАНТинформ), ГАЛАКТИКА, 1С: Предприятие, Инфин-Управление (ИНФИН)).

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

· создание программных комплексов в виде автоматизированных рабочих мест (АРМ) управленческого персонала;

· создание интегрированных систем управления предметной областью на базе вычислительных сетей, объединяющих АРМы в единый программный комплекс с архитектурой клиент-сервер;

· организация данных больших информационных систем в виде распределенной базы данных на сети ЭВМ;

· наличие простых языковых средств конечного пользователя для запросов к базе данных;

· настройка функций обработки силами конечных пользователей (без участия программистов);

· защита программ и данных от несанкционированного доступа (парольная защита на уровне функций, режимов работы, данных).

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

Наиболее важно для данного класса программных продуктов создание дружественного интерфейса для конечных пользователей.

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

1.2.4 ППП автоматизированного проектирования

Программы этого класса (Computer Aided Design, CAD – программы) предназначены для поддержания работы конструкторов и технологов, связанных с разработкой чертежей, схем (в том числе печатных), диаграмм, графическим моделированием и конструированием.

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

Примеры: AutoCAD , AutoDesk WorkCentre ( обе — AutoDesk); Arena ( AutoVision), Electronic Workbench (Interactive Image Technlogies), КОМПАС-5 (АО «Аскон»), КРЕДО (ОАО «НИЦ АСК»), T - FLEX CAD («ТопСистемы»), Free Style Router (TOO «Диал») .

1.2.5 Методо-ориентированные ППП

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

Наиболее распространены методы математического программирования, имитационного моделирования, исследования операций.

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

Примеры: MathLab ( MathWorks Inc.); MathCad ( MathSoft Inc.); Mathematica ( Wolfram Research); Statistica ( StatSoft), Statgraphics Plus ( Manugistics).

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

Примеры: MS Project; TimeLine ( Symantec), Project Manager ( SoftKey Multimedia Inc.), Project Expert ( Pro Invest Consulting).

1.2.6 Настольные издательские системы

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

· форматирование и редактирование текстов;

· автоматическую разбивку текста на страницы;

· создание заголовков;

· компьютерную верстку печатной страницы;

· монтирование графики и многостраничных цветных иллюстраций и т.п.

Примеры: Corel Ventura, Adobe PageMaker, MS Publisher, Quark Xpress.

1.2.7 Программные средства мультимедиа

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

Основное назначение программных продуктов мультимедиа – создание и использование аудио- и видеоинформации для расширения информационного пространства пользователя.

Их можно разбить на два класса.

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

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

1) языковые обучающие курсы (серии Gold, Platinum): English Gold , Italiano d Oro и т.п.;

2) комплексные обучающие мультимедийные курсы (серия Teach Pro): Teach Pro Word, Teach Pro Windows и т.п.

Компания «Кирилл и Мефодий» выпускает Большую энциклопедию Кирилла и Мефодия. Версия 2001 года – на 8 (!) дисках.

Компании «Акелла», БУКА, 1С: Мультимедиа производят игровые программы, обучающие программы для детей, локализуют игры зарубежных компаний.

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

Примеры: MS Windows MediaPlayer, QuickTime Pro (Apple Computer Inc.), Adobe Systems Premiere, MGI Software VideoWave, Pinnacle Systems Studio DV, Ulead Video Studio.

Например, мультимедийная технология QuickTime Pro 5 обладает следующими возможностями:

· воспроизведение аудио- и видеоданных;

· просмотр неподвижных изображений;

· просмотр потоковых данных;

· создание, редактирование, сохранение и экспорт видео, аудио и графики;

· сжатие видео- и аудиоданных с помощью новейших кодеков;

· создание слайд-шоу;

· конвертирование графических изображений в различные форматы;

· воспроизведение видеороликов в полноэкранном режиме;

· позволяет использовать MIDI-инструменты для редактирования и синтеза звука;

· просмотр мультимедиа-данных с Web-страниц и сохранение этих данных в формате ролика QuickTime и многое другое.

1.2.8 Системы искусственного интеллекта

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

· программы-оболочки для создания экспертных систем путем наполнения баз знаний и правил логического вывода;

· готовые экспертные системы для принятия решений в рамках определенных предметных областей;

· системы управления базами знаний для поддержания семантических моделей;

· системы анализа и распознавания речи и др.

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

· диалоговый процессор на естественном языке;

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

· монитор, осуществляющий управление компонентами интерфейса.

Работа пользователя заключается в подготовке максимального числа примеров, включающих в себя совокупность входных данных и соответствующих им ответов. В процессе обучения ИИС оптимизирует свою внутреннюю структуру, чтобы добиться наилучшего совпадения с введенными данными и рассчитать выходы.

Примеры: нейросетевой пакет BrainMaker (California Scientific Software); на основе введенных данных он проводит анализ цикличности, анализ корреляции данных, анализ чувствительности процесса и т.п.; используется для прогнозов биржевых и рыночных тенденций, прогнозов финансовых показателей, оценки кредитных и проектных рисков, прогнозирования фьючерсов, анализа рынков ценных бумаг; ППП SIMER (Институт программных систем РАН) – предназначен для создания моделей (баз знаний) в плохо структурированных областях (медицинская диагностика, юриспруденция, военное дело, социология, демография).

1.3 Информационные технологии программирования

В этот класс программного обеспечения входят программы и программные комплексы, обеспечивающие технологию разработки, отладки и внедрения создаваемых программных продуктов («программы для программ») – как относящихся к системному ПО, так и к прикладному.

Можно (с достаточной степенью условности) выделить два направления развития информационных технологий программирования (рис. 1.2):

· средства для создания программных приложений (RAD – Rapid Application Development), работающих в различных операционных системах (системы программирования и инструментальные среды разработки на базе различных языков программирования);


· средства компьютерной поддержки разработки программного обеспечения и автоматизации создания сложных информационных систем (Computer Aided Software Engineering, CASE- технологии).

Системы программирования включают в себя:

· компилятор или интерпретатор языка программирования;

· отладчик и средства оптимизации кода программ;

· набор стандартных библиотек;

· редактор связей;

· справочные системы.

Примеры: Turbo Pascal, Borland Pascal (Borland), MS Visual Basic, MS Visual C++, Visual Fortran (сначала Microsoft, затем DIGITAL).

Инструментальные интегрированные среды разработки ( IDE Integrated Development Environment ) объединяют единым графическим интерфейсом набор средств коллективной разработки программ для комплексного их применения на всех технологических этапах создания программы. Основное назначение – повышение производительности труда программистов, автоматизация создания кодов программ, разработка приложений для архитектуры клиент-сервер, запросов и отчетов. Они обладают широкой функциональностью, совместимы со многими распространенными платформами и стандартами программирования.

Примеры: Oracle JDeveloper, Jbuilder 3 Enterprise (Borland), VisualAge for Java (IBM), VisualCafe for Java (Symantec), Forte for Java (Sun Microsystems), Kawa (Tec-Tools) – все на основе языка объектно-ориентированного программирования Java, Delphi (Borland) – на основе Object Pascal, C ++ Builder (Borland) – на основе С++, MS Developer Studio .

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

CASE – технологии выделяют логические процессы преобразования информации, определяют группы элементов данных и их хранилища (базы данных), предоставляют специальные графические средства для изображения различного типа моделей, используемых при описании сложной системы: диаграмму потоков данных (DFD – Data Flow Diagrams), устанавливающую связь источников информации с потребителями, диаграмму «сущность–связь» (ERD – Entity Relationship Diagrams), являющуюся информационной моделью рассматриваемой предметной области и другие виды диаграмм.

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

Примеры: ProKit Workbench (McDonnell Douglas Information Systems), Design/IDEF (MetaSoftware), СА S ЕАналитик («Эйтекс»), ERwin, BPwin (LogicWorks), Silverrun (Silverrun Technologies), Oracle Designer, Rational Enterprise Suite 2000 (Rational Software).

В заключение отметим, что современные CASE-системы — это средства разработки не только программных систем, но и организационно-управляющих систем, т.е. эту аббревиатуру можно расшифровать и как Computer Aided System Engineering. В рассматриваемом контексте CASE-технология фактически представляет собой совокупность методологий проектирования, моделирования, анализа и реорганизации бизнес-процессов (BPR – Business Process Reengineering, реинжиниринг бизнес-процессов) предприятий, поддержанную комплексом взаимоувязанных средств автоматизации.

В состав бизнес-модели должны входить следующие базовые компоненты:

· бизнес-функции, описывающие ЧТО делает бизнес;

· бизнес-процессы, описывающие КАК предприятие выполняет свои бизнес-функции;

· организационная структура, определяющая ГДЕ исполняются бизнес-функции и бизнес-процессы;

· роли, определяющие КТО исполняет бизнес-процессы;

· фазы, определяющие КОГДА (в какой последовательности) должны быть внедрены те или иные бизнес-функции;

· правила, определяющие связь между ЧТО, КАК, ГДЕ, КОГДА и КТО (рис. 1.3).

.

Для бизнес-аналитиков CASE – это инструментарий, заменяющий им бумагу и карандаш на компьютер для автоматизации анализа и проектирования бизнес-процессов.

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

Примеры таких технологий: BFS (Business Framework System), BPR-Tools, Workflow- BPR (IBM).

В заключение приведем список лучших программных продуктов 2001 года на российском информационном рынке (версия редакции журнала «Мир ПК»)[4] :

· операционные системы – MS Windows 2000 ;

· интегрированные пакеты прикладных программ – MS Office 2000 Pro ;

· Web-браузеры: MS Internet Explorer 5. х ;

· личные информационные системы (в т.ч. почтовые программы): MS Outlook 2000 ;

· корпоративные СУБД и серверы баз данных: MS SQL Server 7.х ;

· редакторы растровой графики: Adobe Photoshop 6.0;

· редакторы векторной графики: Corel Draw 10;

· издательские системы: Adobe PageMaker 6.5 ;

· OCR – системы: ABBYY FineReader 5.0 Pro ;

· бухгалтерские программы: 1С: Бухгалтерия 7.7 ;

· информационно-справочные системы: КонсультантПлюс ;

· системы управления предприятием – «Парус 8.3» ;

· средства разработки: Delphi 5.х ;

· образовательные ПО: Большая энциклопедия Кирилла и Мефодия 2001 ;

· электронные словари: ABBYY Lingvo 7 ;

· антивирусы – «Антивирус Касперского» ( AVP ) .

Контрольные вопросы

1. Опишите структуру программного обеспечения в составе персонального компьютера.

2. Охарактеризуйте этапы развития прикладного программного обеспечения.

3. Дайте определение пакетам прикладных программ как части прикладного ПО.

4. Какие пакеты прикладных программ используете вы в своей производственной и личной деятельности (приведите примеры с указанием фирм-разработчиков, версий ППП и объема, занимаемого на диске при инсталляции)?

2 МОДЕЛЬ ПРЕДМЕТНОЙ ОБЛАСТИ ППП

2.1 Составные части ППП. Оболочка ППП

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

Для реализации выбранных пользователем конкретных действий пакет должен воспринимать от пользователя управляющую информацию. Эта управляющая информация представляется на формальном языке – входном языке пакета. Описание конкретного задания пользователя на входном языке пакета называют программой на входном языке (ПВЯ) .

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

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

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

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

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


Рис. 2.1 — Составные части ППП

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

— управляющие программы – мониторы для вызова модулей и библиотечных подпрограмм;

— языковые процессоры для перевода формулировки прикладной задачи на язык программирования;

— архивные подсистемы;

— специализированные базы данных;

— средства диалогового взаимодействия с пользователем и т.д.

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

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

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

Пример. Фирма «1С» начала свою деятельность на рынке программных средств с продвижения своего программного продукта 1С: Бухгалтерия. Продукт получился весьма универсальный (разработчики подчеркивают, что ни одна из множества поправок к действующему законодательству не привела к необходимости вносить коренные изменения в исполняемый код). Но при ее разработке была применена бухгалтерская модель учета, что наложило ограничение на использование программы для автоматизации других сторон деятельности предприятия (оперативный учет, управление ресурсами).

Поэтому было принято решение о создании интегрированной информационной системы «1С: Предприятие», используя понятие оболочки пакета. Разработчики компании назвали ее «платформаV7».

Пакет состоит из трех уровней (рис. 2.3).

Уровень первый – технологический. На этом уровне находятся общие компоненты, используемые каждой из прикладных подсистем.

Уровень третий – конкретная конфигурация пакета.

Уровень второй определяет предметную направленность программного продукта и состоит из трех областей.

В этих областях «время течет по-разному»:

· оперативный учет – управление хозяйственными операциями в реальном времени; здесь необходима строгая хронология (учет оборотов, остатков);

· бухгалтерский учет – отражение хозяйственной деятельности (план счетов, ввод операций и проводок, расчет бухгалтерских итогов); документы можно вводить и обрабатывать без строгого соблюдения физической хронологии, например, для правильного расчета итогов за период необходимо только, чтобы все документы, относящиеся к этому периоду, были проведены;

· расчет – выполнение сложных периодических расчетов по специальным алгоритмам; основа – журнал расчетов, определяющий вид объектов, по которым ведется расчет (зарплата, себестоимость, дивиденды, налоги и т.п.).

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

Уровень конфигурации

1С: Бухгалтерия

1С: Зарплата и Кадры

1С: Торговля и Склад

1С: Платежные поручения

1С: Налогоплательщик

1С: Основные средства

1С: Статотчетность

1С: АФС

Прикладные компоненты

1С: Предприятие

Оперативный учет

Расчет

Бухгалтерский учет

Технологическая платформа

Конфигуратор

V7

Отладчик

Встроенный программный язык

Встроенный редактор диалоговых форм

Встроенный редактор таблиц

Встроенный текстовый редактор

Система управления базой данных

Механизм запросов

Рис. 2.3 — Системное и функциональное наполнение

ППП «1С: Предприятие»

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

Пакетный режим удобен, когда:

а) требуется решать много однотипных задач с использованием одной и той же программы на входном языке;

б) время, затрачиваемое на решение каждой задачи, достаточно велико;

в) программа на входном языке сложна и имеет значительный объем.

Диалоговый режим работы. Большинство ППП, применяемых на персональных ЭВМ, ориентировано на диалоговое взаимодействие с пользователем в ходе решения задач.

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

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

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

2.2 Модель предметной области ППП

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

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

Под математической моделью обычно понимают совокупность некоторых объектов (переменных) и связей (отношений) между этими объектами.

Модель предметной области (МПО) ППП можно представить совокупностью данных (переменных), используемых в пакете при решении задач, и связей между этими данными [2].

2.2.1 Данные

Данное (переменная) как часть модели предметной области характеризуется содержательным названием, отображающим его роль в предметной области. Такое название определяется в содержательных терминах предметной области, привычных для пользователя, например «Валовая продукция отрасли», «Цена изделия», «Коэффициент прямых затрат».

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

В процессе вычислений данное получает значение, которое может использоваться для получения значений других данных.

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

Множество данных X можно представить как объединение непересекающихся подмножеств, содержащих однотипные данные:

.

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

Количество допустимых типов данных и сам перечень типов являются важными характеристиками модели предметной области и всего пакета.

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

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

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

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

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

Работа пакета (решение задач пользователя) в модели предметной области представляется изменением значений данных. В начале работы пакета должны быть установлены (приняты по умолчанию, заданы или введены пользователем) значения некоторых данных, значения остальных данных являются неопределенными. Затем в соответствии с требованиями пользователя выполняются некоторые обрабатывающие модули, в результате чего некоторые не определенные ранее данные получают значения (или меняются уже присвоенные значения).

Таким образом, данные могут получать новые значения только двумя способами: либо в результате ввода пользователем нового значения, либо в результате выполнения обрабатывающего модуля.

2.2.2 Связи

Совокупность данных в модели предметной области, как уже отмечалось, представляет информационную базу пакета. Данные в информационной базе связаны между собой, т.е. образуют некоторую структуру данных. Характер этих связей определяется при разработке информационной базы пакета и обычно не изменяется в процессе функционирования пакета. Будем называть такие связи связями по определению. Таким образом, связи по определению – это связи, устанавливаемые в информационной базе при построении модели предметной области пакета .

Один из типов таких связей, например, образование иерархических структур данных. Связи такого типа известны из изучения языков программирования (запись в Паскале, структура в Си) и представляют собой совокупность данных, возможно разных типов. Такая связь имеет характер «целое – часть» или «состоит из...».

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

Например, если в модели имеются целое данное n и массивы x и y, размеры которых зависят от n, то можно считать, что x и y подчинены n. Действительно, если значение n не определено, то x и y также имеют неопределенные значения. Если изменяется n, например увеличивается, то значения x и y становятся неопределенными. В то же время изменение любого из массивов x или y, или их отдельных элементов не влияет на размеры массивов и, следовательно, на значение n. В некоторых случаях ограничения на область определения данного удобнее рассматривать не как свойство типа данного, а как связь по определению. Например, если некоторая матрица:

(2.1)

должна состоять из элементов:

, (2.2)

а каждая строка матрицы должна удовлетворять условию:

или (i = 1...n ), (2.3)

то ограничение (2.2) можно отнести к свойству базового типа, из которого построена матрица А, а условия (2.3) можно рассматривать как связь по определению между элементами матрицы.

Связи типа подчинения, задаваемые уравнениями или неравенствами, можно представить в модели в форме предикатов, т.е. функций, аргументами которых являются имена (значения) данных, а возвращаемыми значениями – «истина» или «ложь» [5].

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

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

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

Отдельный обрабатывающий модуль можно рассматривать как функцию . Здесь – набор входных данных модуля; – набор выходных данных, т.е. и есть некоторые подмножества множества .

В зависимости от состава набора данных и набора выходных данных можно различать функциональные связи, не изменяющие значений своих входных данных (), и связи, изменяющие значения всех или части входных данных ().

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

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

Таким образом, функциональная связь в модели предметной области представляется:

· набором входных данных;

· набором выходных данных;

· обрабатывающим модулем (именем модуля), реализующим эту связь.

Назовем функциональную связь реализуемой (а соответствующий обрабатывающий модуль выполнимым), если известны значения входных данных, т.е. среди элементов y нет данных с неопределенными значениями, и совокупность значений х удовлетворяет связям по определению.

Условие реализуемости функциональной связи можно формально определить как предикат , который принимает значение «истина», если связь реализуема, и значение «ложь», если связь не реализуема.

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

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

МПО = {X, R, F },

где X – множество данных; R – множество связей по определению; F – множество функциональных связей.

Если в процессе выполнения пакета множества X, R и F остаются неизменными (меняются только значения данных), то такую модель предметной области можно назвать статической, a соответствующий ей ППП – пакетом со статической моделью предметной области. Если пользователь имеет возможность в сеансе работы с пакетом изменять хотя бы одно из множеств X, R или F, включая или удаляя из них некоторые элементы, модель предметной области будем называть динамической. Например, если в ППП предусмотрены возможность определения новых данных, включение в расчеты новых формул с построением новых обрабатывающих модулей, то такой пакет соответствует динамической модели предметной области.

2.2.3 Вектор состояния модели предметной области

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

(2.4)

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

Таким образом, функционирование пакета отображается на модели предметной области изменением вектора состояния модели. Если в начале работы с пакетом пользователь установил значения некоторых данных и модель оказалась в состоянии , то при выполнении обрабатывающих модулей модель будет последовательно проходить состояния . В модели предметной области, содержащей данных (переменных), возможны 2n различных состояний. В действительности, из-за наличия связей по определению и функциональных связей, число реально осуществимых состояний будет значительно меньшим.

Возможные состояния модели и связи между ними могут быть представлены графом переходов, узлы которого соответствуют состояниям модели, а дуги – выполняемым модулям пакета.

Пример. Пусть модель включает данные с именами a, b и c, связи по определению отсутствуют, а функциональные связи определяются четырьмя обрабатывающими модулями , которые задают функциональные зависимости:

1) ; 2) ; 3) ; 4) .

Возможны восемь состояний (23 = 8) модели предметной области. Соответствующий этой модели граф возможных состояний показан на рис. 2.2.

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


В рассматриваемой модели данное может быть только входным, его значение не может быть вычислено имеющимися обрабатывающими модулями. Узлу 1 соответствует состояние, в котором значения всех данных не определены. Из этого узла не выходит ни одна дуга. Такие изолированные узлы, из которых не выходит ни одна дуга, могут быть исключены из рассмотрения. Узлы 5 и 8 являются конечными – в них нет исходящих дуг.

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

В общем случае переходу из начального состояния S 0в некоторое состояние Sk может соответствовать несколько путей на графе переходов. Множество функциональных связей должно быть выбрано так, чтобы при любом начальном состоянии S 0и фиксированных значениях известных данных переход в любое другое состояние Sk по любому из возможных путей приводил бы к вычислению одних и тех же значений данных. Отметим, что при решении вычислительных задач понятие «одно и то же значение» требует уточнения: значения, вычисленные по разным путям, должны различаться не более чем на некоторое фиксированное число , характеризующее допустимую погрешность вычислений. Это требование можно рассматривать как требование непротиворечивости функциональных связей.

2.3 Пример построения модели предметной области ППП

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

Общая постановка задачи состоит в следующем.

Имеется отраслей производства, в каждой из которых производится один вид продукта, и всего производится видов продуктов по неизменным технологиям.

Обозначим – валовой выпуск продукта -й отрасли. Этот продукт частично используется для производства продуктов другими отраслями (Xij ), частично потребляется в самой -й отрасли (Xii ), частично покидает рассматриваемую экономическую систему (передается в сферу потребления, на экспорт и т.п.) (yi ), что отражается системой уравнений

. (2.5)

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

. (2.6)

Коэффициенты пропорциональности называютсякоэффициентами прямых затрат:

. (2.7)

Подставляя (2.6) в (2.5), получим систему балансовых уравнений Леонтьева:

, (2.8)

связывающую объемы валовой и конечной продукции отраслей.

Для нахождения конечного продукта yi уравнение (2.8) перепишем в виде:

; (2.9)

а для нахождения валовой продукции каждой отрасли используем векторно-матричную форму , где – единичная матрица, откуда:

. (2.10)

Матрица:

(2.11)

— называется матрицей коэффициентов полных затрат; ее коэффициенты с ij показывают, сколько всего нужно произвести продукции i -ой отрасли для выпуска в сферу конечного использования единицы продукции j -ой отрасли.

Если обозначить – затраты труда в i -й отрасли для валового выпуска , то можно вычислить коэффициенты затрат труда на единицу продукции в отрасли :

. (2.12)

Аналогично если – затраты фондов в i -й отрасли, то:

, (2.13)

где – коэффициенты затрат фондов на единицу продукции в отраслях .

Можно также вычислить коэффициенты полных затрат труда или фондов на единицу конечной продукции i -го вида:

, (2.14)

, (2.15)

и общие затраты труда и фондов по формулам:

, (2.16)

, (2.17)

или по формулам:

, (2.18)

, (2.19)

, (2.20)

, (2.21)

Определим множество данных в модели предметной области (информационную базу пакета). Для этого составляем таблицу данных 2.1, где указываем их атрибуты: содержательное название, имя данного и его тип.

Таблица 2.1 — Таблица данных (элементы множества данных)

Содержательное

название данного

Имя

данного

Тип данного

1. Число отраслей

n

Целое, скалярное

2. Межотраслевые потоки

X

Матрица n ´n вещественная

3. Валовая продукция отраслей

Z

Вектор из n вещественных элементов

4. Конечная продукция отраслей

Y

-«-»-

5. Коэффициент прямых затрат

A

Матрица n ´n вещественная

6. Коэффициенты полных затрат

C

-«-»-

7. Отраслевые затраты труда

V

Вектор из n вещественных элементов

8. Отраслевые затраты фондов

H

-«-»-

9. Коэффициенты затрат труда

B

-«-»-

10. Коэффициенты затрат фондов

D

-«-»-

11. Коэффициенты полных затрат труда

BP

-«-»-

12. Коэффициенты полных затрат фондов

DP

-«-»-

13. Общие затраты труда

L

Вещественное, скалярное

14. Общие затраты фондов

F

-«-»-

Из связей по определению нужно учесть, по крайней мере, подчинение всех переменных числу отраслей производства n, поскольку если значение n изменяется, все остальные данные должны задаваться или вычисляться заново. Также в число связей по определению целесообразно включить и ряд связей, определяемых функциональными зависимостями между данными. Например, нужно учесть, что если изменяются пользователем коэффициенты прямых затрат (элементы матрицы A ), то должны быть пересчитаны старые значения матриц и т.п. (см. таблицу 2.2).

Таблица 2.2 — Связи по определению (связи подчинения)

Старшее данное

Подчиненные данные

1. n

2. A

3. C

4. X

5. V

6. D

7. H

8. D

9. B,C

10. D,C

11. V,D,BP,Z

12. H,D,DP,Z

Поскольку каждая функциональная связь отражает возможность вычисления некоторых данных, т.е. решение некоторой частной задачи пакета, функциональные связи можно охарактеризовать списком формул (2.5)-(2.21) и таблицей задач (табл. 2.3), в которой указываются обрабатывающие модули, реализующие функциональные связи, входные и выходные данные для этих модулей. Каждой задаче соответствует содержательное название и уникальный идентификатор, который может использоваться для ссылок на конкретную задачу. Построение таблицы задач обеспечивает переход из разработки модели предметной области пакета к определению состава обрабатывающих модулей – функциональному наполнению пакета.

Отметим, что в пакет не нужно включать все 16 обрабатывающих модулей, поскольку для вычисления, например, по формулам (2.14) и (2.15) требуется всего один модуль: умножения матрицы на вектор. Из таблицы 2.3 видно, что число необходимых модулей равно 10.

Таблица 2.3 — Таблица задач

Задача

Обрабатывающий модуль

Входные

параметры

Результаты

Номер формулы

1. Расчет валовой продукции

Ml

(2.5)

2. Расчет коэффициентов прямых затрат

М2

(2.7)

3. Межотраслевые потоки

МЗ

(2.6)

4. Решение балансовых уравнений

М4

(2.10)

5. Расчет конечной продукции

М5

(2.9)

6. Вычисление матрицы полных затрат

М6

(2.11)

7. Коэффициенты затрат труда

М7

(2.12)

8. Коэффициенты затрат фондов

М7

(2.13)

9. Коэффициенты полных затрат труда

М8

(2.14)

10. Коэффициенты полных затрат фондов

М8

(2.15)

11. Общие затраты труда

М9

(2.16)

12. Общие затраты фондов

М9

(2.17)

13. Общие затраты труда

М10

(2.18)

14. Общие затраты фондов

М10

(2.19)

15. Общие затраты труда

М10

(2.20)

16. Общие затраты фондов

М10

(2.21)

Контрольные вопросы

1. Назовите основные составные части ППП.

2. Что входит в понятие «модель предметной области ППП»?

3. Что такое системное и функциональное наполнение ППП; оболочка пакета, вектор состояния МПО?

4. Чем связи по определению отличаются от функциональных связей?

5. Что такое «данное»? Какие атрибуты присущи данному?

6. Что такое модуль ППП? Его основные признаки?

7. Какой модуль называется выполнимым? Эффективным?

3 ОСОБЕННОСТИ ПРОЕКТИРОВАНИЯ УПРАВЛЯЮЩИХ МОДУЛЕЙ ППП

3.1 Функции управляющих модулей пакета

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

1) формирование начального состояния МПО;

2) формирование очередных состояний МПО;

3) управление вызовом и выполнением обрабатывающих модулей;

4) преобразование модели предметной области, если используется динамическая модель.

Первая функция выполняется однократно при запуске пакета, ее часто называют инициализацией пакета. Остальные функции могут выполняться многократно в соответствии с требованиями пользователя. Функции управления различаются объектом управления. Для первой, второй и четвертой функций объектом управления является представление модели предметной области в памяти ЭВМ. Вторая функция распадается на ряд подфункций, к которым относятся:

а) определение модуля, подлежащего выполнению, и проверка его выполнимости;

б) определение последовательности вызовов модулей, ведущей к цели, установленной пользователем;

в) подготовка входных данных (размещение в памяти, формирование списков параметров) для очередного вызываемого модуля;

г) вызов обрабатывающего модуля;

д) анализ и регистрация в МПО результатов вызова обрабатывающего модуля;

е) управление памятью для размещения значений данных.

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

3.2 Входной язык ППП

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

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

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

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

· о входных данных, значения которых задаются пользователем:

· о задачах, которые надлежит решить;

· о выходных данных, которые должны быть представлены пользователю в результате решения задачи.

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

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

В языке табличного типа вводимая пользователем информация представляется в виде одной или нескольких таблиц. Форма таблицы, возможно с заполненными отдельными графами или позициями, выводится на экран, и пользователь должен занести необходимую информацию в клетки таблицы. Такая форма представления информации может оказаться удобной для ввода значений данных. Вариантом табличного подхода является предоставление пользователю списка вопросов, на которые он должен ответить (заполнить предложенную анкету).

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

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

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

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

Во многих ППП входной язык строится как объединение различных типов языков.

Например, в MS Word сочетание клавиш CTRL+S и кнопка Сохранить на панели инструментов Стандартная соответствует команде Сохранить меню Файл, сочетание клавиш CTRL+A соответствует команде Выделить все меню Правка и т.д.

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

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

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

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

3.3 Особенности организации управления ППП с входным языком командного типа

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

В методе интерпретации после ввода очередной команды организуется ее выполнение. Следующая команда вводится после завершения выполнения предыдущей команды.

При методе компиляции вводится вся программа на входном языке, проверяется ее правильность, а затем организуется выполнение этой программы.

Если ППП будет использоваться только в пакетном режиме, методы интерпретации и компиляции внешне не различимы для пользователя.

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

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

Блок-схема алгоритма работы ведущего модуля при интерпретации команд приведена на рис. 3.1.

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

В ППП, предназначенном для решения расчетных задач с использованием некоторого набора обрабатывающих программных модулей, управляющий код может быть записан в форме управляющего вектора U = (u 1, u 2, …, um ), каждая компонента которого содержит имя (код, номер) обрабатывающего или обслуживающего модуля и информацию о списке передаваемых в этот модуль фактических параметров.

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

Рис. 3.1 — Блок-схема алгоритма работы ведущего модуля

в режиме интерпретации команд


Рис. 3.2 — Блок-схема алгоритма работы ведущего модуля

в режиме компиляции команд: 1 – режим компиляции; 2 – режим выполнения готовой программы; 3 – отказ от работы


3.4 Планирование вычислительного процесса в ППП

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

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

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

Планирование вычислительного процесса легко формализовать, если использовать понятие бинарного вектора состояния МПО (2.4) и бинарных матриц функциональных связей.

Совокупность функциональных связей в модели предметной области пакета можно представить матрицами Т и R, имеющими по m строк (m — число функциональных связей) и по n столбцов (n — число данных). Элементы матрицы T определяются по формуле:

Аналогично, элементы матрицы R определяются по формуле:

Таким образом, с помощью матрицы T описывается состояние входных данных обрабатывающих модулей, а с помощью матрицы R – выходных данных.

Пример. Пусть модель предметной области содержит пять обрабатывающих модулей (m =5) и шесть данных в информационной базе (n =6). Функциональные связи представлены в таблице 3.1.

Таблица 3.1 — Функциональные связи (обрабатывающие модули)

Имя модуля

Входные данные

Выходные данные

М1

М2

М3

М4

М5

a, b

a, b

c, b

b, e

a, d

c

d

e

x

x

Тогда матрицы T и R имеют вид:

.

Теперь, применяя логические операции к вектору-строке S и строкам матриц Ti и Ri (i =1…m ), состоящим из n бинарных элементов, можем записать условие выполнимости i -ого обрабатывающего модуля и условие его эффективности. Напомним, что обрабатывающий модуль называется выполнимым (в данном состоянии Sk модели предметной области), если известны все его входные значения. Выполнимый модуль называется эффективным (в данном состоянии Sk модели предметной области), если его вызов переводит модель предметной области в новое состояние Sk +1 ¹Sk.

Условие выполнимости модуля:

,

условие эффективности модуля:

.

Здесь — знак операции конъюнкции (логическое «И»), — знак операции отрицания.

Если обозначить вектор исходного состояния S 0, а требования к конечному состоянию определить бинарным вектором Z, компоненты которого имеют вид:

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

.

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

Алгоритм можно описать так.

Этап 1. Очистить формируемый управляющий вектор U , установить его текущую длину К U =0, установить вектор состояния МПО в начальное положение: Sk = S 0.

Этап 2. Проверить вектор состояния МПО на достижение конечной цели, т.е. на выполнение условия .

Этап 3. Если , то начать цикл по перебору функциональных связей, т.е. по строкам матриц T и R (i =1…m ).

При этом если будет выполнено условие:

()(),

т.е. I - ый модуль выполним и эффективен, то:

1) включить этот модуль в очередную позицию управляющего вектора (например, своим номером: К U = К U + 1, U U ) = i );

2) преобразовать текущее состояние модели предметной области[6]:

;

3) проверить полученный вектор состояния МПО на достижение конечной цели, т.е. на выполнение условия . Если , то получено решение задачи, если нет – перебор продолжается.

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

Продолжим рассмотрение предыдущего примера.

Пусть исходное состояние МПО S 0= (1 1 0 0 0 0), т.е. известны данные a , b. Требуется сформировать управляющий вектор для вычисления х, т.е. Z = (0 0 0 0 0 1).

1) Проверка на достижение конечной цели:

Цикл продолжается, т.к. результат операции не совпадает с вектором конечного состояния

2) Проверка первого модуля на выполнимость:

Модуль выполним, т.к. результат операции совпадает с первой строкой матрицы Т.

3) Проверка первого модуля на эффективность:

Модуль эффективен, т.к. результат операции ненулевой.

4) Модуль М1 включается в управляющий вектор, и вектор состояния МПО преобразовывается:

S 1 = (1 1 1 0 0 0) – вектор нового состояния МПО

5) Снова происходит проверка на конец цикла (шаг 1), проверка на выполнимость и эффективность модуля М2 и т.д.

В результате будет сформирован управляющий вектор U 1 = (M1, M2, M3, M4).

В рассмотренном примере легко можно увидеть, что существуют и другие управляющие векторы, реализующие поставленную задачу, а именно U 2 = (M1, M3, M5), U 3 = (M2, M5). Когда управляющий вектор не единственный, то можно ставить задачу о выборе оптимального (в некотором смысле) управляющего вектора.

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

,

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

Такую задачу можно решать с помощью теории графов, если свести ее поиску кратчайшего пути в графе переходов, отражающем возможные состояния модели предметной области пакета (см. п. 2.2.3 и рис. 2.2). Длины дуг соответствуют времени выполнения модуля. Граф переходов для рассмотренного выше примера приведен на рис. 3.3.

Рис. 3.3 — Граф переходов


Контрольные вопросы

1. Назовите способы внешнего управления пакетом прикладных программ.

2. Что такое входной язык пакета? Охарактеризуйте входные языки современных ППП (на примере известных вам пакетов).

3. В чем отличие метода компиляции от метода интерпретации программы на входном языке? Какие особенности организации управления при реализации этих методов?

4. Что понимают под планированием вычислительного процесса в ППП?

5. Пусть данное состояние МПО описывается вектором S ={0,1,1,0,0,0,1}. Будет ли выполнимым обрабатывающий модуль, если его строка в матрице Т имеет вид: а) Ti = {1,1,1,1,0,0,0}; б) Ti = {0,1,0,1,0,0,1}?

6. Пусть данное состояние МПО описывается вектором S ={0,1,1,0,0,0,1}. Будет ли эффективным обрабатывающий модуль, если его строка в матрице R имеет вид: а) Ri = {0,1,0,0,0,0,1}; б) Ri = {0,0,0,1,0,0,1}?

4 ОСОБЕННОСТИ ПРОЕКТИРОВАНИЯ ОБСЛУЖИВАЮЩИХ МОДУЛЕЙ ППП

4.1 Функции обслуживающих модулей пакета

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

1) интерфейса с пользователем;

2) интерфейса с файлами и базами данных, внешними относительно ППП (внешний интерфейс);

3) внутренних согласующих функций, например, по формам представления данных.

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

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

1) вывод справок о составе и состоянии модели предметной области, возможностях пакета в целом и в каждом состоянии модели предметной области (справочный интерфейс пользователя );

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

З) ввод данных, представляемых пользователем, и вывод данных (результатов вычислений) на экран или печатающее устройство (интерфейс ввода-вывода );

4) вывод информационных сообщений о возникающих при выполнении пакета особых ситуациях (ошибках), (информационный интерфейс ).

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

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

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

· настройка программ пакета на конкретные условия применения;

· преобразование файлов с выходной информацией для согласования их с входными файлами других пакетов;

· подготовка файлов с входными данными для пакета.

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

4.2. Интерфейс управления

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

Наиболее просто организуется интерфейс при входном языке типа меню (рис.4.1). Вариант модуля интерфейса может быть построен по следующему алгоритму:

1. Активизировать функциональное окно для вывода меню, например выделить его определенным цветом.

2. Вывести в окно тексты пунктов меню.

3. Вывести приглашение к выбору одного из пунктов меню.

4. Ввести ответ пользователя.

5. Если ответ неверный, вывести сообщение об ошибке и вернуться к пункту 2.

6. Выход из модуля с передачей вызывающему модулю значения выбора пользователя.

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

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

Например, главное меню ППП комплексной автоматизации управления предприятия ГАЛАКТИКА (версия 5.1) содержит перечень основных функций пакета (рис. 4.1). После выбора строки меню Финансовый анализ открывается окно этой программы (рис. 4.2).

Выбор строки меню Бух.Анализ, а затем Бухгалтерские расчеты (не показано) приводит к появлению окна Разделы с новыми строками меню Аналитический баланс и Финансовые коэффициенты. Выбор последнего открывает окно Документы с новыми строками меню. Для проведения оценки рентабельности выбирается соответствующая строчка и на основе финансовых показателей предприятия проводятся расчеты. Затем генерируется отчет (рис. 4.3).


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

1. Активизация функционального окна для ввода команды и вывод приглашения к вводу.

2. Ввод кода команды.

3. Проверка правильности кода по списку команд и определение порядкового номера команды в этом списке.

4. Если введен неверный код команды, то вывод сообщения об ошибке и, возможно, подсказки в виде списка допустимых команд, затем переход к пункту 1.

5. Определение типа команды по числу и способу задания операндов и вызов соответствующей подпрограммы для ввода операндов.

6. Если пользователь не ввел операнды в требуемой форме, то вывод сообщения об отказе в выполнении команды и переход к пункту 1.


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

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

Использование командной строки для ввода управляющей информации показано в среде сервисной программы управления файлами и архивами FAR v.1.65 (Е. Рошаль) на примере программы архивации ARJ32 (ARJ Software) (рис. 4.4).

В командной строке, начинающейся с указания места нахождения C :\ Program Files, вслед за именем программы arj 32 задаются (через пробелы):

1) имя команды: а («добавить файлы или каталоги в архив»);

2) операнды команды: v 1200 («создавать многотомный архив с объемом каждого тома 1200 Кбайт»); archive (имя создаваемого архива); («добавлять каталоги»); bp chat (имена каталогов, которые нужно добавить в архив; они тоже разделяются пробелом).

Кстати, если в командной строке задать только имя программы arj 32, то на экране появится справочный интерфейс программы.


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

4.3 Справочный интерфейс пользователя

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

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

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

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

1. Выбор пункта Главного меню Справка ( Help ), который дублируется нажатием кнопки F 1 на клавиатуре (рис. 4.5 а). Подпункты этого меню могут содержать:

1)


справку по программному продукту, структура которой изображена на рис. 4.6; для поиска нужной информации используются гипертекстовые ссылки, размещаемые в тексте справки (поле справа), Указатель и Мастер ответов, ведущие поиск по заданным пользователем ключевым словам;

2)
вызов «интеллектуального помощника» (рис. 4.5 б), который, в принципе, обеспечивает те же функции, что и Справка, только в более забавном виде (если вам не нравится игривая Кошка, можете сменить помощника, заказав, например, мудрого Эйнштейна);

3) контекстную справку, вызываемую щелчком мыши по знаку «?» (рис. 4.5 в); указав им интересующий параметр, можно получить справку по этому параметру;

4) соединение с Web-узлом разработчика пакета, обеспечивающую онлайновую справку и поддержку;

5) вызов Руководства пользователя (Manual) или Обучающего пособия (Tutorial), выполненных либо в виде файла с расширением .pdf (для его чтения требуется программа Adobe Acrobat Reader), либо в виде интерактивного мультимедийного учебника;

6) краткие сведения о разработчиках продукта, его версии и годе выхода в свет.

Пункт меню Справка может располагаться не только в главном меню, но и в любом месте интерфейса управления (рис. 4.7).

2. Всплывающие подсказки, появляющиеся у объектов (кнопок, строчек меню) и поясняющие их назначение.


3. Контекстно-зависимое меню, вызываемое нажатием правой кнопки мыши или специальной клавишей на 104/108 кн. клавиатуре. Хотя это меню является частью интерфейса управления, но оно информирует пользователя о возможных действиях в данном состоянии МПО пакета (или, иными словами, в данном контексте использования ППП), поэтому его можно отнести и к справочному интерфейсу.

4.4 Информационный интерфейс пользователя

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

С точки зрения информатики, причиной появления ошибок в программных продуктах является нарушение правильности перевода информации из одного вида в другой на разных этапах разработки (см. гл. 6). Типы ошибок – самые разнообразные, что приводит к необходимости их классификации. С этого и начинается создание информационного интерфейса:

1) разработка системы классификации ошибок,

2) разработка способа кодирования ошибок;

3) разработка способа кодирования типов сообщений об ошибках.

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

· терминальные ошибки, при возникновении которых дальнейшее выполнение заданий пользователя невозможно (испорчена информация о модели предметной области, потеряны значения данных и т.п.);

· ошибки выполнения отдельных шагов задания пользователя, отдельных команд, не препятствующие дальнейшей работе с пакетом;

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

Эти ошибки разбиваются по классам (например, «Ошибки ОС», «Ошибки вычислений», «Логические ошибки», «Ошибки ввода-вывода», «Неясности» и т.д.), по категориям внутри классов (например, внутри класса «Ошибки вычислений» можно выделить категории «Деление на нуль», «Слишком большое число», «Ошибка в вычислении индекса» и т.д.).

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

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

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

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

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

· сообщения с фиксированным текстом, не требующим переработки при выводе (рис. 4.8 и 4.9);

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

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

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


Для вывода каждого сообщения необходимо:

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

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

3) выполнить подстановку значений параметров;

4) установить код серьезности ошибки (он используется управляющей частью пакета для принятия решения о продолжении работы);

5) вывести сообщение об ошибке.

4.5 Интерфейс ввода-вывода

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

Если в пакете всегда требуется вводить значения одних и тех же данных, запрос на ввод данных формируется пакетом, и пользователь отвечает на этот запрос. Например, в пакете межотраслевого баланса, рассмотренном в п. 2.3, к таким данным относится число отраслей n .

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

Скалярные данные могут задаваться в форме оператора присваивания (имя-значение). Для ввода массива (вектора или матрицы) целесообразно сначала указать имя массива, а значения элементов массива вводить по запросам из пакета. Это позволяет избежать ошибок в числе элементов массива. Для ввода элементов массива может использоваться табличный способ, когда на экран выводится таблица с наименованиями строк и столбцов, и пользователь вводит значения элементов массива в клетки таблицы. При вводе данных с клавиатуры должна быть предусмотрена возможность редактирования значений вводимых данных до нажатия клавиши «Ввод».

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

Результаты выполнения ППП могут выводиться на экран дисплея, в файл, на печатающее устройство (принтер, плоттер).

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


Дисплеи современных ПК допускают гибкое управление отображением информации на экране, в частности, разделение экрана на окна – области различного функционального назначения (рис. 4.12). В данном состоянии МПО одно из окон является активным.


Интерфейс вывода должен взаимодействовать с интерфейсом управления, справочным интерфейсом, информационным интерфейсом и обеспечивать:

· выделение окон и установку их атрибутов (форма, цвет, шрифт, границы);

· сохранение информации, отображаемой в окне, при перекрытии окон;

· восстановление информации в окне;

· вывод информации в указанное окно;

· распознавание, к какому окну относятся действия пользователя, и их отображения в соответствующем окне.

4.6 Внешний интерфейс

Внешний интерфейс должен обеспечить ввод данных из файлов или базы данных или вывод данных в файл (базу данных). Конкретные требования к внешнему интерфейсу определяются на основе анализа предполагаемых условий применения пакета и объемов обрабатываемых данных. Если используемые в пакете массивы данных содержат десятки или сотни чисел, их удобнее готовить и редактировать независимо от пакета и передавать в пакет через внешний интерфейс.

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

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

Контрольные вопросы

1. Назовите основные функции обслуживающих модулей в ППП.

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

3. Как происходит анализ ошибки, возникающей при работе ППП?

4. Перечислите способы организации справочного интерфейса.

5. Приведите примеры реализации интерфейса управления в известных вам ППП.


[1] В растровых редакторах изображение строится на растре небольших квадратиков (пикселов). В векторных редакторах основным элементом является линия и математическая формула, описывающая эту линию. Недостатки растровой графики: большой объем файла; искажение изображения при изменении масштаба изображения; достоинство – почти неограниченные возможности изменения формы и цвета объекта.

[2] Optical Character Recognition – оптическое распознавание символов.

[3] templet (англ.) — шаблон, лекало.

[4] Мир ПК, январь 2002, с.101-109.

[5] Предикат – это n-местная функция P, которая каждому упорядоченному набору элементов множества M сопоставляет некоторое высказывание, обозначаемое .

[6] Здесь — знак операции дизъюнкции (логическое «ИЛИ»).

еще рефераты
Еще работы по остальным рефератам