Файл: Технология раработки програмного обеспечения УП.pdf

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

 

 
 

156 

Например,

 

причины

 

2

 

и

 

3

 

не

 

могут

 

присутствовать

 

без

 

причины

 

1.

 

Причина

 

4

 

не

 

может

 

присутствовать,

 

если

 

нет

 

при-

чин

 

2

 

и

 

3.

 

На

 

рис.

 

6.18

 

показана

 

окончательная

 

диаграмма

 

со

 

всеми

 

дополнительными

 

ограничениям.

 

Заметим,

 

что

 

может

 

присутствовать

 

только

 

одна

 

из

 

причин

 

5,

 

6,

 

7

 

или

 

8.

 

Другие

 

ог-

раничения

 

причин

 

являются

 

условиями

 

типа

 

«требует».

 

При-

чина

 

17

 

(много

 

строк

 

на

 

экране)

 

и

 

причина

 

8

 

(второй

 

операнд

 

отсутствует)

 

связаны

 

отношением

 

не;

 

причина

 

17

 

может

 

при-

сутствовать

 

только

 

в

 

отсутствии

 

причины

 

8.

 

 

Рис.

 

6.17

 

 

Полная

 

функциональная

 

диаграмма

 

без

 

ограничений

 

31

 

32

 

36

 

35

 

33

 

34

 

38

 

39

 

40

 

92

 

93

 

91

 

94

 

95

 

96

 

97

 

37

 

V

 

Λ

 

V

 

Λ

 

V

 

Λ

 

Λ

 

Λ

 

V

 

V

 

Λ

 

Λ

 

Λ

 

Λ

 

1

 

2

 

3

 

4

 

9

 

10

 

12

 

16

 

13

 

14

 

17

 

18

 

15

 

11

 

6

 

7

 

8

 

5

 


background image

 

 

 
 

157 

 

Рис.

 

6.18

 

 

Окончательная

 

функциональная

 

диаграмма

 

команды

 

DISPLAY

 

Третьим

 

шагом

 

является

 

генерация

 

таблицы

 

решений

 

с

 

ограниченными

 

входами.

 

В

 

таблице

 

решений

 

причины

 

есть

 

ус-

ловия,

 

а

 

следствия

 

есть

 

действия.

 

Процедура

 

генерации

 

заклю-

чается

 

в

 

следующем:

 

 

1.

 

Выбрать

 

некоторое

 

следствие,

 

которое

 

должно

 

быть

 

в

 

состоянии

 

1.

 

31

 

32

 

36

 

35

 

33

 

34

 

38

 

39

 

40

 

92

 

93

 

91

 

94

 

95

 

96

 

97

 

37

 

V

 

Λ

 

V

 

Λ

 

V

 

Λ

 

Λ

 

Λ

 

V

 

V

 

Λ

 

Λ

 

Λ

 

Λ

 

E

 

R

 

R

 

R

 

R

 

R

 

R

 

R

 

R

 

R

 

R

 

R

 

R

 

R

 

R

 

R

 

R

 

R

 

R

 

1

 

2

 

3

 

4

 

9

 

10

 

12

 

16

 

13

 

14

 

17

 

18

 

15

 

11

 

6

 

7

 

8

 

5

 


background image

 

 

 
 

158 

 

2.

 

Найти

 

все

 

комбинации

 

причин

 

 

учетом

 

ограничений),

 

которые

 

установят

 

это

 

следствие

 

в

 

1,

 

прокладывая

 

из

 

этого

 

следствия

 

обратную

 

трассу

 

через

 

диаграмму.

 

 

3.

 

Построить

 

столбец

 

в

 

таблице

 

решений

 

для

 

каждой

 

комбинации

 

причин.

 

 

4.

 

Для

 

каждой

 

комбинации

 

причин

 

определить

 

состояния

 

всех

 

других

 

следствий

 

и

 

поместить

 

их

 

в

 

соответст-

вующий

 

столбец

 

таблицы

 

решений.

 

При

 

выполнении

 

этого

 

шага

 

необходимо

 

руководство

-

ваться

 

тремя

 

положениями:

 

 

1.

 

Если

 

обратная

 

трасса

 

прокладывается

 

через

 

узел

 

или,

 

выход

 

которого

 

должен

 

принимать

 

значение

 

1,

 

то

 

од-

новременно

 

не

 

следует

 

устанавливать

 

в

 

1

 

более

 

одного

 

входа

 

в

 

этот

 

узел.

 

Такое

 

ограничение

 

на

 

установку

 

входных

 

значений

 

называется

 

чувствительностью

 

пу-

