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

Лекция на тему

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

План лекции

1. Определение ППП.

2. Составные части ППП.

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

3.1. Табличный вариант модели предметной области

3.2. Граф предметной области.

4. Использование теории формальных грамматик, для описания встроенного языка пакета прикладных программ.

5.Конструирование управляющей программы пакета прикладных программ.

5.1 Модуль лексического разбора

5.2 Модуль синтаксического анализа

5.3 Модуль управления

5.4 Информатор

5.5 Модуль помощи (HELP)

Литература

1. Смирнов А.А. Прикладное программное обеспечение. Учебное пособие. М. ,МЭСИ, 2011.

2. Гагарина Л. Г., Виснадул Б. Д., Кокорева Е. В. Технология разработки программного обеспечения. М. ИНФРА-М.,2013

3. Голицына О. Л., Попов И. И., Партыка Т. Л. Программное обеспечение. М. ФОРУМ., 2010

Определение пакета прикладных программ.

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

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

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

Можно выделить следующие общие свойства пакета прикладных программ:

во-первых, пакет состоит из нескольких программных единиц;

во-вторых, пакет предназначен для решения задач определенного класса;

в-третьих, в пределах своего класса пакет обладает определенной универсальностью, т.е. позволяет решать практически все задачи данного класса;

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

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

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

ППП можно подразделить на методо-ориентированные пакеты, проблемно-ориентированные пакеты и интегрированные пакеты.

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

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

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

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

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

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

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

во-первых, ведущего блока;

во-вторых, модуля лексического разбора;

в-третьих, модуля синтаксического анализа;

в-четвертых, модуля управления;

в-пятых, информатора;

в-шестых, модуля помощи.

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

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

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

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

Информатор предназначен для выдачи сообщений о ходе решения задачи.

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

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

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

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

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

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

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

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

Данное может характеризоваться: именем, типом и значением.

Имя (идентификатор) является уникальным для конкретного данного. Имя может быть дополнено пояснением или содержательным названием, отображающим его роль в предметной области. Содержательное название предназначено для разъяснения пользователю. Например, имя “PRICE” может обозначать реквизит с содержательным названием “ЦЕНА ИЗДЕЛИЯ”.

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

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

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

во-первых, связи по определению;

во-вторых, функциональные связи.

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

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

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

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

где X- множество данных;

R- множество связей по определению;

F- множество функциональных связей.

Если в процессе выполнения пакета множества X,Rи F остаются неизменными, то такую модель предметной области можно назвать статической.

Если пользователь имеет возможность в процессе работы пакета менять, хотя бы одно из множеств: X,Rили F, то модель предметной области называется динамической. Например, если пользователь имеет возможность определения новых данных или возможность изменения формул расчета, то ППП будет являться пакетом с динамической предметной областью. В качестве примера ППП с динамической предметной областью, можно привести бухгалтерский пакет “1.С Бухгалтерия”.

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

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

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

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

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

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

Связи между данными, образующие множество связей по определению “R”, отражают взаимосвязь между данными в информационной базе пакета и устанавливаются при разработке информационной базы. В частности, в системе Delphi, данные, объединенные в единую запись, являются связанными по определению.Как правило, при обработке экономической информации, в единую записьобъединяют реквизиты одного документа.

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

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

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

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

B= f (A),

где

величина «А» представляет собой набор входных данных для конкретного модуля. Данный набор данных является подмножеством множества Х;

величина «В»представляет собой набор выходных данных модуля, который также является подмножеством множества Х.

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

Функциональная связь в модели предметной области представляется следующим образом:

Во-первых, набором входных данных;

Во-вторых, набором выходных данных;

В-третьих, обрабатывающим модулем, реализующим эту связь.

Модель предметной области может быть представлена различными вариантами, в частности:

Во-первых, с помощью таблиц;

Во-вторых, с помощью графа предметной области.

3.1. Табличный вариант модели предметной области

Использование табличного варианта предполагает формирование нескольких таблиц.

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

Номер П/п Название Данного Имя Данного Тип Данного
Число поставщиков N Целое
Список кодов поставщиков A Вектор из N целых элементов

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

2. Таблица связей по определению (связи подчинения).

Номер п/п. Старшее данное Подчиненные данные
N A

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

3. Таблица задач ( Функциональные связи ).

Номер п/п. Функции обрабатывающего модуля Идентификатор модуля Входные параметры Выходные параметры
Отбор неоплаченных поставок   OTBOR   N,A   M,B

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

Граф предметной области.

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

Например, рассмотрим типичную задачу обработки экономической информации.

Вершинами могут быть обозначены следующие стадии обработки:

1 - начальная стадия;

2 - обеспечение ввода информации;

3 - проверка корректности введенной информации;

4 - получение выходных документов;

5 - завершение работы.

Дугами могут быть обозначены следующие алгоритмы:

1 - ввод с внешнего носителя;

2 - ввод с клавиатуры;

3 - тестирование информации;

4 - просмотр и редактирование информации;

5 - получение выходной формы;

6 - контрольная распечатка файла;

7 - сохранение информации на внешнем носителе.

В этом случае, граф предметной области будет иметь вид

1 3 5

Внутреннее проектирование и разработка программных средств. - student2.ru Внутреннее проектирование и разработка программных средств. - student2.ru Внутреннее проектирование и разработка программных средств. - student2.ru 1 2 3 4 7 5

