Программное обеспечение и его разработка - Фокс Джозеф М.
Многие новые технологии программирования позволяют получать самодокументированные программы, значительно снижая усилия, необходимые для документирования.
Под документацией мы подразумеваем не тексты рабочей (машинной) программы. Недостаточно также и текстов исходной программы. Документация, подготавливаемая для фазы продолжающейся разработки, должна содержать:
1) хорошо прокомментированный текст программы;
2) схемы, иллюстрирующие проект, и словесное их описание;
3) структурированные словесные описания или схемы процессов, причем первое более предпочтительно;
4) описания данных.
Без всего этого программисту, которому предстоит модифицировать существующую программу, придется решать сложнейшую задачу по определению того, что было сделано до него.
Такие описания и читать и понимать легче, чем блок-схемы. Снабженный подробными приложениями, грамотно оформленный, разделенный на модули текст описания усваивается особенно легко, ведь и общая структура текста, и используемые в нем термины вполне понятны любому. Структурированное словесное описание это не программа, но эти понятия близки.
PROCEDURE: PWARN $ display warning message INPUTS:LOTMP — time to retry after overtemp condition LEMI — time to retry after EMI conditionLACT — printer queue overflow flagOUTPUTS:noneIF LACT set THENIF NOR less than TQR (space unavailable) THENclear LACT set LCODE to 134call procedure POPMG to display operator messageENDIFENDIFDO-WHILE LACTX is 0 thru 1IF EMI is set and CSRTC is greater than or equal to LEMI(LACTX) THEN set LCODE to 321call procedure POPMG to display warning messagestore the new retry time in LEMIincrement retry counter LRCTRIF LRCTR greater than or equal 3 THENclear the FM! flanENDIFENDIFIF OVRTMP is set and CSRTC greater than or equal LOTMP(LACTX) THENset LCODE to 320call procedure POPMG to display warning messagestore new retry time in LOTMPincrement retry counter LRCTRIF LRCTR greater than or equal to 3 THENclear OVRTMP flagENDIFENDIFEND-WHILEEND PROCEDURE-OUTPUT INTERRUPTРис. 5.52. Структурированное описание на языке проектирования программ.
На рис. 5.52 приведено структурированное словесное описание, для которого использован язык проектирования программ PDL. Это описание эквивалентно нескольким блок-схемам, которые изображены на рис. 5.53. Словесное описание лучше блок-схем по следующим причинам:
1) оно располагается на одной странице, и его общая структура легко обозрима;
2) оно содержит больше информации, чем блок-схемы.
На рис. 5.54 приведено другое описание с гораздо большим числом комментариев.



PROC SESSION MANAGEMENT * THIS PROCEDURE MANAGES THETERMINAL INTERACTION WITH THE USER. LEGAL USERCOMMANDS ARE MOVE AND DELETE *USE SESSION DATADO * PROCESS USER COMMANDS *GET INPUT (COMMAND) * NEXT USER INPUT *RUN INPUTCHECK (COMMAND, ERROR)IFERROR = TRUETHENPUT OUTPUT (ERROR)ELSE * NO ERROR — PROCEED WITH PROCESSING *IF * DETERMINE TYPE COMMAND *COMMAND = MOVE THEN * PROCESS MOVE COMMAND *INCLUDE MOVE PROCESSING ELSE * PROCESS DELETE COMMAND *INCLUDE DELETE PROCESSINGFl Fl GET INPUT (SESSION ~ ON)WHILE * KEEP PROCESSING INPUT COMMANDS AS LONG AS SESSION ON INDICATOR IS ON (TRUE) * SESSION ON = TRUEOD CORPDATA SESSION DATA*ABSTRACT DATA TYPES & COMMENTS * ATADРис. 5.54. Структурированное описание.
Служебные слова
CORPODFIATADPROCDOIFDATAСтроки типа «
IF * ОПРЕДЕЛЕНИЕ ТИПА ПРИКАЗА *Знать, что происходит в программе, должны не только люди, занимающиеся сопровождением, но и многие другие.