ти.

 

Цель

 

данного

 

правила

 

 

избежать

 

пропуска

 

от-

дельных

 

ошибок

 

из-за

 

того,

 

что

 

одна

 

причина

 

маски-

руется

 

другой.

 

 

2.

 

Если

 

обратная

 

трасса

 

прокладывается

 

через

 

узел

 

и,

 

вы-

ход

 

которого

 

должен

 

принимать

 

значение

 

0,

 

то

 

все

 

комбинации

 

входов,

 

приводящие

 

выход

 

в

 

0,

 

должны

 

быть

 

перечислены.

 

Однако

 

когда

 

исследуется

 

ситуа-

ция,

 

где

 

один

 

вход

 

есть

 

0,

 

а

 

один

 

или

 

более

 

других

 

входов

 

есть

 

1,

 

не

 

обязательно

 

перечислять

 

все

 

условия,

 

при

 

которых

 

остальные

 

входы

 

могут

 

быть

 

1.

 

 

3.

 

Если

 

обратная

 

трасса

 

прокладывается

 

через

 

узел

 

и,

 

вы-

ход

 

которого

 

должен

 

принимать

 

значение

 

0,

 

то

 

необхо

-

димо

 

указать

 

лишь

 

одно

 

условие,

 

согласно

 

которому

 

все

 

входы

 

являются

 

нулями.

 

Когда

 

узел

 

и

 

находится

 

в

 

середине

 

графа

 

и

 

его

 

входы

 

исходят

 

из

 

других

 

проме-

жуточных

 

узлов,

 

может

 

существовать

 

чрезвычайно

 

большое

 

число

 

ситуаций,

 

при

 

которых

 

все

 

его

 

входы

 

принимают

 

значения

 

0.

 

Эти

 

положения

 

кратко

 

поясняются

 

рис.

 

6.19.

 


background image

 

 

 
 

159 

 

Рис.

 

6.19

 

 

Положения,

 

используемые

 

при

 

прокладке

                            

обратной

 

трассы

 

через

 

диаграмму

 

Рис.

 

6.20

 

приведен

 

в

 

качестве

 

примера

 

функциональной

 

диаграммы.

 

Пусть

 

требуется

 

так

 

задать

 

входные

 

условия,

 

чтобы

 

установить

 

выходное

 

состояние

 

в

 

0.

 

Согласно

 

положению

 

3

 

следует

 

рассматривать

 

только

 

один

 

случай,

 

когда

 

узлы

 

5

 

и

 

6

 

 

нули.

 

По

 

положению

 

2,

 

для

 

состояния,

 

при

 

котором

 

узел

 

5

 

принимает

 

значение

 

1,

 

а

 

узел

 

6

 

 

значение

 

0,

 

следует

 

рас-

сматривать

 

только

 

один

 

случай,

 

когда

 

узел

 

5

 

принимает

 

значе-

ние

 

1

 

(не

 

перечисляя

 

другие

 

возможные

 

случаи,

 

когда

 

узел

 

5

 

может

 

принимать

 

значение

 

1).

 

Аналогично

 

для

 

состояния,

 

при

 

котором

 

узел

 

5

 

принимает

 

значение

 

0,

 

а

 

узел

 

6

 

 

значение

 

1,

 

следует

 

рассматривать

 

толь-

ко

 

один

 

случай,

 

когда

 

узел

 

6

 

принимает

 

значение

 

1

 

(хотя

 

в

 

дан-

ном

 

случае

 

он

 

является

 

единственным).

 

В

 

соответствии

 

с

 

поло-

жением

 

1,

 

если

 

узел

 

5

 

должен

 

быть

 

установлен

 

в

 

состояние

 

1,

 

то

 

не

 

рекомендуется

 

устанавливать

 

узлы

 

1

 

и

 

2

 

в

 

состояние

 

1

 

одновременно.

 

Таким

 

образом,

 

возможны

 

пять

 

состояний

 

узлов

 

1—4,

 

например

 

значения

 

0

 

0

 

0

 

0

 

(5

 

=

 

0,

 

6

 

=

 

0),

 

1

 

0

 

0

 

0

 

(5

 

=

 

1,

 

6

 

=

 

0),

 

1

 

0

 

0

 

1

 

(5

 

=

 

1,

 

6

 

=

 

0),

 

1

 

0

 

1

 

0

 

(5

 

=

 

1,

 

6

 

=

 

0),

 

0

 

0

 

1

 

1

 

(5

 

=

 

0,

 

6

 

=

 

1),

 

Ситуация

 

Состояние

 

1

 

2

 

3

 

