- •Лекция на тему Внутреннее проектирование и разработка программных средств.
- •3.1. Табличный вариант модели предметной области
- •1. Определение пакета прикладных программ.
- •2.Составные части ппп.
- •3. Модель предметной области.
- •3.1. Табличный вариант модели предметной области
- •3.2. Граф предметной области.
- •4. Использование теории формальных грамматик, для описания встроенного языка пакета прикладных программ.
- •5. Конструирование управляющей программы ппп.
- •5.1 Модуль лексического разбора.
- •5.2 Модуль синтаксического анализа
- •5.3 Модуль управления
- •5.4 Информатор
5.3 Модуль управления
Модуль управления должен обеспечивать выполнение обращений к обрабатывающим программам. Порядок обращений к обрабатывающим программам задается в управляющем векторе.
При вызове обрабатывающей программы осуществляется передача параметров, часть из которых являются входными данными, а остальные параметры являются результатными. Для результатных параметров вычисляются новые значения. Различают обрабатывающие программы, вызываемые всегда с одним и тем же набором фактических параметров, и обрабатывающие программы, которые могут вызываться с различными наборами фактических параметров.
Процедура, реализующая модуль управления, имеет следующий вид:
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}
5.4 Информатор
Информатор предназначен для выдачи сообщений о ходе решения задачи. Процедура, реализующая информатор, имеет следующий вид:
Procedure Inform (Tinf: TypeTinf); { Блок информатора} Begin With Tinf Do Begin Case PB Of 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('Выполнен синтаксический анализ'); Case Kv Of 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;
