Автор работы: Пользователь скрыл имя, 19 Января 2011 в 23:37, практическая работа
Метрики третьей группы базируются на оценке использования, конфигурации и размещения данных в программе. В первую очередь это касается глобальных переменных.
Предполагается методика, связывающая сложность программ с обращениями к глобальным переменным.
str, name : String;
begin
SetLength( tableOfFunctions, 0);
SetLength( tableOfVariables, 0);
for i:=0 to length(TABLE_OF_KEWORDS) - 1 do begin
TABLE_OF_KEWORDS[
end;
for i:=0 to length(TABLE_OF_OPERATORS) - 1 do begin
TABLE_OF_
end;
str := Form1.Memo1.Lines.Text;
myRecognize(
str );
n1 := Length(tableOfFunctions);
nn1 := n1;
for i:=0 to length(TABLE_OF_KEWORDS) - 1 do begin
Inc(nn1, TABLE_OF_KEWORDS[i].c);
if TABLE_OF_KEWORDS[i].c > 0 then Inc(n1);
end;
for i:=0 to length(TABLE_OF_OPERATORS) - 1 do begin
Inc(nn1, TABLE_OF_OPERATORS[i].c);
if TABLE_OF_OPERATORS[i].c > 0 then Inc(n1);
end;
n2 := 0;
for i:=0 to length(tableOfVariables) - 1 do begin
if tableOfVariables[i].c > 0 then Inc(n2);
end;
nn2
:= Length(tableOfVariables);
span := 0;
for i:=0 to length(tableOfVariables) - 1 do begin
if tableOfVariables[i].c > span then begin
span := tableOfVariables[i].c;
name := tableOfVariables[i].n;
end;
end;
for i:=0 to length(tableOfFunctions) - 1 do begin
if tableOfFunctions[i].c > span then begin
span := tableOfFunctions[i].c;
name := tableOfFunctions[i].n;
end;
end;
nn := nn1+nn2;
_nn := n1 * log2(n1) + n2 * log2(n2);
ShowMessage('Identifier ' + name + ' has SPAN= ' + IntToStr(span-1));
ShowMessage('N=' + IntToStr(nn));
ShowMessage('N''=' + FloatToStr( _nn ));
ShowMessage('|N-N''|/N=' + FloatToStr( 100 * abs(nn-_nn) / nn ));
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm2 = class(TForm)
RadioGroup1: TRadioGroup;
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
ModalResult := mrOk;
end;
end.
Информация о работе Разработка программ оценки сложности программного обеспечения