4

 

a

 

b

 

x

 

a

 

c

 

x

 

b

 

V

 

Λ

 

1.

 

Если

 

X

 

должен

 

быть

 

равен

 

1,

 

то

 

не

 

следует

 

рассматривать

 

ситуацию,

 

где

 

a

 = 

b

 = 

1

 

(положение

 

1).

 

2.

 

Если

 

X

 

должен

 

быть

 

равен

 

0,

 

то

 

перечислить

 

все

 

ситуации,

 

где

 

a

 = 

b

 = 

0.

 

3.

 

Если

 

X

 

должен

 

быть

 

равен

 

1,

 

то

 

перечислить

 

все

 

ситуации,

 

где

 

a

 = 

b

 = 

c

 = 

1.

 

4.

 

Если

 

X

 

должен

 

быть

 

равен

 

0,

 

то

 

рассматриваем

 

только

 

одну

 

ситуацию,

 

где

 

a

 = 

b

 = 

c

 = 

0

 

(положение

 

3).

 

Для

 

состояний

 

a,

 

b

 

и

 

c

 

001,

 

010,

 

100,

 

011,

 

101

 

и

 

110

 

рассмотреть

 

только

 

одну,

 

любую

 

из

 

этих

 

ситуаций

 

(поло-

жение

 

2).

 


background image

 

 

 
 

160 

а

 

не

 

13,

 

которые

 

приводят

 

к

 

выходному

 

состоянию

 

0.

 

 

Рис.

 

6.20

 

 

Пример

 

функциональной

 

диаграммы

                                  

для

 

иллюстрации

 

обратной

 

трассировки

 

На

 

первый

 

взгляд,

 

эти

 

положения

 

могут

 

показаться

 

не-

объективными,

 

но

 

они

 

преследуют

 

важную

 

цель:

 

уменьшить

 

комбинаторику

 

диаграммы.

 

Их

 

применение

 

позволяет

 

избежать

 

ситуаций,

 

которые

 

приводят

 

к

 

получению

 

малорезультативных

 

тестов.

 

Если

 

не

 

исключать

 

малорезультативные

 

тесты,

 

то

 

общее

 

число

 

тестов,

 

порождаемых

 

по

 

большой

 

функциональной

 

диа-

грамме,

 

получается

 

астрономическим.

 

Если

 

же

 

и

 

без

 

них

 

число

 

тестов

 

все

 

еще

 

оказывается

 

большим,

 

то

 

выбирается

 

некоторое

 

подмножество

 

тестов,

 

при

 

этом

 

не

 

гарантируется,

 

что

 

малоре

-

зультативные

 

тесты

 

будут

 

исключены.

 

Поэтому

 

самое

 

лучшее

 

 

исключить

 

их

 

в

 

процессе

 

анализа

 

диаграммы.

 

 

Рис.

 

6.21

 

 

Первая

 

половина

 

результирующей

 

таблицы

 

решений

 

 

1

 

2

 

3

 

4

 

5

 

6

 

7

 

8

 

9

 

10

 

11

 

12

 

13

 

14

 

15

 

16

 

17

 

18

 

19

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

2

 

1

 

0

 

0

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

3

 

0

 

1

 

0

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

4

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

 

0

 

0

 

1

 

1

 

1

 

1

 

5

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

1

 

 

6

 

1

 

1

 

1

 

0

 

1

 

1

 

1

 

 

 

 

1

 

1

 

 

 

1

 

1

 

 

 

 

7

 

 

 

 

0

 

 

 

 

1

 

1

 

1

 

 

 

1

 

 

 

 

1

 

 

 

8

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

9

 

1

 

1

 

1

 

 

1

 

0

 

0

 

 

 

 

0

 

1

 

 

 

1

 

1

 

 

 

 

10

 

1

 

1

 

1

 

 

0

 

1

 

0

 

 

 

 

1

 

1

 

 

 

1

 

1

 

 

 

 

11

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

0

 

1

 

 

 

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

13

 

 

 

 

 

 

 

 

1

 

0

 

0

 

 

 

1

 

 

 

 

1

 

 

 

14

 

 

 

 

 

 

 

 

0

 

1

 

0

 

 

 

1

 

 

 

 

1

 

 

 

15

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

0

 

 

 

16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0

 

18

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

91

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

92

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

1

 

1

 

1

 

1

 

0

 

0

 

0

 

0

 

93

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

1

 

1

 

0

 

0

 

94

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

1

 

1

 

95

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

96

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

97

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

Λ

 

1

 

5

 

6

 

7

 

2

 

3

 

4

 

V

 

V