Калайда В.Т., Романенко В.В. Технология разработки программного обеспечения (2007) (1095890), страница 23
Текст из файла (страница 23)
6.10. Отметим, что здесь создан промежуточный узел 11.171V211Λ37072Рис. 6.10 — Пример функциональнойдиаграммыНа рис. 6.11 показана эквивалентная логическая схема.371V12Λ7072147Рис. 6.11 — Логическая схема, эквивалентнаядиаграмме на рис. 6.10Хотя диаграмма отображает спецификацию, она содержатневозможную комбинацию причин — причины 1 и 2 не могутбыть установлены в 1 одновременно. В большинстве программопределенные комбинации причин невозможны из-за синтаксических или внешних ограничений (например, символ не можетпринимать значения «А» и «В» одновременно).ИсключаетВключаетaEaIbbcТребуетОдно и только одноaOaRbbРис.
6.12 — Символы ограниченийВ этом случае используются дополнительные логическиеограничения, изображенные на рис. 6.12. Ограничение E устанавливает, что E должно быть истинным, если хотя бы одна изпричин — a или b — принимает значение 1 (a и b не могут принимать значение 1 одновременно). Ограничение I устанавливает, что, по крайней мере, одна из величин a, b или c всегдадолжна быть равной 1 (a, b и c не могут принимать значение0 одновременно). Ограничение O устанавливает, что одна итолько одна из величин a или b должна быть равна 1.
Ограничение R устанавливает, что если a принимает значение 1, то и bдолжно быть равно 1 (т.е. невозможно, чтобы a было равно 1, аb — 0).148aMbРис. 6.13 — Символ для скрытого ограниченияЧасто возникает необходимость в ограничениях для следствий. Ограничение M на рис. 6.13 устанавливает, что еслиследствие a имеет значение 1, то следствие b должно иметь значение 0.Как видно из рассмотренного выше примера, физическиневозможно, чтобы причины 1 и 2 присутствовали одновременно, но возможно, чтобы присутствовала одна из них.
Следовательно, они связаны ограничением E (рис. 6.14.).1E71V2311Λ7072Рис. 6.14 — Пример функциональной диаграммыс ограничением «исключает»Проиллюстрируем использование функциональных диаграмм для получения тестов. С этой целью воспользуемся спецификацией на команду отладки в интерактивной системе.Команда DISPLAY используется для того, чтобы отобразить на экране распределение памяти. Синтаксис команды показан на рис. 6.15. Скобки представляют альтернативные необязательные операнды. Прописные буквы обозначают ключевыеслова операндов, а буквы с предшествующими точками — значения операндов (т.е.
действительные значения операндов, которые должны быть подставлены). Подчеркнутые операнды соответствуют стандартным значениям (т.е. если операнд опущен,то принимается стандартное значение).149DISPLAY адрес 10адрес2ENDсчетчикбайтов1Рис. 6.15 — Синтаксис команды DISPLAYПервый операнд (адрес 1) определяет адрес первого байтаобласти памяти, содержимое которой должно быть отображенона экран. Длина адреса задается 1—6 шестнадцатеричнымицифрами (0—9, А—F).
Если первый операнд не определен, топредполагается, что адрес равен 0. Адрес должен приниматьзначение из действительной области памяти машины.Второй операнд определяет объем памяти, который должен быть отображен. Если адрес 2 определен, то он, в своюочередь, определяет адрес последнего байта области памяти,которую необходимо отобразить на экран.
Длина этого адресазадается также 1—6 шестнадцатеричными цифрами. Он долженбыть больше или равен начальному адресу (адрес 1). Аналогично, адрес 2 обязан принимать значения из действительной области памяти машины. Если в качестве второго операнда определено END, то память отображается до последнего действительного адреса машины. Если же в качестве операнда определенсчетчик байтов, то он, в свою очередь, определяет числобайтов памяти, которые нужно отобразить (начиная с байта садресом адрес 1).
Операнд счетчик байтов является шестнадцатеричным целым числом (длиной от одной до шести цифр).Сумма значений операндов счетчик байтов и адрес 1 не должна превышать действительного размера памяти плюс единица, асчетчик байтов должен, по крайней мере, иметь значение 1.Состояние памяти отображается на экран терминала в виде одной или нескольких строк следующего формата:хххххх = слово 1 слово 2 слово 3 слово 4,где хххххх есть шестнадцатеричный адрес слова 1.Всегда отображается полное число слов (четырехбайтовых последовательностей, где адрес первого байта в слове кратен четырем), независимо от значения операнда адрес 1 или150отображаемого объема памяти.
Все выходные строки всегда содержат четыре слова (16 байт). Первый байт отображаемой области памяти находится в пределах первого слова.Могут иметь место следующие сообщения об ошибках:M1 – НЕПРАВИЛЬНЫЙ СИНТАКСИС КОМАНДЫM2 – ЗАПРАШИВАЕТСЯ АДРЕС, БОЛЬШИЙ ДОПУСТИМОГОMЗ – ЗАПРАШИВАЕТСЯ ОБЛАСТЬ ПАМЯТИ С НУЛЕВЫМ ИЛИОТРИЦАТЕЛЬНЫМ АДРЕСОМПримеры команды DISPLAY:DISPLAYотображает первые четыре слова в памяти (стандартное значение начального адреса 0, а стандартное значение счетчикабайтов 1).DISPLAY 77Fотображает слово, содержащее байт с адресом 77F, и три последующих слова.DISPLAY 77F – 407Aотображает слова, содержащие байты с адресами от 77F до407А.DISPLAY 77F.6отображает слова, содержащие шесть байт, начиная с адреса77F.DISPLAY 50FF – ENDотображает слова, содержащие байты с адреса 50FF до концапамяти.Первый шаг заключается в тщательном анализе спецификации с тем, чтобы идентифицировать причины и следствия.Причинами являются:1.
Наличие первого операнда.2. Операнд адрес 1 содержит только шестнадцатеричныецифры.3. Операнд адрес 1 содержит от одного до шести символов.4. Операнд адрес 1 находится в пределах действительнойобласти памяти.5. Второй операнд есть END.1516.7.8.9.Второй операнд есть адрес 2.Второй операнд есть счетчик байтов.Второй операнд отсутствует.Операнд адрес 2 содержит только шестнадцатеричныецифры.10. Операнд адрес 2 содержит от одного до шести символов.11. Операнд адрес 2 находится в пределах действительнойобласти памяти.12. Операнд адрес 2 больше или равен операнду адрес 1.13.
Операнд счетчик байтов содержит только шестнадцатеричные цифры.14. Операнд счетчик байтов содержит от одного до шестисимволов.15. Счетчик байтов + адрес 1 размер памяти + 1.16. Счетчик байтов 1.17. Запрашиваемая область памяти настолько велика, чтотребуется много строк на экране.18. Начало области не выровнено на границу слова.Каждой причине соответствует произвольный единственный номер. Заметим, что для описания второго операнда необходимы четыре причины (5—8), так как второй операнд можетпринимать значения 1) END, 2) адрес 2, 3) счетчик байтов,4) может отсутствовать и 5) неопределенное значение, т.е. ниодно из указанных выше.Следствия:91. На экран отображается сообщение M1.92.
На экран отображается сообщение M2.93. На экран отображается сообщение M3.94. Память отображается на одной строке.95. Для отображения состояния памяти требуется многострок.96. Первый байт отображаемой области памяти выровненна границу слова.97. Первый байт отображаемой области памяти не выровнен на границу слова.Второй шаг — разработка функциональной диаграммы.Узлы причин перечислены по вертикали у левого краястраницы; узлы следствий собраны по вертикали у ее правого152края.
Тщательно анализируется семантическое содержание спецификации с тем, чтобы связать причины и следствия (т.е. показать, при каких условиях имеет место следствие).На рис. 6.16 приведена начальная версия диаграммы.Промежуточный узел 32 представляет синтаксически правильный первый операнд, узел 35 — синтаксически правильныйвторой операнд, а узел 36 — синтаксически правильную команду. Если значение узла 36 есть 1, то следствие 91 (сообщение об ошибке) отсутствует.
Если значение узла 36 есть 0, тоследствие 91 имеет место.На рис. 6.17 изображена полная функциональная диаграмма. Если диаграмму на рис. 6.17 непосредственно использоватьдля построения тестов, то создание многих из них на самомделе окажется невозможным. Это объясняется тем, что определенные комбинации причин не могут иметь место из-за синтаксических ограничений.1531332V2Λ31Λ36914592V6783593Λ339941011121395Λ3496141597161718Рис. 6.16 — Начальная версия функциональной диаграммыкоманды DISPLAYНапример, причины 2 и 3 не могут присутствовать безпричины 1.
Причина 4 не может присутствовать, если нет причин 2 и 3. На рис. 6.18 показана окончательная диаграмма совсеми дополнительными ограничениям. Заметим, что можетприсутствовать только одна из причин 5, 6, 7 или 8. Другиеограничения причин являются условиями типа «требует». Причина 17 (много строк на экране) и причина 8 (второй операндотсутствует) связаны отношением не; причина 17 может присутствовать только в отсутствии причины 8.1541332V2Λ31V36Λ37914592V635Λ397893ΛV4033Λ910Λ111294VΛ349538Λ13961415Λ97161718Рис. 6.17 — Полная функциональная диаграмма без ограничений1551RRR332V2Λ31V36Λ3791R4592V6E35Λ78RRRR93ΛV4033Λ910RRRRRVΛ349538Λ13R RR94Λ1112R399614R15Λ97161718Рис.