495
Оглавление Предисловие редактора перевода .......................... 5 Предисловие.............................................. 6 ЧАСТЬ 1 Общие понятия Глава 1. Определение надежности программного обеспечения. 9 Является ли Луна вражеской ракетой?................. 10 Что такое ошибка?................................... 10 Что такое надежность?............................... 13 Разве инженеры лучше программистов? ................ ................................14 Надежность аппаратуры . . , ........................ ........................15 Высокая стоимость программного обеспечения.......... 1,7 Эксперименты в области программного обеспечения..... 18 Литература.......................................... 20 Глава 2. Ошибки — их причины и последствия .............. .....................................21 Макромодель перевода................................ 22 Микромодель перевода................................ 27 Последствия ошибок.................................. 29 Литература , ....................................... ...........31 ЧАСТЬ 2 Проектирование надежного программного обеспечения Глава 3. Основные принципы проектирования................ 32 Четыре подхода к надежности......................... 33 Процессы проектирования............................. 37 Сложность........................................... 40 Отношения с пользователем , ........................ ........................41 Решение задачи...................................... 43 Правильность проектирования ........................ 46 Литература.......................................... 48 Глава 4. Требования, цели и спецификации................. 49 Определение требований.............................. 49 Цели программного обеспечения , . . .............. . . .

майерс

  • Upload
    -

  • View
    182

  • Download
    4

Embed Size (px)

Citation preview

........................................................................... ................................................................................................................ 1

5 6

1. ........................ ? ..................................................... ? ........................................................................................ ? ................................................................................. ? .. .............................................. . . , ..... ................................................................. ...................................... ............................ ...................................................................................................... 2. .. .............................................. ................................................................................. ................................................................................. ..................................................................................... , ... ............................................................................................... 2

9 10 10 13 14 15 1,7 18 20 21 22 27 29 31

3. ................................................... ..................................................................... .......................................................................... ....................................................................................................... , ... ................................................................. .............................................................................................. ................................................................. ...................................................................................................... 4. , ......................................................... .............................................................................. , . . .......... ...................................... ....... . . ........................................................................ " .............................. ............................................................................................ 59 ............................................................................. ......................................................... ................................... 32 33 37 40 41 43 46 48 49 49 53 54

62 64 ^ 72

............................................................................ 75 ..................................................................................................... 76 5. ........................... ................................................... 78 ....................................................................................... 79 , . ... ..................................... 83 ................................................................... 89 ............... ............................................................................... 89 . ... ........................................................................ 60 ..................................................................................................... 60 6. . . ................................... 62 ............................ - ................................................. S3 ....................................................................................... 93 ....................................................................................... 96 ................................................................................ 99 ............................................................................. 100 ................ ..... ..................................... 102 ............................................................................... 112 ..................................................................................................... 113 7. ........................................................ 114 ................................................................. 114 .................................................................. 118 ................................... 120 . ....................................................................................... 122 ...................................................................... 124 .......................................................................................... . 126 8. .................................... 127 ............................................................... 127 .. ............................................................. 129 ................. 134 ...................................................................... 141 ............................................................................... 146 ................................................................................ 147 ............................................................................... ..... . . . 149 ...................................................................................................... 151 ............................................................................... 151 .. .................................................................................................. 154 9. ....................................................................... 15& ...................................................................................... 155 ................................................................................... 159 ................................................................................... 160' ............................................................ ..... ............................... 164 ... ................................................................................ 165 ..................................... 168 .. .................................................................................................. 170.

3

10. ......................................................................... ................................................................................. ............................. :.............................................. .............. ....................................................................... ............................................................................. ............................................................................ ................................................... ................................................................................ .............................................................................................. ......................... ............................... ? ...................................................................... ............................... ................................................................................ . ................................................................................................... 11. .. ........................................................................... ................................................................................... .................................................................. ; ...................... .................................................. ................................................................ .................................................................... ............................................................. ...................................................................................................... 12. . ................................................................ ............................................................. ..................................................................................... .......................................................................... ................................................................................................... ...................................... ........................................................................ .............................................................................. ...................................................................................................... 13. ....................................................................................................... ........................................................................................ ............................................................................... , ................................................................................ .......................................................................... . ................................................................................................... 171 174 177 180 180 183 186 188 188 189 189 193 197 199 199 210 211 215 215 217 218 219 219 221 229 233 241 245 248 248 249 250 250

f

^

14. ................... ................................ , .................................................................. 263 264

4

- ........................................................................ 267 ..... ..................................... * ............................... 269 .............................................................. 272 ..................................................................................................... 274 15. ............................................ 275 .................................................................................................. 278 ................. ....................................................................................... 280 ...................................................................................... 282 . , ..... ...................................................... 284 .............................................. 287 . .. ...................................................................... 290 ..................................................................................... 292 ^ .................................................. 293 ' ................................. 295 ..................................................................................................... 2S6 16. ........................................................... 298 ......................................................................................... 300 , , , , .......................................................................... 304 .......................................................................................... 306 . ...................................................... 307 ..................................................................................................... 308 17. ............................................ 310 ............................................................. 311 . . . 319 ...................................... 322 . . . . 324 ..................................................................................................... 327 18. ................................................................................. 329 ............................................................................ 330 .................................................................... 335, ................................................................. 336 .................................................................... 338 ......................................................................................... 340 ..................................................................................................... 342 19. , . ...... ...................................................... 344 ......................................................... 344 ... ....................................................................... 351 ...................................... ........................................... 353 ................................................................................. 354

. , , , , , . , , . , , . , , . , , . , 1979 , . , . , . . , . . .

60- , , . ! , , 0.00 , ,

, , . 0.00 , , - . , , , . , , 1000 100 - . , . , , , , . , . . . , . . , . 2 , . . 3

, . * , . . , ; 4. , , , , , , , , . . , , . () . . , , -. , , , , , , . , . , : , , , . , . , , , . , . , . . , , .

IBM -. IBM . , . . X. , . . , . . . . 4. , ; , , IBM.-, .-. 1976

.

1

1