Внутреннее проектирование и разработка программных средств. - student2.ru о о о о о

2 4 6

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

Для приведенного примера графа предметной области массив будет иметь вид:

GPO

1 2

1 2

2 3

2 3

3 4

3 4

4 5

Модуль управления

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

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

Процедура, реализующая модуль управления, имеет следующий вид:

Procedure Yprava (YV: T_YV;

Par: T_PAR;

Ksl: Integer;

Var Tinf: TypeTinf);

{Модульуправления}

Var

Parm: String;

J,Kvo: Integer;

Procedure Vvodd (PARM:String;

Var KVO:Integer);

{ Заглушка (STUB) обрабатывающейпроцедуры,

предназначенной для ввода информации с внешнего

носителя}

Begin

Kvo:=0 ;

End;

Procedure Vvodk (PARM:String;

Var KVO:Integer);

{ Заглушка (STUB) обрабатывающейпроцедуры,

предназначенной для ввода с клавиатуры}

Begin

Kvo:=0 ;

End;

Procedure TEST (PARM:String;

Var KVO:Integer);

{ Заглушка (STUB) обрабатывающейпроцедуры,

предназначенной для тестирования информации}

Begin

Kvo:=0 ;

End;

Procedure PROSM (PARM:String;

Var KVO:Integer);

{ Заглушка (STUB) обрабатывающейпроцедуры,

предназначенной для просмотра информации}

Begin

Kvo:=0 ;

End;

Procedure Vedom (PARM:String;

Var KVO:Integer);

{ Заглушка (STUB) обрабатывающейпроцедуры,

предназначенной для получения ведомости}

Begin

Kvo:=0 ;

End;

Procedure RASP (PARM:String;

Var KVO:Integer);

{ Заглушка (STUB) обрабатывающейпроцедуры,

предназначенной для распечатки информации}

Begin

Kvo:=0 ;

End;

Procedure Soxr (PARM:String;

Var KVO:Integer);

{ Заглушка (STUB) обрабатывающейпроцедуры,

предназначенной для сохранения информации}

Begin

Kvo:=0 ;

End;

Begin

With Tinf Do

Begin

PB:= 3; Kv:= 0;

Kvo:= 0 ;

For J:=1 to Ksl Do

Begin

Parm:= Par[J];

CASE YV [J] OF

1: Vvodd ( Parm,kvo);

2: Vvodk ( Parm,kvo);

3: Test ( Parm,kvo);

4: Prosm ( Parm,kvo);

5: Vedom ( Parm,kvo);

6: Rasp ( Parm,kvo);

7: Soxr ( Parm,kvo);

End; {Case}

if Kv < Kvo then Kv:= Kvo;

End; {For}

End; {With}

End; {Procedure}

Информатор

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

ProcedureInform (Tinf: TypeTinf);

{ Блокинформатора}

Begin

WithTinfDoBegin

CasePBOf

1: Begin

MESINF.LINES.ADD('Выполненлексическийразбор');

Case Kv Of

0: MESINF.LINES.ADD('Нормальное завершение');

4: MESINF.LINES.ADD('Оператор задан неверно');

5: MESINF.LINES.ADD('Отсутствует ПВЯ

после имени оператора');

6: MESINF.LINES.ADD('Разделитель задан неверно');

7:MESINF.LINES.ADD('Отсутствует символ концаоператора');

End;

End;

2: Begin

MESINF.LINES.ADD('Выполненсинтаксическийанализ');

CaseKvOf

0: MESINF.LINES.ADD('Нормальноезавершение');

8: MESINF.LINES.ADD('Неверный порядок операторов');

16: MESINF.LINES.ADD('Программа не завершена');

End;

End;

3: MESINF.LINES.ADD('Выполнились

обрабатывающие процедуры');

End; { Case }

End; { With }

End;

5.5 Модуль помощи (HELP)

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

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

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

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

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

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

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

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

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

В простейшем случае модуль помощи может иметь вид.

Procedure TForm_VED.CMDHELPClick(Sender: TObject);

{ Метод, обеспечивающий помощь пользователю}

Begin

LbHelp1.Caption:= 'СТРУКТУРА ОПЕРАТОРА';

LbHelp2.Caption:= '<ИМЯ ОПЕРАТОРА>=<ПАРАМЕТР>;';

LbHelp1.Autosize:=True;

LbHelp2.Autosize:=True;

LbHelp1.Visible:= True;

LbHelp2.Visible:= True;

CMDPROCESS.SetFocus;

End;

Лекция на тему

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

План лекции

1. Определение ППП.

2. Составные части ППП.

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

3.1. Табличный вариант модели предметной области

3.2. Граф предметной области.

4. Использование теории формальных грамматик, для описания встроенного языка пакета прикладных программ.

5.Конструирование управляющей программы пакета прикладных программ.

5.1 Модуль лексического разбора

5.2 Модуль синтаксического анализа

5.3 Модуль управления

5.4 Информатор

5.5 Модуль помощи (HELP)

Литература

1. Смирнов А.А. Прикладное программное обеспечение. Учебное пособие. М. ,МЭСИ, 2011.

2. Гагарина Л. Г., Виснадул Б. Д., Кокорева Е. В. Технология разработки программного обеспечения. М. ИНФРА-М.,2013

3. Голицына О. Л., Попов И. И., Партыка Т. Л. Программное обеспечение. М. ФОРУМ., 2010

Наши рекомендации