Главная      Учебники - Разные     Лекции (разные) - часть 13

 

Поиск            

 

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

 

             

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