51062

МОДЕЛИРОВАНИЕ ОЦЕНКИ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Лабораторная работа

Информатика, кибернетика и программирование

Классическая теория надежности технических систем использовала метод расчленения сложных объектов на элементы расчета. При этом надежность элементов рассчитывалась, в основном, с помощью справочников, в которых приводились значения интенсивностей отказов элементов. Затем оценивалась надежность объекта и принимались меры по ее повышению.

Русский

2014-02-04

956.59 KB

5 чел.

Эмпирическое исследование ПО

ст. гр. ПЗАС-08-2

Швец Дмитрий

Лабораторная работа №4

МОДЕЛИРОВАНИЕ ОЦЕНКИ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Краткие теоретические сведения.

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

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

Классическая теория надежности технических систем использовала метод расчленения сложных объектов на элементы расчета. При этом надежность элементов рассчитывалась, в основном, с помощью справочников, в которых приводились значения интенсивностей отказов элементов. Затем оценивалась надежность объекта и принимались меры по ее повышению.

Для обеспечения надежности функционирования сложных программных комплексов необходимо идти по подобному пути:

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

2.Более ответственно и скурпулезно изучать точность представления различных величин операторов.

3.Исследовать точностные характеристики операторов при полученных распределениях величин.

4.Интенсивнее развивать модели исследования точностных свойств элементарных операторов.

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

6.Разрабатывать точностные модели сложных программ на основе интегрирования элементарных операторов. Для этого можно использовать разработанные графоаналитические методы и методы моделирования.

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

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

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

Листинг:

procedure TForm1.Button1Click(Sender: TObject);

var s:string;

   newmode:TTreenode;

begin

if Edit1.Text=''

then s:='******'

 else s:=Edit1.Text;

Newmode:=TreeView1.items.add(treeview1.Selected,s);

if CheckBox1.Checked

 then

  begin

    P[ii]:=StrToFloat(Edit2.Text);

    Memo1.Lines.Add('№ блока: '+IntToStr(ii)+'    '+'P= '+Edit2.Text+'   '+s);

  end

   else P[ii]:=1;

    inc(ii);

inc(addcounter);

end;

procedure TForm1.Button2Click(Sender: TObject);

var s:string;

   newmode:TTreenode;

begin

if Edit1.Text=''

then s:='******'

 else s:=Edit1.Text;

Newmode:=TreeView1.items.addchild(treeview1.Selected,s);

if CheckBox1.Checked

 then

  begin

    P[ii]:=StrToFloat(Edit2.Text);

    Memo1.Lines.Add('№ блока: '+IntToStr(ii)+'    '+'P= '+Edit2.Text+'   '+s);

  end

   else P[ii]:=1;

    inc(ii);

if treeview1.Selected<>nil then

 begin

   inc(addchildcounter);

   inc(addcounter);

 end

 else

 begin

   inc(addcounter);

 end;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

if treeview1.Selected<>nil then

  Treeview1.Items.Delete(Treeview1.selected);

end;

procedure TForm1.Button4Click(Sender: TObject);

var s:string;

begin

s:='';

if not inputquery('Название','Переименовать на',s) then exit;

treeview1.Selected.Text:=s;

end;

procedure TForm1.FormCreate(Sender: TObject);

var i:byte;

begin

ii:=0;

addcounter:=1;

addchildcounter:=1;

treeview1.MultiSelect:=true;

for i:=0 to 2 do

P[i]:=0.9;

P[3]:=1;

P[4]:=0.9;

P[5]:=0.9;

P[6]:=1;

P[7]:=0.9;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

var i,j,k:byte;

   a:array[1..20] of real;

   b:array[1..20] of byte;

   kudalovo:boolean;

   s:real;

begin

kudalovo:=false;

for i:=1 to 20 do begin a[i]:=1; b[i]:=0; end;

for i:=0 to treeview1.SelectionCount-1 do

 begin

   if i=0 then a[i+1]:=a[i+1]*strtofloat(treeview1.Selections[0].Text);

   for j:=1 to treeview1.SelectionCount-1 do

     begin

       kudalovo:=false;

       if treeview1.Selections[i].Parent=treeview1.Selections[j].Parent then

         begin

           for k:=1 to 20 do

           if i<>0 then

           if j=b[k] then kudalovo:=true;

           if kudalovo=false then

           a[i+1]:=a[i+1]*strtofloat(treeview1.Selections[j].Text);

           b[j]:=j;

         end;

     end;

 end;

s:=1;

for i:=1 to 20 do

 begin

   if a[i]<>1 then

   s:=s*(1-a[i]);

 end;

s:=1-s;

treeview1.Selections[0].Text:=floattostr(s);

for i:=treeview1.SelectionCount-1 downto 1  do

treeview1.Selections[i].Delete;

end;

procedure TForm1.Edit3Change(Sender: TObject);

begin

Edit2.Text:=FloatToStr(StrToInt(Edit3.Text)/10);

end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9',#8,#45,#13])

then key:=#0

 else

  if Edit2.Text<>''

   then Edit3.Text:=FloatToStr(StrToFloat(Edit2.Text)*10);

end;