. , , -, , -, . . , . , , . , ( , ) :, , , , . . , [.

1952 . 1952 ., , , , . . , , .

? , : ? , , , , : , . Ballistic Missile Early Warning System , , , , , , . , . ? ( ) . , . , , . , - , . , . , .

?

, , . : , . , ; . , , , . , , , . , ,

. . , . , . , . , , , 200 . 201 . , , , , . , , . , . , , - , , . . , , : , - . , , . , , , , . , , . , . , , - 100 , 150 , ( ), , . , , . , , , , : , , . . .

: ! : . , ? , , , . , , , , . , , - . ( , , , . .) , ( , ). , ( , ) . : . , , ( , ) ( ), . (, ), , , . , , . , . , 239, 10. , 10 . ? , , , ; . , - ; -, , , . , , , , [2]. . 2 4.

?

, , . , , . , . . : - , , (, ). , , . : , . , ; . . , . , - , DO . ; , . , , , , . . . , , ^ . ?

, : , ( ) , . ? , , , ? , . , , , ,

, , , . , . , . , IBM OS/VS2 , 370. () . , ( 16 36 ), () , , . , , . ; , . . . . , , . , . ( ) . : , , , . . , , , . , , . , . , , , . ; . , ,

.

,

. : , . , . , , , - . , - , . , . , , , , , , , , , . . , . . 1.1 . . -

. 1.1. .

, , , , . , , . , , .

, . . . , . , (, ) , . , , . . , . , , ( ), , . 1.1. , , . . . 1.1 , . , . , . . ' - , . , , . , . . , . , , , . ; . , . . 18 .

, . , , . . 1.2 . ( ) 75% . , SAGE 10 20 . 250 . [3[. , 60 ( 76) OS/360 IBM , . . , , 80%

. , ( ), 1972 . 750 . [4]. , . ( ) . . . , , , .

, . ., . . . 1. (, ) . . , , ( ) . , , , , ,

, 28 : 1 [5]. , . 2. . , , , , , , , . . . , . ( ) 10 20 . . , , . - - . 3. , . , . , IBM - . , , : , , , ? 4. , , . , , , , . , . , , , , , . , , , .

1. Brooker R. A., Gill S,5 Wheeler D, J, The Adventures of a Blunder* Mathematical Tables and Other Aids to Computation, 6 (38), 112113 (1952). 2. Martin J. Design of Man-Computer Dialogues. Englewood Cliffs, N. J.: Prentice* Hall, 1973. 3. Thayer R, H, Rome Air Development Center R and D Program in Computer Language Controls and Software Engineering Techniques, RADC-TR-74-80,- Griffiss Air Force Base, Rome, N. Y., 1974. 4. Shelly M, Computer Software Reliability-, Fact or Myth? TR-MMER/RM-73-125,Hill Air Force Base, Utah, 1973. 5. . . , . .: , 1973. 6. Baker F. . Chief Programmer Team Management of Production Programming} IBM Systems Journal, 11 (1), 5673 (1972). 2

1971 . . 115 - , . : , , , . , . , 72 , . , , . , : - , , , ? - , ? - ?') , , , , , , 17% , 22% . . , : , , 29% , 13% . . ,

, . , , . , . , , , , . , , . . ( ). ' , , . , , ( ), . , . . , . , , . (, ), . , , , .

, . . 2.1. , . . , ( ) . , ( 2 3), . , (, , ,

).

, , . 2.1. 1. . . , , , , . ; , , . , , , . 2.

. , ( . 4). , , , , , , . 3. , . . . . , . 4. , , , . , (, ) (, -). , . 5. . , , . (, , .) : ( ) . . , , . ( , , ). 6. , , . , , , . , . . , ( 4

6 ). , , , , , , . , . 1, , (, 1, 2 3, 4- 6 ). 7. . , (, , , ) . . . 8. , - . . 9. . . 10. : , , . 10 , . , , , , . - , (, - , ), . . . , , , . 11. , . (. . ), . , , .

12. , , . ( 12) , . . . 2.1 , , , , . ( ) ( ). ; . , , , , , . . ( , .) , , , , . , , , . , , . . . , , .

. 2.2. .

, , . 2.2. , : , , . . . 1. () R ( , ). 2. . 3. , , , W ( , ). 4. , . . 1. , , . , , . . , , . , , , ,

, . . , , . , , , . : , , , . 2. , , . . * , . 3. : . , , , . 4. , , 4. . , . , , . , . , , , . . (, ) . (, ) . 2.

eiufe -, . , , , . . , ., . , , . . , , . , . , , , : ---- -. , . , , - , . , . , . . 1, : , . , : ! , . - ( , ) . -

. . 212 958 72 , 2 342 55 . . , , ( ). , , , 15 , . , , 100 , . , IBM 1401 IBM 360, , 0 00 . , . , . -8 . 10 14 18 . [11: . . , . 660 . . - , , .

. , NORAD 1963 . - 465 L , 12 , . . , [3], , ,

, . . . , ; . ' 1. Ulsamer . Computers Key to Tomorrows Air Force, AIR FORCE Magazine, 56 (7), 4652 (1973). 2. Thayer R. H. Rome Air Development Center R and D Program in Computer Language Controls and Software Engineering Techniques, RADC-TR-74-80, Griffiss Air Force Base, Rome,' N. Y., 1974. 3. Boehm B. W. Software and its Impact: A Quantitative Assessment, Datamation, 19 (5), 4859 (1973). 4. Naur P., Randell B., Eds. Software Engineering: Report on a Conference Sponsored by the NATO Science Committee. Brussels, Belgium: NATO Scientific Affairs Division, 1968, p. 121,

2

3

: . 2 , . 3 , . oueCi. - .

, , , , . , ; , . , , , . , , : . , , , , . , . , .

: , , ~ . , . , . , . . , . . : 1. , , , . 2. . 3. . 4. . , . ,

. . , , . , - . , - , ( ) . 2001: , . : . -35. , . 72 . . : , , , . ; , , . . . . , . , , . , , . , , , , . ,

. , , , , , . . .

. : , . 1. . . , . , . , , , , , , . , . , , ', . . , . , - . , , , . , , , . , . , . . [1] , . , , , , , . 2. . , ? . , ,

, , , . . , - , , . 3. . , , ; . , , , . , , . . , , . , . , , . , , , , . , , . , . , . . , , . , , , , , . , -

/. 5,6, . 4.59 7,8

.7

.7

. 3.1. .

, . . 3.1 . . , , , . . , . , , . 3.1.

. , , . : - - , , , . . 3.2 . , . , , , , . . , . . , . , . .

, , , -. . , . , .

, , , . . , . . 3.2 . , . . 3.2 , , - . , . . 3.2 , , . , . , , . . , , . , . : , . , . . , , . , , . . 3.2, , . , ; .

, , . , . , ,

. . , , . . . . [2]. . . , , , . . . . , . , , , . , . . , . . , . - , , , . , - . , . , . , , , . ( ) : , . , . - . , , , .

, . , . , , [3]. , , . , , , , .

. 1 , , , . : , ? . , , . . . , : , , . , . ( ) , , . . , . , , , , . , . ,, . . -

. , , . , , , . , , , , . , , , , , . ( ) , . , , . , , . , , , , , . , . , . , , . , , , ^. , , . , . . - , . , . - , , .

. : , , . , . () (). , . , , , , , . [4]. , . , . . 3.3 .

1. .

. ? ? 2. ? ? ? " ? ? ? ? 3. . . 4. ? . ?

. 3.3. .

, , . : . , , . , . , , , , . . , - , . . . , . , ,

, , , . . , , , . , . . , , , , , , , , . , . ; , . , : , , . , . 4, . , , . . . , . , , . , , . , , , . , , . , , - . , ,

. , , , . , . , , , . , , , , . . , . , . , , , . , , , , . .

, . . , . . 3.4. , , , , , , , . , . - .

. 3.4. .

. , . - : +1 1. , , . . 3.2, , 1 , +1 . . , () , . , , , , , . 1 ( ) : - , . +1 , . : , , , , . , , .

, 4 . , . 3.2. , , , . 1. Randell . System Structuring for Software Fault Tolerance, IEEE Transactions on Software Engineering, SE-1 (2), 220232 (1975). 2. . . , , .: , 1972. 3. . . , , . .: , 1979. 4. , , , , .: , 1961,f

,

, . . , . , . [1]:, , / , , .

: , . -. , . , . , . , , , -. -

, , , . . , , , . , , - . . , . , ' . , , - . , . , , . . -, , . , , . , . , . - . , . , . , , . . , , . 12].

4 , [3, 4]. , Information Algebra ADS TAG, , . -

, 4.1. ,

>

>

, , , ,,

-,

- --

>

-, ( ) , . ( )

>

L

- - '

-, , . 6.2.J.J.

- ,.S.2.1.3., , "

"

.2.1.. 4,2, HIPO-.

HIPO- (Hierarchy plus Input- ProcessOutput: --) [5]. HIPO- & ; . (visual table of contents). . 4.1 4.2 [61. . 4.1 , . . 4.2 HIPO- . -, . . : , , . , 1- . (, , , ) . , , . , .

. . . , , :

, , , , , .

, . , , , , . . 1. . 2. , .

3. , , . , , , . , , . 4. , , . : , . . , , , , , . .

, . 3, , . , . , , . , . , , , ; . , . , , , . , , . , , . , . , , , . , . , , , -

. . , , , . , , , , , . , , . . , . , . , , . , , . , , , . . , . , , , . , , , . ( )

. , . . , , . . . . 1 ; , . , . . , . , , . . , , . , , , , , . : , , , . , , . , , (, ),

- , . , , , , . , ( ) . : ( ) ( , ). ( , , ). . , . , . , , . , , 500, . , . , , . . . , , , . , . , , . 1960 , . . , , . , . State Farm Automobile Insurance [7]: State Farm 15 2.3 . , , . , State Farm

, 50 . , , . , .

, , , , . ( , , .) . , , ; . ( ); . , ; , . , , , . , , , , . , , , , .

, , . , : . . . 1. . . 2. . , , . 3. . , . 4. . ,

, . 5. . , , , , , , , . 6. . , . - . 7. . , , , , , . 8. . , . (, ), . 9. . , , . 10. . . 11. . , , . , , . a. ( , , ) . b. . c. , . d. . e. , . f. , . g. , . h. , . i. , . j. , .

, . , , [8], , , . : 1. . 2. . 3. . 4. , , , . 5. , . 6. , . 7. . 8. . , 3. ( , , , . , , . ; . , . , , . 3 . , , . , , , , . (, , ), . . , , . ,

. , , . --- . , , , . , , , , . , , . , . , , - .

. ( ) . , , ( ), , , , . . . 2.1 3.2, , . , [9]. ( ) ; , , , - . , , , , , . . ,

, , ; . , , . , , , . , ( ), ( ), . . , , , . , , , . . , , , ^ , . , . . , , . - . , , , . , , , , , . , ; , , . , , , . . , , . . . ? , -. ( ) ; , , . , , , .

. , , , , , , , . , , , , . - . , , . , , , , , , ( , ). ( ). , , , ( ). , .

, : , , , . [10] . [11]. , , . . . , . .

. 1. , , . , , , . , : : . 1.969x10" 2. , , , , , . ( ), . 3. . , , , , , . 4. : , - . [12]. , ?HELP!HOW CAN I TERMINATE AN EDIT? ( ?) 50 , . 5. , , . , , . 6. - . , , , . , , - , , . , - SPRINT , , [10]. . 1. , . ,

, . 2. , , , , , . : 222, , 23, 2 F : 2 222 AMERICAN AIRLINES ORD () JFK (-) 23 , 8.00 , 10.30 . ? 3. , . F23 F42 - 883, , 883 -. , . - , , , F23 F42 -. , F23 , , , . , , , , F23 , . 4. , , . , , . , , , [13]. . , , , , (, ). . , , ,

, . , EDITGJMPROGSET. 1 TYPE(TEXT) DISP(80)

: TEXT TYPE. , , , INVALID TYPE. ENTER TYPE FIELD ( . )? -, . ? , . , , , , . , TEXT? , , EDIT FILE? ? , . , , , , , . , , . OS/360 , SYSGEN ( ), . , OS/360 , IBM . , IBM SYSGEN, , . , , , . , , ( ) PL/1. , , PL/1, , , , . , . , . ,

. . , , , , . , , , ; , . , . , , , , . , , . , , : , . , , .

. , . , , , , , , . . . . . 2 : . , . ( , ), , ( ) . . , , , ..

: -, ^ , -, . .1. . (, , , ) , . , , , . 2. . (, , , , ). ; , , . . . 3. . , . , , , . , , , . : , , , . : . 4. . , . , , . , . , , . 5. . , , , . , -

, , , . . , , . 6. . . - . , , , . . . . 4.3 . : , . , , . . , . 4.3 : . . , . , , . , , . . , , [14]. , . 4.3, , . , . - . , .

| ? ? ? ? ? Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y Y Y N Y Y Y Y N Y Y Y N Y Y N Y Y Y N N Y N Y Y Y N Y N Y N N Y Y N N" N N

? ? 1

X X

X X X X X X X X X X X X X X X X X

XI

2 3 4 5 6 7 1 2

3*

\

X X X X X X

. 4.3. .

, . : , , , , , , , . , . , , . - , . , ( ) . ; , , . , , . ; - . , , . , , ( , ) . ( ).

. ; . , . . , , . . , , , , , .

, . , . - - . 1 , +1 , . , , . , , . , , , . , . - (, ), -, ; . ( ), ( ) ( ) . . - ( ). . - ( ) , . .

( ). , . , , - , , . , (, ) . , , , . , , . , . , - , , . , . , , , . , , . , , , . , , . . , , , . . , - , , . , , . , .

. , . . , , . . 12.

. , (, ), , , . ; , , , , , . . , . , , , 3. - . , ; , . . . . . ( , , , , ). ( ) .

. , , . . , . , , . , . , . , , , , . , . , , . 1. Williams R. D. Managing the Development of Reliable Software, Proceedings of the 1975 International Conference on Reliable Software. New York: IEEE, 1975, pp. 38. 2. Bingham J. E., Davies G. W. P. A Handbook of Systems Analysis. New York: Halsted, 1972. 3. Teichroew D. A Survey of Languages for Stating Requirements for ComputerBased Information Systems, Proceedings of the 1972 Fall Joint Computer Conference, Montvale, N. J.: AFIPS Press, 1972. pp. 12031224. 4. Cougar J. D., Knapp R. W. System Analysis Techniques. New York: Wiley, 1974. 5. HIPO A Design Aid and Documentation Technique. GC201851, IBM Corp., White Plains, N. Y., 1974. 6. Tinanoff N., Luppino F. M. Structured Programming Series, Volume VI, Programming Support Library (PSL) Specifications, RADC-TR-74-300, Volume VI, IBM Federal Systems Div., Gaithersburg, Md., 1974. 7. Fandel P., Milligan L. PL/I Structured Programming Case Study, Proceedings of the 39th Meeting of GUIDE International. New York: GUIDE International Corp., 1974, pp. 585605, 8. Weinberg G. ., Schulman E. L. Goals and Performance in Computer Programming, Human Factors, 16(1), 7077 (1974). 9. . rf . . . .: , 1979. 10. Martin J. Design of Man-Computer Dialogues. Englewood Cliffs, N. J,: Pren- ticeHall, 1973. 11. Orr W. D., Ed. Conversational Computers. New York: Wiley, 1968. 12. Pirtle M. W. HELP, in W. D. Orr, Ed. Conversational Computers. New York: Wiley, 1968, pp. 96101. 13. Gilb T. Reliable EDP Application Design. New York: Petrocelli/Charter, 1974. 14. Hughes M. L., Shank R. M,5 Stein E, S, Decision Tables, New York: McGrawHill, 1968,

4

. : , , . , , . , , . , . , , . , . , '4' , DO, . , , , , . , , , . , , , . : . , , . , , . ; . 4,

, . , . , , . , . .

[1, 2]. , , . . , . , (, . .) , . , . 5.1 5.2 . . 5.1 , , . , , , , . , ( ), , . , . 5.2, , . , . 1. ( ) [3]. , -

. 5.1. . .

. 5.2.

, . 2. . , . 3. ( ). , . . . , , , . . 4. , . , , . , , , . 5. . , . 6. , , [4]. , ,

. , , , , , (, , , ) . 7. , . [5]. , ( ) [6]. 8. , . 6. , , , . , , , . . : THE [1, 2] [7]. THE , (). ( ). , . 5.2. 0 (). , , (). 1 , . . , , . 2 . , . 3 . , - , . ( ) 4. ( ), 0. ,

. (. ) : , [1]. , (, / ), . , ; , . , , , , THE . , , , . , , [7]. , THE, . , ( ) . : . 0, , . , ( , ). ( ), . , , , ; , , , .,

,

, [810].

, , , . , , . , , GO , , , ( ) , . ; , . . , ( ). ( ) . , . . . , . - , . . , . , . / () (, , ). , , . . 5.3 ( ' , ).

. 5.3. .

, . 1 (, , ) 1 , . (X, ) X , . , . . , . , . . 5.3 . . . 5.4 , . . , . , . : 2 ABC 1 XYZ , ABC 2, / 1 XYZ. , -

. 5.4. .

-

-**

-

0-1

6

.;

.

. 5.5. , .

, . . 5.5 - , . ( , ). , , , , : . : ; . . , ,

. , . (, ), ( ) . . , , . / / , , . / . 1. , . 2. , , , . , . 3. --, , . 4. - -, . 5. , /, . 6. (, , -, ). 7. ( ), ( ) (, , ). 8. ( ) . 9. , . 10. ( ). 11. ( ). ,

, . / , , . , [11] , [12] . / , ( ), ( ) ( ). , , , , , . . 5.6 , [13]. . , , . , . / , . -, , , . . 5.5 , . , , , . , .

7

6

- - - /

5

- -/- _______________________ -

3

2

-

/

. 5.6. , ,

, , , . , . , .

- , , . , , , . 25 , , - . , , , , [6]. , . . . (. 6).

, (, , , ). , . . 1. (. . ). 2. . 3. ( ), . . // . 4. . ,, (, ). 5. (, - ). , . 6 8. , .

- . - , , , . . 3.2 , . 1 . +1 , . , , . , , . 4 , . , , , - . , , .

1. Dijkstra . W. The Structure of the THE-Multiprogramming System, Communications of the ACM, 11(5), 341346 (1968). 2. Dijkstra E. W. Complexity Controlled by Hierarchical Ordering of Function and Variability, in P. Naur and B. Randell, Eds. Software Engineering: Report on a Conference Sponsored by the NATO Science Committee. Brussels, Belgium: NATO Scientific Affairs Division, 1968, pp. 181185. 3. Goos G. Hierarchies, in M. Beckman et al., Eds., Advanced Course in Software Engineering. Berlin: Springer-Verlag, 1970, pp. 2946. 4. Parnas D. L. Information Distribution Aspects of Design Methodology, Proceedings of the 1971 IFIP Congress, Booklet TA-3. Amsterdam: North-Holland, 5. Liskov . H. A Design Methodology for Reliable Software Systems, Proceedings of the 1972 Fall Joint Computer Conference. Montvale, N. J.: AFIPS Press,1972, pp. 191199. 1971, pp. 2630.

-6. Myers G. J. Reliable Software Through Composite Design, New York: Petrocelli/ Charter, 1975.

7. Liskov . H. The Design of the Venus Operating System, Communications of the ACM, 15 (3), 144149 (1972). 8. Morenoff E., McLean J. B. Inter-Program Communications, Program String Structures antf Buffer Files, Proceedings of the 1967 Spring Joint Computer Conference, Montvale, N. J.: AFIPS Press, 1967, pp. 175183. 9. Balzer R. M. Ports A Method for Dynamic Interprogram Communication and Job Control, R-605-ARPA, Rand Corp., Santa Monica, Ca., 1971. 10. Balzer R. M. An Overview of the ISPL Computer System Design, Communications of the ACM, 16 (2), 117122 (1973). 11. Knott G. D. A Proposal for Certain Process Management and Intercommunication Primitives, Part I, Operating Systems Review, 8 (4), 744 (1974). 12. . . . 1. .. . . .: , 1976. 13. Sorenson P. G., Hamacher V. . A Real-Time System Design Methodology, JNFOR, 13 (1), 118 (1975).

. , . , , . . , . , , . [11 : 1. , . 2. , ( - ) . 3. . , [2], , . , , : , , , , .

4 . , .

, , . , (, PL/1 ). : . , ( , ), , , , () , , . , -, ( ) , ( ).

. , ( ), , . , . , , . : , . ; , , , . , , . . , . , , PL/1. 83-- . , . ,

( ) . . , (, ). , , . , , , . , . . , , post factum, . ( ) , , . , , . , , . , . , . . . , , . . , , , . , ' . : . . , , . , . ,

, , , , . , , , , , , [2]. : . , , , . , , . . . , , , , . () . , . , : , , . , , . , , . . , . , , , . [3], , , . . , , , . ,

. , , [2]. . , . , . , .

. , . . , , . , , , , . , . , , , ( ). , . , - , , . , , . , . , . PL/1, , EXTERNAL, . , COMMON, , ( ), . . , . .

, OS/360 IBM , . ( ) . , . , , . . :DO WHILE (); CALL L (X,Y,Z); CALL M (X,Y); CALL N (W,Z); CALL P (Z,X,Y); END;

(, W,X, Y Z) , , . , , . L, , N , , , DO! , GO , [4, 5, 6]. , (, ). , PL/1, ( ), EXTERNAL, . , . . , , . , , : () . , , . , .

, , , . , , , . , . , , . (-, , , , .) , , , . , (), . . , ( ) . , . , , , , , . . , , . , , ( , , , [2]. . , , . () ( ). . , , , , , . , , . , . , , , , .

, . , [7], . 1. , 2. , . 3. , .

, . . . , (, ). , , . , , . , 10 100 . . , . , (, ), . , . . . , , , . . , , , , , () . . -, , , . . , , . , . ( ),

, , . . , , , . . , . . ( ), , , . . , : , . ( ) ( , ). , , . , .

, , . , , . 1) > (problem) ( ) , , , , .

. . , . . . . STS (-) , , . -, . , .

STS , , . , , . STS , . 1. , 310 . 2. , , . 3. . : , , , , . , , . , . , . , . 4. ( ). , . , . 5. . . , , (, , ). ( , . 8). , , . : ( , , 50 ). , ( ), . [2].

. . , . ; , . (, ) ; - . , . , , : , . , . , , , . ( , ). (INFILE), , . (PROGLIB), , '. : 1 (OUTFILE), , , , . , . , . : (ESD ), , (TXT ), () , (RLD ), , () (END).

, ( , ) . . , . , . . , , . ( ). , , . , , . : 1. . 2. , . , , , , . , , . , , . 3. . , . ,

OFFSET

( ) 0PR PR0C CALL 30

50100

CALL

ENTRY

60

200220300

Y DCL ADDR (X)

X

D C L

ESD ESD ESD TXT TXT TXT RLD RLD END ESD ESD TXT TXT 000000 1 RLD END 0034 2 MD ER |oooooo h ---------------- ------- {000220 0054 3 0200 1 M MD EP ER

0000 0100 0000 0300

......._ ..........

54 200 X

0000 0000 0060

34

. 6.1. .

. , , . , , . , , . , -- .

/

100000

100100

100300 100000-1002FF 100054

100200100300-100360 100334

100300 100220

. 6.2. .

100100 , . 6.1 , . 6.2 . . 6.1 6.2 , . , , , -, , . , . - (LOAD-APROGRAM). , , , STS, . . 6.3 , , . ; ( ). , , , ( ). , . 6.3. ( 1,2 ). -

( / \

,,

,

JpfcZu

. 6.3. .

3. , ( ) . 3 (ESTAB) , , . , (, ). 3 . - (RELOCATE-ADCONS) : ( , ) . 2 : (RLTAB), , ( ). , .

,

,. ,,

. 6.4. --.

. 1; , , , . , . 6.3, . - (PRODUCE-OUTPUT-LISTING) , . , -- (LOADRESOLVED-OBJ-PROGRAM). , . 6.4. X , , . , . . ( ) 4 . 5, , . , (RESOLVE-EXTERNAL-SYMBOLS) , , . , . , -- (LOAD-INFILE-MODULES).

,, ,, , , , ,

. 6.6. --,

.

(

,,

,, ,, ,.* 6'

,7

. 6,6. .

, . 6.5. , : , , ( , ), . , -- . 6, 7, . () 6 () (). . --, . 6.4. (, ) , . . 6.6. . - (LOAD-PROGLIB-MODULE) - , , . , : -, - , -, ( , ). , , , --,. . -- (MATCH-ERI- TEMS) . ( ). , . , . , ( ) , ( ). -- ; - - - , , . , . [8], . ,

1. GET ( ) GET MAIN ( ). 2. FIND GET ( ) GETMAIN. 3. PUT ( ). 4. , (, . ) . 5. .

1

, ,

2

,

3

,

4

, ,

5

,

, .

6

, , ,

, -,

7

, -, .

,

8

, , . .

9

, ,

, ,

10

6

11

7

12

,

, , ,

13

12

. 6.7. .

, . ( , ; .) , , . . - , .

, , . 6.7. , () -- (FIND- ITEM-INESTAB), - - , . , , , , (ESTABMGR) (RLTABMGR), . , , , , . . , . 6.7, : 1. ; . 2. , . 3. . 4. , . 5. ( ), . 6. - . , : , .

: - , . - 1 ( ), , +1 ( ), , , , . , .

: ? , ? ? ? ? ( ?) ? , . (, . 6.1 6.2 ) , . , , . . . , , , . , . (, ), (, ). 1. Liskov . . A Design Methodology for Reliable Software Systems, Proceedings of the 1972 Fall Joint Computer Conference, Montvale, N. J.: AFIPS Press, pp. 191199. 2. Myers G. J. Reliable Software Through Composite Design. New York: Petrocelli/ Charter, 1975. 3. Parnas D. L. On the Criteria to be Used in Decomposing Systems into Modules, Communications of the ACM, 15(2), 10531058 (1972). 4. Wulf W., Shaw M. Global Variable Considered Harmful, SIGPLAN Notices, 8 (2), 2834 (1973). 5. Spier M. J. A Critical Look at the State of our Science, Operating Systems Review, 8 (2), 915 (1974). 6. Goodenough J. B., Ross D. T. The Effect of Software Structure on Reliability, Modifiability, Reusability, Efficiency: A Preliminary Analysis, Report R-2099, SofTech Corp., Waltham, Mass., 1973. 7. Holt R. C. Structure of Computer Programs: A Survey, Proceedings of the IEEE, 63 (6), 879893 (1975). 8. Knuth D. E. Structured Programming with GO TO Statements, Computing Surveys, 6 (4), 261301 (1974). 9. , ; . . Yourdon and L. L. Constantinef Structured Design. New York: Yourdon, 1975 1).1} . . . .: , 1979,

4

. 3 , . , , , . , : () , . , .

, , , , . , (, ), . : . , . . , , . . , , . , , . , :

1. . , . - - , , , . 2. . . , . 3. . ( ). . : 1. . , . , . , - , . 2. [1] , . , . , . 6 . , , . 3. , . , , . , , . , , . 4. . , , , 1, 2, ..., 9, 10. 5. - , . 6. , , . , . , , ( ) . . , , , , . 7. , -

. , , . , (. . , . 4, ). , (, ), . , , ," . ( ) . , , , . , (, , ). . , . . OS/VS2MVS IBM. , . , , , ( ). . , , . ( ), . : PRIME PRIME , [2]. . 7.1. ( central control monitor) , , ( ) . ( extended

control monitor) , , - /. . PRIME : . . PRIME , , . .-

, 7,1, PRIME,1

. , , , . , . , .

PRIME /, . - -. . , -, . . , - ; , , , . , ; , , . . - . - . , . , , . , , , . , , .

, , . , . . : , . , , , . , . , ,

. (, ) , , . , , . , , . : , . - , , , , . , . , , . , , . : , TRW IBM OS/360 , . , TRW , , [3]. . OS/360 . , , , , , OS/36Q . , . - , OS/360 . - , .

, , , . , , , . . 3, (, ) , . , , , . , , , . / , . , . /, , , . . , . , , , . , / - , ( ), , , , . . , . : TSPS TSPS [4]. , : - 40 . TSPS , , , . (, . ,

, .) TSPS , . , . , . ,, . , . 7.2 , . . , , , . ( TSPS audit program) . , ( , ), L ( lost ) 1. - . L 0 ( , ), . -

, . -. , , . , . , , . . TSPS . TSPS 10 100 .

, , . . ,

( , ), . 1. . 2. . ( ) , . 3. , . 4. . 5. , . 6. , . , . 7. , , . , OS/360 , , , . , , . 8. . , . 9. , . 10. ; , .

11. , . . . 16. , . , ' [5], . . 4 : . IBM OS/360. (, ) , - .

, ( . ). , , ( ). , . 4 , . , . , , (, ) , (, ). , , , . , , . 1. . (, , , ). , (, -), ,

. 2. . (, ), , . 3. . , , 1, -, -, , , . 4. . , - , . -. 5. !. . , , , , . 6. . , , , , . . 7. . , , , . , , , " , , . , [610].

1. Randell . Operating Systems: The Problems of Performance and Reliability* Proceedings of the 1971 IFIP Congress. Amsterdam: North-Holland, 1971, pp. 11001109. 2. Fabry R. S. Dynamic Verification of Operating System Decisions Communications of the ACM, 16 (11), 659668 (1973). 3. Pinchuk P. L. TRW Evaluation of a Secure Operating System, Data Security and Data Processing, Volume 6, Evaluation and Installation Experiences: Resource Security System, G3201376, IBM Corp., White Plains, N. Y., 1974, pp. 39121. 4. Connet J. R., Pasternak E. J., Wagner B. D. Software Defenses in Real-Time Control Systems, Digest of the 1972 International Symposium on Fault-Tolerant Computing. New York: IEEE, 1972, pp. 9499. 5. Stepczyk F? M. Requirements for Secure Operating Systems, Data Security and Data Processing, Volume 5, Study Results: TRW Systems, Inc., G320 1375, IBM Corp., White Plains, N. Y 1974, pp. 75205. 6. Watson R. W. Timesharing System Design Concepts. New York: McGraw- Hill, 1970. 7. . . 2- , , , .: , 1975. 8. . , , 2. , , .: , 1974. 9. Yourdon . Design of On-Line Computer Systems, Englewood Cliffs, N, J,5 Prentice-Hall, 1972. 10, IBM Systems Journal, 6(2), 1967 ( ^ * IBM 9020),

. (. . ) (. . , , , ). ; , . . , , . , , , (. 9). , , -, , (. 14). , , . 10 .

4

. , , , . , . , , . :

1. . , . ( ). 2. . , . , (. . 6). 3. . , . 4. . . , , , (, ) . 5. . , . , , , . , . . , . , , . , . 6. . , . , , , . . , , , . (, ), , . , . (, , ). . 8.1 ESTAB- MGR (), . 6 . /* *//* EXTERNALSPECIFICATION FOR MATCHES /* FUNCTION! /* /* / / */ /

/*MATCH ALL EXTERNAL REFERENCE ITEMS IN ESTAB. IF ONE IS ENCOUNTERED THAT CANNOT BEMATCHED, RETURN ITS NAME.

V

/ /// PARAMETER / INPUT j / OUTPUT: /* /+ /* ESTAB LIST: CALL MATCHES(ESTAB,UNRESNAME.MATCHCODE) POINTER POINTER TO ESTAJBLE

*/

*/

V

/

VPOINTER TO UPDATEDESTABLE */ NAME OF AN UNMATCHED EXTERNAL REFERENCE MATCHCODE FIXED BIN(15) RETURN CODE (0, 1, OR 2)+/ ESTAB POINTER UNRESNAME CHAR(8) CAUSE/EFFECT RELATIONSHIP: AN* UNMATCHED (NULL ADDRESS FIELD) EXTERNAL REFERENCES ARE MATCHED WITH A MATCHING MD OR EP ITEM BY TRANSFERRING THE ADDRESS OF THE MD EP ENTRY TO THE ER ENTRy UNTIL AN ER CANNOT BE MATCHED. -IF ALL ER'S CAN BE MATCHED, MATCHCODE=0 AND UNRESNAME IS UNCHANGED. -IF AN ER CANNOT BE MATCHED, MATCHCODE=1 AND UNRESNAME = NAME OF ER ITEM -IF AN ERROR OCCURS (INVALID ESTABLE), MATCHCODE=2 AND UNRESNAME IS UNCHANGED +/ */

/* /* /*/* /*

/ +/ */*/ / OR*/ +/ */ */ / / +/ / */ /

J*/* /* /+ /* /* /* /* /

/*

*/

/ EXTERNALEFFECTS: NONE

. 8.1. .

, ESTAB ( ) , ESTAB , . , . 6: . -, ESTAB, .

() . , . . 11 . 1. . . , , (, ,

). 2. . , .; . 3. . , , ; . 4. Bbrfjepume . . ; , , , . , , . (. . ), . [1] . ACM (Collected Algorithms from ). , . . ( , , ), , , , (, , ). , , , ! 5. . . PROCEDURE END ( ,, ). , ENTRY. , -; . 6. . , . 7. . , . , ,

. 8. . , , . , . 9. . , , . , , . 9. 10. . . . 11. . . ; , , . , (ESTABMGR). 1 , PL/1. , 2 3 ( . 8.1). 4 (ESTAB) , , . , . , . , , . , /* MODULE ESTABMGR (EXTERNAL SYMBOL TABLE MANAGER) */ */ */

/*/* THIS IS AN INFORMATIONAL STRENGTH MODULE WITH 3 /* POINTS: ENTRY

*/ */ */*/ */ */

/* /*/* MATCHES (MATCH EXTERNAL REFERENCES IN ESTAB) /* ADDTOES (ADD AN EXTERNAL SYMBOL TO ESTAB) /* FINDES (FIND AN EXTERNAL SYMBOL IN ESTAB) /* THE DESIGN OBJECTIVE OF THIS MODULE IS TO HIDE ALL KNOW- */ /* LEDGE OF ESTAB. ALTHOUGH ESTAB IS AN INPUT AND OUTPUT /* OF THIS MODULE, THE INTENT IS THAT NO OTHER MODULES HAVE /* ANY KNOWLEDGE OF THE STRUCTURE OF ESTAB. HENCE THIS /* IS AT WORST DATA COUPLED TO ANY OTHER MODULE.

*/ */ */ */

/*

-9

*/

/* STRUCTURE NOTES: EACH OF THE 3 FUNCTIONS ARE ENCLOSED IN */ /* BEGIN BLOCKS TO ISOLATE NAMES. MODULE- */ /* WIDE DATA DEFINITIONS (ESTAB) ARE PLACED*/ /* OUTSIDE OF THE BEGIN BLOCKS. ONE OF THE*/ /* FUNCTIONS (MATCHES) IS REPRESENTED BY */ /* THE PROCEDURE STATEMENT. THE OTHER TWO */ /* FUNCTIONS ARE REPRESENTED BY ENTRY */ /* ' STATEMENTS. */

*******.************/

MATCHES: PROCEDURE (ESTAB,UNRESNAME,MATCHCODE) ; module-wide data declarations and parameter declarations MATCH_ER_ITEMS_IN ESTAB: BEGIN; local declares for MATCHES function code for MATCHES function END; ADDTOES: ENTRY (ESTAB,ESNAME,ESTYPE,ESADDR,ENTRYNUM,ADDCODE) ADD_EXTSYM_TO_ESTAB: BEGIN; local declares for ADDTOES function code for ADDTOES function ENDFINDES: ENTRY (ESTAB,ENTRYNUM,ESNAME,ESTYPE,ESADDR,FINDCODE)* FIND_EXTSYM IN ESTAB: BEGIN; local declares for FINDES function code for FINDES function

END!

END;. 8.2. ,

. (), : , . , () . , . (, , , . , . /*MODULE-WIDE DATA DEFINITIONS */

/* */DECLARE ESTAB POINTER; DECLARE TABSIZE FIXED; *TABSIZE=2000; /* [Jo. OF POSSIBLE ESTAB ENTRIES DECLARE 1 TABLE BASED (ESTAB) , 2 HEADER, 3 TAG CHAR(H), /* DOG TAG ESTB */ 3 SIZE BINARY FIXED (15), /* NO. OF CURRENT ENTRIES */ 2 BODY (TABSIZE), /* ARRAY OF ENTRIES 3 NAME CHAR(8), 3 TYPE CHAR(2), 3 ADDRESS POINTER; DECLARE /* TYPE VALUES */ MODULE CHAR(2) STATIC INIT' ('MD'), ENTRYPT CHAR(2) STATIC INIT (*EP'), EXTREF CHAR(2) STATIC INIT ('ER'); DECLARE NULL BUILTIN; /FUNCTION RETURNS VALUE OF EMPTY POINTER*/ DECLARE MATCHCODE FIXED BINARY (15); /MATCHES RETURN CODE*/ DECLARE UNRESNAME CHAR(8); /* OUTPUT FROM MATCHES FUNCTION */ "/

*/

. 8.3. .

, .) 5 . PROCEDURE -- (MATCHES), ENTRY - - (FINDES) - (ADDTOES). BEGIN PL/1, . . 8.2. 6 . , (ESTAB) , . , , . , : MATCHES. . 8.3 , MATCHES NULL, () . 7 MATCHES. , , MATCH _ ER _ ITEMS _ IN _ ESTAB : DECLARE I FIXED BINARY (15);/* */ J FIXED BINARY (15);/* */ , , .

, , , , , ( ). , , . , : [2, 3].

, , . 60- , 1968 . . [4]. , ( ) ( , ) (GO ) . GO . , GO , , , GO . , GO , . [5]. , , . , : 1. : (), () (). 2. GO , .

. 8.4. -

4ZZ3 4Z1

.

--

GO , () . 3.

9). 4. , *~ (, - --

-

(. .

DO , , THEN ELSE . .). 5. . , , . 6. , . . 7. . : , , . , . 8.4. , (CASE). , . , . 8.4 -

"

IF (1=2) 4 5 THEN A=3 B=2

GO TO 4 GO TO 5

GO TO 10 ELSE A=2 B=3 CONTINUE

10 . 8.5. .

; . , , , . (, ). , CALL RETURN . : CALL RETURN . , , . . PL/1, PL/, . , , . , . 8.4. , , GO PERFORM. PERFORM . , PERFORM. - . , . 8.4 , GO . - [6] , ,

, . . 8.5 . , , , . ( ) , . , . . , , , , . , , , . , : , , . , , . 15. , , , , . - . , GO [7]. , 1} . , , , , , . GO : GO , , [7] . , GO , . .

. [5], GO . GO , ON

PL/1 , ( ) . , GO . ; . . : , , . , , [8], [9, 10]. , , . . MATCHES. : DO 1 = 1 SIZE WHILE ( , ); IF ( ) THEN ; IF () THEN ; ELSE ; ELSE; END; , , (PL/1). . - CODE (MATCHCODE = 0) (MATCHCODE = 1),

MATCHCODE. : MATCHCODE = 0; DO 1=1 SIZE WHILE (MATCHCODE = 0); IF ( ) THEN DO; MATCHCODE = 1; ; IF () THEN MATCHCODE = 0; ; ELSE ; END; ELSE; END; : BODY (I). ADDRESS = NULL ( PL/1 NULL ). , . :DO J=lTO SIZE YVHILE(MATCHCODE=l);

IF ()THEN DO; MATCHCODE=p; B0DY(I).ADDRESS=B0DY(J). ADDRESS; END;

ELSE;END; IF (MATCHCODE= 1) THEN UNRESNAME = BODY(l).NAME; ELSE;

, , . , ( ) . . 8.6.MATCHCC)DE=0 ; DO 1=1 TO SIZE WHILE (MATCHCODE=0); IF(BODY(I).ADDRESS=NULL) /UNMATCHED NAME?*/ THEN DO; MATCHCODE=1; DO J=1 TO SIZE WHILE (MATCHCODE=1); IF((BODY(I).NAME=BODY(J).NAME)& ((BODY(J).TYPE=MODULE) f (BODY(J).. TYPE=ENTRYPT)) ) THEN DO; MATCHCODE=0;

ELSE;

BODY(I).ADDRESS=BODY(J).ADDRESS; END;

END; IF(MATCHCODE=1) THEN UNRESNAME=BODY(I).NAME; ELSE; END; ELSE; END; . 8.6. .

, MATCHES, ; . , , , . , , . , . ( -) - . MATCHES , , . , MATCHES, , PL/1, . 8.6. , , , -, . , , , . - , .

ELSE? GOrTO , . , . , , . IF, . [11] . , ELSE , ELSE IF () THEN. ELSE , THEN . ,

IF (1) THEN DO; onepl; IF ( 2) THEN 2, ELSE DO; ) THEN ; ELSE 4; END; END; ELSE ; : 1(1) THEN onepl; IF(ycfll & 2) THEN 2; 1(1 &I 2 & ) THEN ; IF(ycfll |2 &1) THEN 4; IF(|1) THEN ); (, 1 ). -, , (, ). -, , , , .

, . 7, ; .

, , (, , ). : , , , . , , . , - , , . , , , . , ( ), ( ) , . , , , , , . , , , . , .

MODULE ESTABMGR (EXTERNAL SYMBOL TABLE MANAGER)

MATCHES (MATCH EXTERNAL REFERENCES IN ESTAB) ADDTOJ5S (ADD AN EXTERNAL SYMBOL TO ESTAB) FINDES '(FIND AN EXTERNAL SYMBOL IN ESTAB) THE DESIGN OBJECTIVE OF THIS MODULE IS TO HIDE ALL KNOWLEDGE OF ESTAB. ALTHOUGH ESTAB IS AN INPUT AND OUTPUT OF THIS MODULE, THE INTENT IS THAT NO OTHER MODULES HAVE ANY KNOWLEDGE OF THE STRUCTURE OF ESTAB. HENCE THIS IS AT WORST DATA COUPLED TO ANY OTHER MODULE. MATCHES. ESTAB . ( , ): /* /* /* J*THIS IS ACjf INFORMATIONAL STRENGTH MODULE WITH 3 ENTRY POINTS:

J*

/* /*J*

/* /* /* /* /* /* /* /* /* /*

STRUCTURE NOTES:

EACH OF THE 3 FUNCTIONS ARE ENCLOSED IN BEGIN BLOCKS TO ISOLATE NAMES. MODULE- ' WIDE DATA DEFINITIONS (ESTAB) ARE PLACED OUTSIDE OF THE BEGIN BLOCKS. ONE OF THE : FUNCTIONS (MATCHES) IS REPRESENTED BY THE PROCEDURE STATEMENT. THE OTHER TWO FUNCTIONS ARE REPRESENTED BY ENTRY STATEMENTS.

J*

/********************************************** MATCHES: PROCEDURE (ESTAB,UNRESNAME,MATCHCODE); /*/* MODULE-WIDE DATA DEFINITIONS

/*DECLARE ESTAB POINTER; %DECLARE TABSIZE FIXED; NO. OF POSSIBLE ESTAB ENTRIES %TABSIZE=2000; / DECLARE 1 TABLE- BASED (ESTAB) , 2 HEADER, 3 TAG CHAR( 4 ) , /* DOG TAG ESTB */ 3 SIZE BINARY FIXED (15), /* NO. OF CURRENT ENTRIES ARRAY 2 BODY (TABSIZE), /* OF ENTRIES */ 3 NAME CHAR (8) , 3 TYPE CHAR(2), 3 ADDRESS POINTER; DECLARE MODULE CHAR(2) ENTRYPT CHAR(2) EXTREF CHAR(2) DECLARE NULL BUILTIN STATIC INIT /* TYPE VALUES STATIC INIT ( M D ' ) , STATIC INIT /FUNCTION RETURNS VALUE OF EMPTY POINTER*/ DECLARE MATCHCODE FIXED BINARY ( 1 5 ) ; /MATCHES RETURN CODE*/ DECLARE UNRESNAME C H A R ( 8 ) ; OUTPUTFROM MATCHES FUNCTION */

/*

/* */

('EP') ,CER'I;

MATCH ER ITEMS_IN_ESTAB: BEGIN;

/*

/* EXTERNAL SPECIFICATION FOR MATCHES

/*

* FUNCTION: MATCH ALL EXTERNAL REFERENCE ITEMS IN ESTAB.

IF ONE IS ENCOUNTERED THAT CANNOT BE MATCHED, RETURN ITS NAME. (ESTAB,UNRESNAME,MATCHCODE) POINTER TO ESTABLE

'*

PARAMETER LIST: CALL MATCHES INPUT: ESTAB POINTER

(*

OUTPUT: ESTABPOINTER UNRESNAME CHAR(8)

POINTER TO UPDATED ESTABLE NAME OF AN UNMATCHED EXTERNAL REFERENCE MATCHCODE FIXED B I N ( 1 5 ) RETURN CODE (0, 1, OR 2)

CAUSE/EFFECT RELATIONSHIP: ANY UNMATCHED (NULL ADDRESS FIELD) EXTERNAL INFERENCES ARE MATCHED WITH A MATCHING MD OR EP ITEM BY TRANSFERRING THE ADDRESS OF THE MD OR EP ENTRY TO THE ER ENTRY UNTIL AN ER CANNOT BE MATCHED. -IF ALL E R ' S CAN BE MATCHED, MATCHCODE=0 AND UNRESNAME IS UNCHANGED. -IF AN ER CANNOT BE MATCHED, MATCHCODE=1 AND UNRESNAME = NAME OF ER ITEM -IF AN ERROR OCCURS (INVALID ESTABLE), MATCH- CODE=2 AND UNRESNAME IS UNCHANGED EXTERNAL EFFECTS: NONE MATCHES LOGIC INFORMATION MODULES CALLED: NONE INITIAL REFINEMENT: DO 1=1 TO S I Z E WHILE(DON'T ENCOUNTER AN ITEM THAT CANT BE MATCHED) IF (ENCOUNTER AN UNMATCHED ITEM) THEN SEARCH FOR A MATCHING EXTERNAL SYMBOL IF (FIND A MATCH) THEN MARK UNMATCHED ITEM ELSE OUTPUT ITS NAME ELSE END /* LOCAL DECLARES */ DECLARE I F^XED BINARY ( 1 5 ) , /* INDEX FOR SEARCHING FOR AN UNMATCHED NAME */ J FIXED BINARY ( 1 5 ) j /* INDEX FOR SEARCHING FOR A MATCHING NAME */' MATCHCODE=2; I IF (ESTAB-*=NULL) /*NULL THEN 1 ) & (SIZE>0) & (SIZE-i>TABSIZE) ) IF ( (TAG=' ESTB THEN DO; MATCHCODE=0; DO 1=1 TO SIZE WHILE (MATCHCODE=0); IF(BODY(I).ADDRESS=NULL) /"UNMATCHED NAME?*/ THEN DO; MATCHCODE=1; DO J=1 TO SIZE WHILE (MATCHCODE=1) ; IF((BODY(I) .NAME=BODY(J).NAME)6 ((BODY(J).TYPE=MODULE)| (BODY(J).TYPE=ENTRYPT))) THEN DO; IS UNSET POINTER*,/

MATCHCODE=(>; BODY(I) .ADDRESS =BODY(J).ADDRESS; END; ELSE; END; ELSE; IF(MATCHCODE=1) THEN UNRESNAME=BODY(I).NAME; ELSE ; END;

END; ELSE; ELSE; RETURN; END; END;

END;

. 8.7. MATCHES.

, 1 7, ( , 1, 7 MATCHES ). . 2, 3 4 , . 5 6 MATCHES ( , - , , MATCHES ). 2, 3 4. 2 , . 3 , , ESTAB. 4 SIZE; ( , , SIZE). . 8.7. ADDTOES FINDES, .

; , , . (, , ) , , - , : ; ( , , , , , ).

, , , , . , , . - , , . , . , , . , , ( ), [12, 13]. . , , . . , , , . , . Multics, PL/1 , [12]. 5% . , PL/1 . , , . , . , ( ). , , , .

, , : ( ) . :

. , [14], . , , . , , .

, , . , , , , ... . [14].

. , : , . - , , , , ; : ! ! , , ! , , ! , , : !, : ! , ? , : . . , . , , , . , : 1 * 5 - 1 ; , , . , . : , , , . , , , . , , . ,

, , , , . , . , , -, . . 1. . , , , . , , . 2. . . ^, , , . 3. , , . , , - , , . 4. . , : , . . , , . , , .

, . , , , , . . 4 , . . 4 , . . 5 . . 6 , . : - ( )?

, . , - - . , , (, -). - , , , . , . ). 1) . , ., . . .: , 1980, - , , .

, . -, . , : - . , . 8.4 -, , GO . -, ? : ! , ? . 8.7, , MATCHES MATCHES. (, ) , . , - . , ( , ), , . - , HIPO- [15]. HIPO- : , , , . HIPO- -, , , . -

. . , . 8.7; MATCHES, (, ). . . , . , . , . , . : , . . , ; , .

. , . ; , , ( ). , , . , . , , . , , . , , , , , , , , , -

, .

. , . . . , . . , 3. . , [141. , . . , . , , . . , . , . . , , , , . [16]. . IF DO. , , , , , . . , - , , . , . DO ( ) . , DO 1 = 1 N WHILE (FOUND); : (FOUND N 1) (1 N , FOUND ). , - ( , ). , ,

, . , . ( ), . , , , . (. . ). , , . , , - , . . , . ( , ). . , , , . . : , . , PL/1 . , , . , - , . , [17], , . 10 . 62 , 251 . 60 ( 196 . 70 ). , , , , , . , , . , , :

. ( ) , , , . , , . 17.

: , , , , , . , , . . 8, ; - (, GO ) . , , , . . , ( ) , ( ) . , , : , GO ,, , , , GO . , , . , , , , , [1]..

, . 8, , ,

, , . ,. , ( , , ) . . . . XX, XXX, , XY, , , AI, , . . , 4 12 . , _ _ _ , , . . ( 6 ). PL/1 31 , , . , . , , , 1974 ., : , ; , . ., ! . , , VALUE VALUES, BRACA, BRACB, BRACC BRACD. . , , . , . , I, 2 5 , I, Z S. , . . PL/1, .FORMAT(l6)f=!

^ IF IF=THEN THEN THEN=ELSE; . ELSE ELSE=THEN; . , . X = (0,+ 1/(1)

AL= (1)X - 1 + 1/AI

, TOTAL = Y + /* VAR == X + /*

ABC *= /* TOTAL = Y + ABC VAR = X + ABC

. , . , , . (XREF). , , . , . . () . , **2 ? - , , . , , , . ,

, - (CALL). , :CALL SUB(X,Y); CALL SUB((X),(Y));

, . , . : CALL SUB(X#2) 1=2 WRITE .(6,101) | SUBROUTINE SUB(S,J) J=3 RETURN I 3, 2, 2. . , . , == PL/1, , , . , , 0 1 , . PL/1; : . . , , . . , BEGIN, ON PL/1. , ( ). ,

.

, ( ) . , , . . PL/1, DO . , =0. DO , , =(*2)+. SEARCH, . , : . . , ( , , , ), . , , PL/1 80 , MIN ( ), , , SUM, PROD ( ), , , ANY (=) ( ?) ALL (=) ( ?). PL,/1 , , INDEX (Z, DOG) ( Z DOG), VERIFY (, ) TRANSLATE ( ). , , . . , . , , , ( ), PL/1,

. . , , , , . ; , , . , . . . , .

, , . , ( -) ; : . , - , , , , , , , ( ). , TSS IBM. TSS, IBM . , , 1020%, . , TSS , . , TSS . , -, , , ,

. , . . , , -- , - , . , , , , (, , ). , ! : . , . , . , , , . , ; , , . - [2] , - . , , . , 10 . , , : . : . , , . . : , **2, , ,

. ; . . . , . , , : , , , [1]. . 9.1 , . , , , , , . . , , , . , , (, , ). , , ! DO, :, DO 20 I = 1, DO 20 J = 1 ,N SUM = 0 DO 10 = 1,1 10 SUM = SUM + A(I,K) * B(K,J) 20 C(I,J) = SUM

n:

1 = 13 = -1 DO 20 J = 1 ,N DO 20 I = 1 ,M SUM = 0 13 = -13 Ml = Ml + 13 DO 10 = 1,L SUM = SUM + A(I,M1) * (Ml,J) 10 M1 = M1 + 13 20 C ( I, J ) = S U M

. 9.1. .

, , . 9.1, (, J) (J, ). , IBM/360, BXLE ( ). , ,

, ! , . , . ; , , . . , , [3]. . ' -, . , . , . , . , . ; - . , . ( , ), , 5% , 90% . ( , ), post factum . . ; , , . , . . , . , , .

, , , . , . , , , , . , , . . , . , , , .., , , - , 50% ; , . , , . , . , , . , , . . , , . , . . . , , , .

, . . , . , ,

-. 1). . , , . , . , ; , , , '. . . , 11

, . . , , , , :MVC DPSREP+32(2), = X 0009'

(, , ). DPSREP, 0009\ , , . . , , , . OS/36C) IBM. OS/360 (, R6 6), , . , , , , :R6 EQU 5 R7 EQU 4 R4 EQU 4

, .

. EQUIVALENCE , REDEFINES DEFINED PL/1 , . . DECLARE . : TIME , . . . : , (=0 . . , . , . , , , . , . . , . 10.0 0.1 1.0. , . . . I , , I 2*1/2, , I : . . (, , , ) ; . ,

, . , , . , PL/1DCL I FIXED BIN(15), N FIXED DEC(5);

N=10;DO I = 1 TO N/2; I

END;

N/2 BIN I, . , DO 1=1 0;

. EN D. PL/1 END DO. , . ( ) END, , END AMODULE;

, , END END. ELS E T HE N. THEN ELSE. - ELSE, . , ELSE , . , , . 8 ELSE. ; ELSE, , ELSE. . . , 1, 2 , 3, 1, 2.

f

. . , PL/1 ALTER , GO , *). . . , PL/1, , . . 6 . . . , , . , , , , , , . , (. . ) . , , , . , (!=*(1)!) . , , , ( DO), . , . L5. , [4, 5] , , [6] .

1) CASE (), , , &.

1. Kernighan . W., Plauger P. J. The Elements of Programming Style. New York: McGraw-Hill, 1974. 2. Weinberg G. M. The Psychology of Computer Programming. New York Van Nostrand Reinliold, 1971. 3. Myers G. J. Reliable Software Trough Composite Design. New York: Petrocelli/ Charter, 1975. 4. Ledgard H. F. Programming Proverbs. Rochelle Park, N. J.: Hayden, 1975. 5. Ledgard H. F. Programming Proverbs for FORTRAN Programmers. Rochelle Park, N. J.: Hayden, 1975. 6. Weissman L. M. A Methodology for Studying the Psychological Complexity of Computer Programs, CSRG-37. University of Toronto Computer Systems Research Group, Toronto, Canada, 1974,

3

, , 50% , , , . , , . , , , , . ( , ) , , , ! , ,

. , ; . , , , . , , , . : . ( ), . () . , ; , . ; . , , ; , ,, . , , , . " . , . , . , , , , , . , , (, , ), . , . . , . , , . , , ,

. : , . , .

,

f

/

. 10.1. 70- .

, , , . , . . , , . , , . . , , , .

5% (), 2000 ., 1 %. , . 10.1, . , , (, , ) (, ) .

, , , , , , , , . , , , ACM [1]. , , . (testing), , ( ) ( ) . (p ro o f ) . . , . ; . 17. (verification) , , , . (validation) , . (certification) , Underwriters Laboratories. . ,

[2, 3] NATS [4]. (debugging) . , . , ; , . . , . , , : , , , . , (module testing, unit testing) , (. . ). . (integration testing) (, , ). (external function testing) , . (system testing) / . , , , , . (acceptance testing) . (installation testing) ^ , . , , . 10.2.

. 10.2. .

< ----------------- - ----------------------------------- > .(( ) )

, . , , , ,

. 10.3. .

, . . , , . 10.3. , , . , , , . ( ) , , , , . . : , . , , . . , , , . , , . , , . , . ( ) . . , , , , , , , , . , , . , . . . , , , , . , , one-

, , . , , . . : . , - . . t o i . , . , , , , , . , , , . , , , . , . , , , . ( , 100 ), , , - . . 10.4 . , ( ). , 0 10 , . , . , (, ), 10 18. , , 41017 . , TITAN 60 [5]. , . (. . . . .: , 1979). ,, 4. Boyle J. ., Cody W. J., Cowell W. R., Grabow B. S., lkebe Y., Moler . B.,. Smith . T. NATS: A Collaborative Effort to Certify and Disseminate Mathematical Software, Proceedings of the 1972 ACM Annual Conference. New York: ACM, 1972, pp. 630 635.

5. Thayer R. H. Rome Air Development Center R and D Program in Computer Language Controls and Software Engineering Techniques, RADC-TR-74-80, Gri-f- fiss A