Разработка программ оценки сложности программного обеспечения

Автор работы: Пользователь скрыл имя, 19 Января 2011 в 23:37, практическая работа

Краткое описание

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

Содержимое работы - 1 файл

Документ Microsoft Word.doc

— 168.00 Кб (Скачать файл)

      str, name : String;

begin

      SetLength( tableOfFunctions, 0);

      SetLength( tableOfVariables, 0);

      for i:=0 to length(TABLE_OF_KEWORDS) - 1 do begin

            TABLE_OF_KEWORDS[i].c := 0;

      end;

      for i:=0 to length(TABLE_OF_OPERATORS) - 1 do begin

            TABLE_OF_OPERATORS[i].c := 0;

      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.

Информация о работе Разработка программ оценки сложности программного обеспечения