Команды этой группы позволяют изменять последовательность выполнения команд программы. Существуют два способа изменения этой последовательности. Первый из них называется безусловным. Согласно этому способу последовательность выполнения программы подвергается изменению всякий раз, когда реализуется определенная команда. В соответствие со вторым способом последовательность выполнения команд программы определяется некоторыми условиями, т.е. изменяется только в том случае, когда значение указанного условия совпадает с заданным.
Команды перехода и вызова подпрограмм являются одной из составных частей процесса принятия решений. В результате выполнения команд арифметической и логической обработки данных вырабатываются значения признаков в регистре состояния. Команды перехода и вызова подпрограмм проверяют значения разрядов регистра состояния и определяют последующий ход выполнения программ в зависимости от результата проверки
Команды перехода, называемые также командами ветвления, позволяют организовать в программах циклы и разветвления.
Как стать ПО программистом? — Ответ профессионала
Команды вызова подпрограмм дают возможность сократить объем разрабатываемых программ за счет повторного использования подпрограмм. Наличие в МП стека с указателем стека делает возможным возврат в главную программу после выполнения подпрограммы.
Команды переходов
Эти команды занимают в оперативной памяти 3 байта и выполняются за 3 машинных цикла (10 тактов). Во всех этих командах применяется прямая адресация.
При выполнении команды перехода изменяется содержимое счетчика команд PC. Содержимое второго и третьего байтов команды перехода пересылается автоматически в счетчик команд во время фазы выполнения. Тогда при очередном цикле выборки МП извлекает команду из области памяти, на которую указывает 2-й и 3-й байты команды перехода.
Таким образом, происходит переход в другую точку программы. Теперь выполняются одна за другой команды новой последовательности. Это продолжается до тех пор, пока не будет опять выполнена команда перехода.
а) Переход безусловный
JMP Адрес | (PC) < B3> < B2>B1 |
B2 | Мл. байт адреса |
B3 | Ст. байт адреса |
7 0 |
После этой команды выполнение программы продолжается с новой исходной точки, т.е. с адреса, содержащегося в байтах В2 и ВЗ команды перехода.
б) Переходы условные
(PC) < B3>< B2>, если проверяемое условие выполняется; в противном случае PC (PC )+3, т.е. выполняется следующая команда после команды условного перехода | B1 | ССС |
B2 | Мл. байт адреса | |
B3 | Ст. байт адреса | |
7 0 |
Значение разрядов ССС команда выбирается в зависимости от проверяемого условия. В МП К580 имеется возможность делать переходы в зависимости от результата проверки следующих условий:
План Как Стать Программистом (в 2023)
Команда перехода | Проверяемое условие | Значение ССС |
JNZ Адрес | (Tz) = 0 | |
JZ Адрес | (Tz) = 1 | |
JNC Адрес | (Tc) = 0 | |
JC Адрес | (Tc) = 1 | |
JPO Адрес | (Tp) = 0 | |
JPE Адрес | (Tp) = 1 | |
JP Адрес | (Ts) = 0 | |
JM Адрес | (Ts) = 1 |
beep: 0A76
Адрес/ регистр | Код до выполнения операции | Код после выполнения операции |
C3 | C3 | |
0A | 0A | |
PC | 0A76 | |
FL |
beep: 0B43
Адрес/регистр | Код до выполнения операции | Код после выполнения операции |
0A58 | C3 | C3 |
0A59 | ||
0A5A | 0B | 0B |
PC | 0A58 | 0B43 |
FL |
0921) JNZ L0
Адрес/регистр | Код до выполнения операции | Код после выполнения операции |
C2 | C2 | |
0A | 0A | |
PC | 0A42 | |
FL | 02 (TZ=0) |
Адрес/ регистр | Код до выполнения операции | Код после выполнения операции |
C2 | C2 | |
FE | FE | |
PC | ||
FL | 42 (TZ=1) |
Адрес/ регистр | Код до выполнения операции | Код после выполнения операции |
DA | DA | |
0A | 0A | |
PC | 0A42 | |
FL | 03 (TC=1) |
Адрес/регистр | Код до выполнения операции | Код после выполнения операции |
DA | DA | |
0A | 0A | |
PC | ||
FL | 02 (TC=0) |
Команды вызова подпрограмм и возврата из подпрограмм
С помощью команд переходов последовательность выполнения команд программы может быть изменена путем перехода к новой последовательности. Однако команда перехода сама по себе не позволяет вернуться в то место главной программы, откуда был осуществлен переход. Это можнолегко сделать с помощью команды вызова подпрограммы.
Подпрограмма представляет собой фрагмент программы, обращение к которой может иметь место в любой точке главной программы. Когда происходит вызов подпрограммы, то в начале своего выполнения она реализует действия по запоминанию текущего содержимого счетчика команд (точка возврата) Когда выполнение подпрограммы заканчивается, то с помощью команды возврата микропроцессору указывается, что исходное содержимое счетчика команд должно быть извлечено из памяти. Этой информации микропроцессору достаточно, чтобы осуществить возврат в прерванную последовательность команд главной программы. Для запоминания точки возврата используется стек, куда записывается адрес команды, следующей за командой вызова подпрограммы.
Команды данной группы не изменяют содержимого регистра признаков.
а) Вызов подпрограммы безусловный
CALL Адрес | [SP-1] [SP-2] (PC) |
SP (SP) -2 | Мл. байт адреса |
PC < B3> < B2> | Ст. байт адреса |
7 0 |
При выполнении этой команды никаких проверок не производится, т.е. вызов подпрограммы производится в любом случае. Команда занимает три байта и выполняется за 5 машинных циклов (17 тактов).
б) Условный вызов подпрограммы
Переход к подпрограмме происходит только в том случае, если выполняется проверяемое условие. При этом:
[SP-1] [SP-2] (PC); SP (SP) –2; PC < B3>
В этом случае команда выполняется за 5 циклов (17 тактов).
Если проверяемое условие не выполняется, то переход к подпрограмме не происходит и выполняется следующая команда программы с адресом PC = (PC) +3. В этом случае команда выполняется за 3 цикла (11 тактов).
Формат команды условного вызова | B1 | ССС |
B2 | Мл. байт адреса | |
B3 | Ст. байт адреса | |
7 0 |
Значение разрядов ССС выбирается в зависимости от проверяемого условия:
Команда вызова | Проверяемое условие | Значение ССС |
СNZ Адрес | (Tz) = 0 | |
СZ Адрес | (Tz) = 1 | |
СNC Адрес | (Tc) = 0 | |
СC Адрес | (Tc) = 1 | |
СPO Адрес | (Tp) = 0 | |
СPE Адрес | (Tp) = 1 | |
СP Адрес | (Ts) = 0 | |
СM Адрес | (Ts) = 1 |
в) Возврат из подпрограммы безусловный
RET | PC [SP] [SP+1]; SP (SP) + 2 |
7 0 |
Команда выполняется за три машинных цикла (10 тактов).
г) Возврат из подпрограммы условный
Команда условного возврата из подпрограммы | CCC |
Если проверяемое условие выполняется, тоPC [SP] [SP-1]; SP (SP) + 2 и происходит выход из подпрограммы в точку, адрес которой записан в стеке. В этом случае команда выполняется за три машинных цикла (11 тактов). Если это условие не выполняется, то возврата не происходит и выполняется следующая команда подпрограммы, т.е.
В этом случае команда выполняется в течение одного машинного цикла (5 тактов).
Значение разрядов ССС команды определяется проверяемым условием:
Команда возврата | Проверяемое условие | Значение ССС |
RNZ | (Tz) = 0 | |
RZ | (Tz) = 1 | |
RNC | (Tc) = 0 | |
RC | (Tc) = 1 | |
RPO | (Tp) = 0 | |
RPE | (Tp) = 1 | |
RP | (Ts) = 0 | |
RM | (Ts) = 1 |
При выполнении команд возврата в) и г) МП извлекает из стека значение программного счетчика, при котором произошел переход из программы предыдущего уровня и загружает это значение в счетчик команд. Команде «возврат из подпрограммы» ничего не сообщается относительно того, какого уровня вложения выполняется подпрограмма и сколько раз происходил вызов этой подпрограммы. Выполняя эту команду, МП просто возвращается к тому значению программного счетчика, которое было последним загружено в стек.
Адрес/ регистр | Код до выполнения операции | Код после выполнения операции |
0AF3 | CD | CD |
0AF4 | C0 | C0 |
0AF5 | 0B | 0B |
PC | 0AF3 | 0BC0 |
SP | 0BB0 | 0BAE |
0BAE | F6 | |
0BAF | 0A | |
FL |
Адрес/ регистр | Код до выполнения операции | Код после выполнения операции |
0BD4 | C9 | C9 |
SP | 0BAE | 0BB0 |
0BAE | F6 | F6 |
0BAF | 0A | 0A |
PC | 0BD4 | 0AF6 |
FL |
Адрес/ регистр | Код до выполнения операции | Код после выполнения операции |
0A12 | E4 | E4 |
0A13 | FE | FE |
0A14 | 0A | 0A |
SP | 0BAE | 0BAC |
0BAD | ||
0BAC | 0A | |
PC | 0A12 | 0AFE |
FL | 02 (TP=0) |
Адрес/ регистр | Код до выполнения операции | Код после выполнения операции |
F4 | F4 | |
0C | 0C | |
SP | 0BAC | 0BAC |
PC | ||
FL | 82 (TS=1) |
Адрес/регистр | Код до выполнения операции | Код после выполнения операции |
DC | DC | |
SP | 0BB0 | OBAE |
0BAF | ||
0BAE | ||
PC | ||
FL | 03 (TC=1) |
Команды ввода – вывода
Эти команды обеспечивают передачу данных между аккумулятором МП и внешним устройством, 8-ми разрядный адрес которого приводится во втором байте команды. Таким образом, с помощью команд ввода-вывода можно передавать данные к 256=2 8 портам вывода и принимать данные от 256 портов ввода.
После того, как команда будет выбрана полностью, адрес внешнего устройства передается из МП на ША по восьми младшим линиям и таким образом обеспечивает передачу данных между МП и адресуемым внешним устройством. Следует иметь в виду, что 8-разрядный адрес внешнего устройства дублируется и передается также по восьми старшим линиям ША.
Команды выполняются за три машинных цикла (10 тактов). При выполнении команд значения триггеров признаков не изменяется.
Источник: lektsia.com
6. Основные стадии выполнения команды
Время, затрачиваемое на получение работоспособной программы ЭВМ, резко сокращается, если программист хорошо представляет, как выполняются отдельные машинные команды, и использует эти знания при отладке программы. Подробные сведения о процессах, происходящих в базовой ЭВМ во время выполнения отдельных команд, приведены в параграфах 2 — 4, а здесь кратко рассмотрим лишь те из них, знание которых позволяет быстрее локализовать ошибки при исполнении отлаживаемой программы.
В процессе исполнения машинных команд устройство управления ЭВМ производит анализ и пересылку команды, отдельных ее частей (кода операции, признака адресации и адреса) или операнда из одного регистра машины в другой ее регистр, АЛУ, память или устройство ввода-вывода.
Эти действия (микрооперации) протекают в определенной временной последовательности и скоординированы между собой. Для создания временной последовательности используется генератор тактовых импульсов (импульсов с частотой в несколько МГц).
Цикл команды. Для реализации одной команды требуется выполнить определенное количество микрокоманд, каждая из которых инициирует одновременное осуществление одной или нескольких микроопераций за время одного рабочего такта ЭВМ. Общее число тактовых импульсов (микрокоманд), требуемых для выполнения команды, определяет время ее выполнения, называемое циклом команды (рис. 8). Цикл команды обычно включает один или несколько машинных циклов.
Устройство управления базовой ЭВМ может находиться в четырех возможных состояниях: выборки команды, выборки адреса, исполнения и прерывания. Длительность каждого из этих четырех состояний определяет время выполнения соответствующего машинного цикла. Каждый машинный цикл предназначен для определенной цели.
Выборка команды. В данном машинном цикле выполняются чтение команды из памяти, ее частичное декодирование и иногда исполнение (для безадресных команд и команд ввода-вывода, являющихся одноцикловыми командами):
1) содержимое ячейки памяти, указываемой счетчиком команд, читается из памяти в регистр данных (см. рис. 3, а, б);
- содержимое счетчика команд увеличивается на единицу (см. рис. 3, б, в);
- содержимое регистра данных пересылается в регистр команд (см. рис. 3, г), код операции команды частично декодируется для выяснения типа команды (адресная, безадресная или ввода-вывода), анализируется бит признака адресации и происходит подготовка цепей, необходимых для выполнения команды;
- если выбрана адресная команда, то осуществляется переход к микрокомандам следующего машинного цикла; в противном случае выполняются действия по завершению одноцикловой команды.
На рис. 9, а, б показаны действия, выполняемые в конце цикла выборки для одноцикловой команды СМА, инвертирующей содержимое аккумулятора (5). Выборка адреса. Это состояние (этот машинный цикл) следует за выборкой команды для адресных команд с косвенной адресацией (бит вида адресации равен единице). Состояние используется для чтения адреса опeранда (адреса результата или перехода) из памяти и состоит из следующих шагов:
- адресная часть команды пересылается из регистра данных (где пока еще сохраняется копия команды) в регистр адреса (рис. 10, а);
содержимое ячейки памяти, указываемой регистром адреса, читается в регистр данных (рис. 10,6); теперь в этом регистре находится адрес операнда (адрес результата или перехода), который будет использоваться при выполнении команды (в цикле исполнения).
Для иллюстрации действий, осуществляемых в этом машинном цикле, выбрана команда ADD (21), расположенная в ячейке 43. После выборки в регистре данных и регистре команд хранится сама команда (4821): четыре старших разряда — код операции (0100)2, затем признак адресации (1)2 и, наконец, адрес (000 0010 0001)2= (21)16. В счетчике команд записан адрес следующей команды (44), в аккумуляторе — результат предыдущих операций (7) и в 11-разрядном регистре адреса — адрес исполняемой команды (43). В начале цикла выборки адреса содержимое регистра адреса заменяется на 11 младших разрядов регистра данных (рис. 10, а), т. е. на адрес адреса операнда, а затем в регистр данных считывается сам адрес операнда (рис. 10,6). Если косвенно адресуется одна из индексных ячеек (ячеек с номерами от 008 до 00F), то цикл выборки адреса операнда (результата) продолжается:
- содержимое регистра данных увеличивается на единицу (рис. 10, е, г);
- измененное содержимое регистра данных пересылается в ячейку памяти по адресу, указываемому регистром адреса (рис. 10, д);
- содержимое регистра данных уменьшается на 1 (рис. 10, д, е).
После этой операции в регистре данных восстанавливается значение адреса, находившегося в индексной ячейке до выполнения шага 3. Содержимое же индексной ячейки увеличилось на единицу, и при следующем обращении к ней будет выбран новый адрес операнда (результата). Для иллюстрации шагов 3, 4 и 5 выбрана команда ADD (8), также расположенная в ячейке 43. Поэтому два первых шага по выборке адреса операнда (результата) будут очень похожи на аналогичные действия при выполнении команды ADD (21), которые показаны на рис. 10, а, б. Различие лишь в том, что в регистрах данных и команд первоначально сохранялась команда ADD (8) вместо ADD (21) и, следовательно, регистр адреса указывает на ячейку 8 (а не на ячейку 21). Исполнение. Последовательность действий, выполняемых в этом цикле, определяется типом выполняемой адресной команды. A. Для команд, при выполнении которых требуется выборка операнда из памяти ЭВМ (AND, ADD, ADC, SUB, ISZ), состояние исполнения используется для чтения операнда в регистр данных и выполнения операции, указываемой кодом операции команды. Пример цикла исполнения для команды ADD 21 подробно рассмотрен на рис. 3, д — 3, з. И хотя на рис. 3 иллюстрировалось выполнение команды сложения с прямой адресацией, оба цикла (выборки и исполнения) будут совершенно такими же и при сложении с косвенной адресацией. В последнем случае между этими циклами будет выполнен цикл выборки адреса операнда, и этот адрес, так же, как и при прямой адресации, будет помещен в регистр данных. Б. По команде пересылки (MOV) в этом машинном цикле производится запись содержимого аккумулятора в ячейку памяти с адресом, расположенным в регистре данных, для чего содержимое регистра данных пересылается в регистр адреса, а содержимое аккумулятора — в регистр данных и далее в ячейку памяти, указываемую регистром адреса. B. При исполнении команд переходов (BCS, BPL, BMI, BEQ) производятся проверка соответствующего условия (1 в регистре переноса, 0 в знаковом разряде аккумулятора и т. п.) и пересылка адреса из регистра данных в счетчик команд при выполнении этого условия. Если исполняется команда безусловного перехода (BR), то пересылка адреса перехода в счетчик команд осуществляется без какой-либо проверки. Следовательно, при выполнении условия, определяемого кодом операции команды, или при выполнении команды BR следующей будет выбираться команда из ячейки памяти с адресом, расположенным в регистре данных (адресом, расположенным в исполняемой команде или выбранным из ячейки, на которую указывает этот адрес). В противном случае будет выбрана команда, расположенная вслед за исполняемой. Г. Для команды обращения к подпрограмме (JSR) во время этого машинного цикла осуществляются пересылка содержимого счетчика команд в ячейку памяти, адрес которой содержится в регистре данных, и занесения в счетчик команд увеличенного на единицу содержимого регистра данных. Эти действия иллюстрируются на примере выполнения команды JSR 30 (рис. 11). Здесь в качестве регистра для временного хранения адреса первой команды подпрограммы служит регистр команд, содержимое которого после декодирования команды уже не используется устройством управления. Сначала адресная часть команды пересылается из регистра данных в регистр адреса (рис. 11, а). Затем этот же адрес наращивается на единицу (формируется адрес первой команды подпрограммы) и пересылается на временное хранение в регистр команд (рис. 10, б). Потом содержимое счетчика команд (адрес команды, которая должна выполняться после возврата из подпрограммы) пересылается в регистр данных (рис. 2.10, в) и далее в ячейку памяти, указываемую регистром адреса (рис. 10, г). Наконец, в счетчик команд переписывается из регистра команд адрес первой команды подпрограммы (рис. 10, г). Таким образом организуются переход к выполнению команд подпрограммы (начиная с команды в ячейке 31) и запоминание (перед первой ее командой) адреса возврата из подпрограммы. Когда в конце подпрограммы будет выполнена команда BR (30), то в счетчик команд попадет адрес 21, сохраняемый в ячейке 30, и машина продолжит выполнение команд, расположенных за командой JSR 30. Как было указано в начале параграфа, время отладки машинных программ можно сократить, если знать, как реализуются команды ЭВМ, и иметь возможность выполнять отлаживаемую программу по отдельным командам, а иногда и по машинным циклам. Такая возможность предоставлена пользователю базовой ЭВМ. Он может выполнять программу не только по командам и машинным циклам, но и по отдельным тактам, т. е. проследить процесс выполнения каждой из команд, узнать, какие регистры использует процессор при их выполнении, какая информация размещается в этих регистрах и как реагирует микропрограммное устройство управления на изменение содержимого тех или иных регистров. С процессом отладки можно ознакомиться в тексте следующей лекции, где дано описание отладочного пульта базовой ЭВМ.
Источник: studfile.net
Тема 1. 8 разработка по. Подходы к разработке по.
Кодирование представляет собой процесс преобразования результатов высокоуровнего и низкоуровнего проектирования в готовый программный продукт. Другими словами, при кодировании происходит описание составленной модели ПП средствами выбранного языка программирования, которым может быть любой из существующих языков. Выбор языка осуществляется либо по желанию заказчика, либо с учетом решаемой задачи и личного опыта разработчиков.
При кодировании необходимо следовать стандарту на выбранный язык, например, для языка С — это ANSI С, а для C++ — ISO/IEC 14882 «Standart for the C++ Programming Language».
Кроме общепринятого стандарта на язык программирования в компании могут использоваться разработаны и свои дополнительные требования к правилам написания программ. В основном они касаются правил оформления текста программы.
Следование стандарту и правилам компании позволяет создать корректно работающую, легко читаемую, понятную другим разработчикам программу, содержащую сведения о разработчике, дату создания, имя и назначение, а также и необходимые данные для управления конфигурацией.
На этапе кодирования программист пишет программы и сам их тестирует. Такое тестирование называется модульным. Все вопросы, связанные с тестированием ПП, рассмотрены в гл. 10, здесь же описана технология тестирования, которая применяется на этапе разработки ПП. Эта технология называется тестированием «стеклянного ящика» (glass box); иногда ее еще называют тестированием «белого ящика» (white box) в противоположность классическому понятию «черного ящика» (black box).
При тестировании «черного ящика» программа рассматривается как объект, внутренняя структура которого неизвестна. Тестировщик вводит данные и анализирует результат, но он не знает, как именно работает программа. Подбирая тесты, специалист ищет интересные с его точки зрения входные данные и условия, которые могут привести к нестандартным результатам. Интересны для него прежде всего те представители каждого класса входных данных, при которых с наибольшей вероятностью могут проявиться ошибки тестируемой программы.
При тестировании «стеклянного ящика» ситуация совершенно иная. Тестировщик (в данном случае сам программист) разрабатывает тесты, основываясь на знании исходного кода, к которому он имеет полный доступ. В результате он получает следующие преимущества.
1. Направленность тестирования. Программист может тестировать программу по частям, разрабатывать специальные тестовые подпрограммы, которые вызывают тестируемый модуль и передают ему интересующие программиста данные. Отдельный модуль гораздо легче протестировать именно как «стеклянный ящик».
2. Полный охват кода. Программист всегда может определить, какие именно фрагменты кода работают в каждом тесте. Он видит, какие еще ветви кода остались непротестированными, и может подобрать условия, в которых они будут протестированы. Ниже описано, как отслеживать степень охвата программного кода проведенными тестами.
3. Возможность управления потоком команд. Программист всегда знает, какая функция должна выполняться в программе следующей и каким должно быть ее текущее состояние. Чтобы выяснить, работает ли программа так, как он думает, программист может включить в нее отладочные команды, отображающие информацию о ходе ее выполнения, или воспользоваться для этого специальным программным средством, называемым отладчиком. Отладчик может делать очень много полезных вещей: отслеживать и менять последовательность выполнения команд программы, показывать содержимое ее переменных и их адреса в памяти др.
4. Возможность отслеживания целостности данных. Программисту известно, какая часть программы должна изменять каждый элемент данных. Отслеживая состояние данных (с помощью того же отладчика), он может выявить такие ошибки, как изменение данных не теми модулями, их неверная интерпретация или неудачная организация- Программист может и самостоятельно автоматизировать тестирование.
5. Видение внутренних граничных точек. В исходном коде видны те граничные точки программы, которые скрыты от взгляда извне. Например, для выполнения определенного действия может быть использовано несколько совершенно различных алгоритмов, и, не заглянув в код, невозможно определить, какой из них выбрал программист. Еще одним типичным примером может быть проблема переполнения буфера, используемого для временного хранения входных данных. Программист сразу может сказать, при каком количестве данных буфер переполнится, и ему не нужно при этом проводить тысячи тестов.
6. Возможность тестирования, определяемого выбранным алгоритмом. Для тестирования обработки данных, использующей очень сложные вычислительные алгоритмы, могут понадобиться специальные технологии. В качестве классических примеров можно привести преобразование матрицы и сортировку данных. Тестировщику, в отличие от программиста, нужно точно знать, какие алгоритмы используются, поэтому приходится обращаться к специальной литературе.
Тестирование «стеклянного ящика» — часть процесса программирования. Программисты выполняют эту работу постоянно, они тестируют каждый модуль после его написания, а затем еще раз после интеграции его в систему.
При выполнении модульного тестирования можно использовать технологию либо структурного, либо функционального тестирования или и ту, и другую.
Структурное тестирование является одним из видов тестирования «стеклянного ящика». Его главной идеей является правильный выбор тестируемого программного пути. В противоположность ему функциональное тестирование относится к категории тестирования «черного ящика». Каждая функция программы тестируется путем ввода ее входных данных и анализа выходных. При этом внутренняя структура программы учитывается очень редко.
Хотя структурное тестирование имеет гораздо более мощную теоретическую основу, большинство тестировщиков предпочитают функциональное тестирование. Структурное тестирование лучше поддается математическому моделированию, но это совсем не означает, что оно эффективнее. Каждая из технологий позволяет выявить ошибки, пропускаемые в случае использования другой. С этой точки зрения их можно назвать одинаково эффективными.
Объектом тестирования может быть не только полный путь программы (последовательность команд, которые она выполняет от старта до завершения), но и его отдельные участки. Протестировать все возможные пути выполнения программы абсолютно нереально. Поэтому специалисты по тестированию выделяют из всех возможных путей те группы, которые нужно протестировать обязательно. Для отбора они пользуются специальными критериями, называемыми критериями охвата < coverage criteria),которые определяют вполне реальное (пусть даже и достаточно большое) число тестов. Данные критерии иногда называют логическими критериями охвата, или критериями полноты.
3. Разработка справочной системы программного продукта. Создание документации пользователя
Целесообразно одного из сотрудников проекта назначать техническим редактором документации. Этот сотрудник может выполнять и другую работу, но главной его задачей должен быть анализ документации, даже если ее разрабатывают и другие сотрудники.
Часто бывает так, что над созданием ПП работают несколько человек, но никто из них не несет полной ответственности за его качество. В результате ПП не только не выигрывает от того, что его разрабатывает большее число людей, но еще и проигрывает, поскольку каждый подсознательно перекладывает ответственность на другого и ожидает, что ту или иную часть работы выполнят его коллеги. Эту проблему и решает назначение редактора, несущего полную ответственность за качество и точность технической документации.
Справочная система ПП формируется на основе материала, разработанного для руководства пользователя. Формирует и создает ее ответственный за выполнение этой работы. Им может быть как технический редактор, так и один из разработчиков совместно с техническим редактором.
У хорошо документированного ПП имеются следующие преимущества.
1. Легкость использования. Если ПП хорошо документирован, то его гораздо легче применять. Пользователи его быстрее изучают, делают меньше ошибок, а в результате быстрее и эффективнее выполняют свою работу.
2. Меньшая стоимость технической поддержки. Когда пользователь не может разобраться, как выполнить необходимые ему действия, он звонит производителю ПП в службу технической поддержки. Содержание такой службы обходится очень дорого. Хорошее же руководство помогает пользователям решать возникающие проблемы самостоятельно и меньше обращаться в группу технической поддержки.
3. Высокая надежность. Непонятная или неаккуратная документация делает ПП менее надежным, поскольку его пользователи чаще допускают ошибки, им трудно разобраться, в чем их причина и как справиться с их последствиями.
Легкость сопровождения. Огромное количество денег и времени тратится на анализ проблем, которые порождены ошибка ми пользователей. Изменения, вносимые в новые выпуски ПП, зачастую являются просто сменой интерфейса старых функций. Они вносятся для того, чтобы пользователи, наконец, разобрались, как применять ПП, и перестали звонить в службу технической поддержки. Хорошее руководство в значительной степени
Источник: infopedia.su