procedure TForm1.CheckBox1Click(Sender: TObject);

begin

if CheckBox1.Checked = false

then

 begin

  Edit2.Enabled:=false;

  UpDown1.Enabled:=false;

 end

  else

   begin

    Edit2.Enabled:=true;

    UpDown1.Enabled:=true;

   end;

end;

procedure TForm1.Button7Click(Sender: TObject);

begin

TreeView1.Items.Clear;

end;

Скриншоты:

     


 

А также другие работы, которые могут Вас заинтересовать

22110. J-K триггер (универсальный триггер) 24 KB
  Триггером JK типа называют автомат Мура с двумя устойчивыми состояниями и двумя входами J и K который при условии J K = 1 осуществляет инверсию предыдущего состояния т. при J K = 1 Qt1 = Qt а в остальных случаях функционируют в соответствии с таблицей истинности RS триггера при этом вход J эквивалентен входу S а вход K входу R. Этот триггер уже не имеет запрещенной комбинации входных сигналов и его таблица истинности т.
22111. Структурная схема конечного автомата 26.5 KB
  Комбинационная схема строится из логических элементов образующих функционально полную систему а память – на элементарных автоматах обладающих полной системой переходов и выходов. Каждое состояние абстрактного автомата ai i=0n кодируется в структурных автоматах набором состояний элементов памяти Q2 R=1R. Здесь Q – состояние автомата а ai = {0 1} Как и прежде Q Общее число необходимых элементов памяти можно определить из следующего неравенства 2R n 1.
22112. Табличный метод структурного синтеза конечных автоматов 75.5 KB
  На этапе структурного синтеза выбираем также способ кодирования состояний и выходных сигналов заданного автомата через состояния и выходные сигналы элементарных автоматов в результате чего составляют кодированные таблицы переходов и выходов. Функции возбуждения элементарных автоматов и функции выходов получаются на основе кодированной таблицы переходов и выходов. Рассмотрим примеры синтеза которые позволяют сформулировать общий алгоритм структурного синтеза конечных автоматов.
22113. Технические особенности конечных автоматов 36 KB
  Здесь u – сигналы возбуждения триггера. На практике триггера часто выполняются в синхронном варианте синхронные триггера когда упомянутые элементы u включают в схему триггера. Например схему синхронного триггера RSтипа можно рассматривать как состоящую из асинхронного RSтриггера ко входам R и S которого подключены двухвходовые элементы И. Очевидно синхронные триггера будут сохранять свои состояния при С=0 а переходы в них возможны при С=1 то переходы в синхронном триггере будут осуществляться также как в асинхронном.
22114. Понятие устойчивости конечного автомата 48 KB
  Дело в том что триггера в схеме имеет различные времена задержек сигналов обратной связи которые поступают с выходов триггеров на их входы через комбинационную схему II. По этим причинам если при переходе автомата из состояния ai в as должны измениться состояния нескольких триггеров то между выходными сигналами этих триггеров начинаются гонки. изменит свое состояние раньше других триггеров может через цепь обратной связи изменить может изменить сигналы возбуждения на входах других триггеров до того момента как они изменят свои состояния....
22115. Синтез конечных автоматов 31.5 KB
  В ЦА выходные сигналы в данный момент времени зависят не только от значения входных сигналов в тот же момент времени но и от состояния схемы которое в свою очередь определяется значениями входных сигналов поступивших в предшествующие моменты времени. Понятие состояния введено в связи с тем что часто возникает необходимость в описании поведения систем выходные сигналы которых зависят не только от состояния входов в данный момент времени но и от некоторых предысторий т. Состояния как раз и соответствуют некоторой памяти о прошлом...
22116. Способы задания автомата 362 KB
  Существует несколько способов задания работы автомата но наиболее часто используются табличный и графический. Совмещенная таблица переходов и выходов автомата Мили: xj ai a0 an x1 a0x1 a0x1 anx1 anx1 xm a0xm a0xm anxm anxm Задание таблиц переходов и выходов полностью описывает работу конечного автомата поскольку задаются не только сами функции переходов и выходов но и также все три алфавита: входной выходной и алфавит состояний. Для задания автомата Мура требуется одна таблица поскольку в этом...
22117. Частичные автоматы 194 KB
  Оказывается что для любого автомата Мили существует эквивалентный ему автомат Мура и обратно для любого автомата Мура существует эквивалентный ему автомат Мили. Рассмотрим алгоритм перехода от произвольного конечного автомата Мили к эквивалентному ему автомату Мура. Требуется построить эквивалентный ему автомат Мура Sb = {Ab Xb Yb b b} у которого Xb = Xa Yb = Ya т. Для определения множества состояний Ab автомата Мура образуем всевозможные пары вида ai yg где yg – выходной сигнал приписанный входящей в ai дуге.
22118. Абстрактный синтез конечных автоматов 25.5 KB
  Составить аналогичную таблицу описывающую работу конечного автомата не представляется возможным т. множество допустимых входных слов автомата вообще говоря бесконечно. Мы рассмотрим один из возможных способов формального задания автоматов а именно задание автомата на языке регулярных событий. Представление событий в автоматах.