Достигнут 3-ий уровень корректности программы.




Отладка программы модульной структуры:

 

Как и в отладке программы блочной структуры я начал с визуального контроля, но большая часть ошибок уже была мной исправлена. Я заметил, что перепутал местами служебные слова INTERFACE и IMPLEMENTATION, тем самым допустив синтаксическую ошибку.

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

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

Компиляция прошла успешно – ошибок не выявлено, следовательно, мной достигнут первый уровень корректности программы.

 

 

Мною была проверена основная программа, а подпрограммы заменены «заглушками»:

 

Проверка основной программы:

 

UNIT OBIVL;

INTERFACE

TYPE MATRICA=array[1..5,1..6] of real;

MASSIV=array[1..6] of real;

VAR A,B:MATRICA;

K:MASSIV;

i,j:integer;

f1,f2:text;

IMPLEMENTATION

BEGIN

assign(f1,’isdan.pas');

assign(f2,'vdan.pas');

reset(f1);

rewrite(f2);

END.

 

 

UNIT PART1;

INTERFACE

USES OBIVL;

Procedure NEWMATR(Var A:MATRICA; Var K:MASSIV);

Function STR(Var K:integer):integer;

IMPLEMENTATION

Procedure NEWMATR;

Begin

K[1]:=1; K[2]:=4; K[3]:=0; K[4]:=0; K[5]:=0

End;

Function STR(Var K:integer):integer;

Begin

imax:=1;

STR:=imax

End

END;

 

Program tipovik_v2_mod;

USES OBIVL,PART1,PART2;

Begin

For i:=1 to 5 do

begin

For j:=1 to 6 do

Read(f1,A[i,j]);

Readln(f1)

end;

Writeln(f2,' ':35,'Результаты');

Writeln(f2);

MASK(A,K);

If STR(K,6)=1 Then

begin

NEWMATR(A,B);

Writeln(f2,' ':20,'SR1=',SR1:6:1,' ':15,'SR2=',SR2:6:1);

end

else

Write(f2,'Наибольшее кол-во эл-тов не в первой строке');

close(f1);

close(f2)

End.

 

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

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

 

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

 

Program tipovik_v2_mod;

USES OBIVL,PART1,PART2;

VAR sch1,sch2,sch3:integer;

BEGIN

sch1:=0;

sch2:=0;

sch3:=0;

assign(f1,'isdan.pas');

assign(f2,'vdan.pas');

reset(f1);

rewrite(f2);

For i:=1 to 5 do

begin

For j:=1 to 6 do

Read(f1,A[i,j]);

Readln(f1)

end;

Writeln(f2,' ':35,'Результаты');

Writeln(f2);

MASK(A,K);

If STR(K,6)=1 Then

Begin

sch1:= sch1+1;

NEWMATR(A,B);

Writeln(f2,' ':20,'SR1=',SR1:6:1,' ':15,'SR2=',SR2:6:1);

end

else

begin

sch2:= sch2+1;

Write(f2,‘Наибольшее кол-во эл-тов не в первой строке')

end;

sch3:= sch3+3;

writeln(f2);

write(f2,sch1,’ ’,sch2,’ ’,sch3);

close(f1);

close(f2)

End.

 

 

Значения счетчиков, полученных при тестировании:

 

1) 1 0 1

2) 0 1 1

 

Складываем:

 

1 1 2

 

Я узнал значение счетчиков при данном наборе тестов.

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

 

Достигнут 3-ий уровень корректности программы.

 

Визуальный контроль корректности программы:

  • В программе описаны все переменные и массивы.
  • Переменные со сходными именами отсутствуют.
  • Вычисления или операнды недопустимых типов отсутствуют.
  • Переполнения или потеря результата при вычислении значения невозможна.
  • Деление на нуль невозможно.
  • Значение переменных исходных данных не выходит за их диапазон.

· При каждом обращении выполнены правила соответствующих параметров.

· Ошибки в водимом тексте отсутствуют.

 

Синтаксический контроль корректности программы:

  • Все базовые управляющие структуры построены и закодированы корректно.

 

Семантический контроль корректности программы

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

 

 

Рекомендации по использованию программ

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

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: