kontrolya.
Tem ne menee on vykazyvaet bol'shuyu pronicatel'nost'. On zamechaet, chto
nezhelanie dokumentirovat' proekt proishodit ne tol'ko ot leni ili nedostatka
vremeni. Ono proishodit ot nezhelaniya proektirovshchika svyazyvat' sebya
otstaivaniem reshenij, kotorye, kak on znaet, predvaritel'nye. "Dokumentiruya
proekt, proektirovshchik stanovitsya ob容ktom kritiki so vseh storon, i dolzhen
zashchishchat' vse, chto napisal. Esli organizacionnaya struktura mozhet predstavlyat'
ugrozu, ne budet dokumentirovat'sya nichego, krome togo, chto nel'zya osporit'."
Sozdavat' organizacionnuyu strukturu s uchetom vneseniya v budushchem
izmenenij znachitel'no trudnee, chem proektirovat' sistemu s uchetom budushchih
izmenenij. Kazhdyj poluchaet zadanie, rasshiryayushchee krug ego obyazannostej, chtoby
sdelat' tehnicheski bolee gibkim vse podrazdelenie. V bol'shih proektah
menedzheru nuzhno imet' dvuh ili treh vysokoklassnyh programmistov v kachestve
rezerva, kotoryj mozhno brosit' na samyj opasnyj uchastok boya.
Strukturu upravleniya takzhe nuzhno izmenyat' po mere izmeneniya sistemy.
|to oznachaet, chto rukovoditel' dolzhen udelit' bol'shoe vnimanie tomu, chtoby
ego menedzhery i tehnicheskij personal byli nastol'ko vzaimozamenyaemy,
naskol'ko pozvolyayut ih sposobnosti.
Bar'ery yavlyayutsya sociologicheskimi, i s nimi nuzhno bditel'no i
nastojchivo borot'sya. Vo-pervyh, menedzhery sami rassmatrivayut rukovoditelya
kak "slishkom bol'shuyu cennost'", chtoby ispol'zovat' ih dlya real'nogo
programmirovaniya. Vo- vtoryh, rabota menedzhera obladaet bolee vysokim
prestizhem. CHtoby preodolet' eti slozhnosti, v nekotoryh laboratoriyah,
naprimer, v Bell Labs, uprazdnyayut vse naimenovaniya dolzhnostej. Kazhdyj
professional'nyj sluzhashchij yavlyaetsya "tehnicheskim sotrudnikom". V drugih,
naprimer v IBM, vvodyat dvojnuyu lestnicu prodvizheniya (ris. 11.1).
Sootvetstvuyushchie stupen'ki teoreticheski ravnoznachny.
Ris. 11.1 Dvojnaya sluzhebnaya lestnica IBM
Legko ustanovit' sootvetstvuyushchie stupen'kam razmery zhalovaniya.
Znachitel'no trudnee dat' im sootvetstvuyushchij prestizh. Ofisy dolzhny imet'
odinakovyj razmer i obstanovku. Sekretarskie i prochie sluzhby dolzhny byt'
sootvetstvuyushchimi. Perevod s tehnicheskoj lestnicy v upravlencheskuyu ne dolzhen
soprovozhdat'sya povysheniem, i o nem vsegda nuzhno soobshchat' kak o "perevode", a
ne kak o "povyshenii". Obratnyj perevod vsegda dolzhen soprovozhdat'sya
pribavkoj k zhalovan'yu.
Menedzherov nuzhno posylat' na kursy tehnicheskoj perepodgotovki, a
starshij tehnicheskij personal - na kursy obucheniya upravleniyu. Celi proekta,
hod raboty i administrativnye problemy dolzhny dovodit'sya do vseh rukovodyashchih
rabotnikov.
Esli pozvolyaet podgotovka, rukovodyashchie rabotniki dolzhny byt' tehnicheski
i moral'no gotovy vozglavit' gruppy ili nasladit'sya razrabotkoj programm
sobstvennymi rukami. Konechno, osushchestvlenie vsego etogo trebuet mnogo truda,
no rezul'tat togo stoit!
Ideya organizacii grupp programmistov napodobie operacionnyh brigad
predstavlyaet soboj korennoe reshenie etoj problemy. Ona zastavlyaet
rukovodyashchego rabotnika pochuvstvovat', chto on ne unizhaet sebya, kogda pishet
programmy, i pytaetsya ubrat' social'nye prepyatstviya, meshayushchie emu ispytat'
radost' tvorchestva.
Bolee togo, eta struktura prednaznachena dlya sokrashcheniya chisla
interfejsov. Blagodarya ej sistemu mozhno izmenyat' s maksimal'noj legkost'yu, i
stanovitsya otnositel'no prosto perenapravit' vsyu brigadu na drugoe zadanie v
sluchae neobhodimosti organizacionnyh izmenenij. |to dejstvitel'no
dolgosrochnoe reshenie problemy gibkoj organizacii.
Dva shaga vpered, shag nazad
Programma ne perestaet izmenyat'sya posle svoej postavki klientu.
Izmeneniya posle postavki nazyvayutsya soprovozhdeniem programmy, no etot
process v korne otlichaetsya ot soprovozhdeniya apparatnoj chasti.
Soprovozhdenie apparatnoj chasti komp'yuternoj sistemy sostoit iz treh
vidov deyatel'nosti: zameny isporchennyh detalej, chistki i smazki i
osushchestvleniya tehnicheskih izmenenij dlya ispravleniya konstruktivnyh defektov.
(Bol'shaya chast' tehnicheskih izmenenij, no ne vse, ustranyaet defekty
razrabotki ili realizacii, a ne arhitektury, i potomu nezametna
pol'zovatelyu.)
Soprovozhdenie programm ne predpolagaet chistki, smazki ili zameny
isportivshihsya komponentov. Ono sostoit glavnym obrazom iz izmenenij,
ispravlyayushchih konstruktivnye defekty. Gorazdo chashche, chem dlya apparatnoj chasti,
eti izmeneniya vklyuchayut v sebya dopolnitel'nye funkcii. Obychno oni vidny
pol'zovatelyu.
Obshchaya stoimost' soprovozhdeniya shiroko ispol'zuemoj programmy obychno
sostavlyaet 40 i bolee procentov stoimosti ee razrabotki. Udivitel'no, chto na
stoimost' soprovozhdeniya sil'no vliyaet chislo pol'zovatelej. CHem bol'she
pol'zovatelej, tem bol'she oshibok oni nahodyat.
Betti Kempbell iz Laboratorii yadernoj fiziki MTI otmechaet interesnyj
cikl v zhizni otdel'noj versii programmy. On pokazan na risunke 11.2. V
nachale sushchestvuet tendenciya povtornogo poyavleniya oshibok, najdennyh i
ustranennyh v predydushchih versiyah. Obnaruzhivayutsya oshibki v funkciyah, vpervye
poyavivshihsya v novoj versii. Vse oni ispravlyayutsya, i v techenie neskol'kih
mesyacev vse idet horosho. Zatem kolichestvo obnaruzhennyh oshibok snova nachinaet
rasti. Po mneniyu Kempbell, eto proishodit potomu, chto pol'zovateli vyhodyat
na novyj uroven' slozhnosti, nachinaya polnost'yu primenyat' novye vozmozhnosti
versii. |ta intensivnaya rabota vyyavlyaet bolee skrytye oshibki v novyh
funkciyah.5
Ris. 11.2 CHastota obnaruzheniya oshibok kak funkciya vozrasta versii
programmy
Fundamental'naya problema pri soprovozhdenii programm sostoit v tom, chto
ispravlenie odnoj oshibki s bol'shoj veroyatnost'yu (20-50 procentov) vlechet
poyavlenie novoj. Poetomu ves' process idet po principu "dva shaga vpered,
odin nazad".
Pochemu ne udaetsya ustranit' oshibki bolee akkuratno? Vo-pervyh, dazhe
skrytyj defekt proyavlyaet sebya kak otkaz v kakom-to odnom meste. V
dejstvitel'nosti zhe on chasto imeet razvetvleniya po vsej sisteme, obychno
neochevidnye. Vsyakaya popytka ispravit' ego minimal'nymi usiliyami privedet k
ispravleniyu lokal'nogo i ochevidnogo, no esli tol'ko struktura ne yavlyaetsya
ochen' yasnoj ili dokumentaciya ochen' horoshej, otdalennye posledstviya etogo
ispravleniya ostanutsya nezamechennymi. Vo-vtoryh, ispravlyaet oshibki obychno ne
avtor programmy, i chasto eto mladshij programmist ili stazher.
Vsledstvie vneseniya novyh oshibok soprovozhdenie programmy trebuet
znachitel'no bol'she sistemnoj otladki na kazhdyj operator, chem pri lyubom
drugom vide programmirovaniya. Teoreticheski, posle kazhdogo ispravleniya nuzhno
prognat' ves' nabor kontrol'nyh primerov, po kotorym sistema proveryalas'
ran'she, chtoby ubedit'sya, chto ona kakim-nibud' neponyatnym obrazom ne
povredilas'. Na praktike takoe vozvratnoe testirovanie dejstvitel'no dolzhno
priblizhat'sya k etomu teoreticheskomu idealu, i ono ochen' dorogo stoit.
Ochevidno, metody razrabotki programm, pozvolyayushchie isklyuchit' ili, po
krajnej mere, vyyavit' pobochnye effekty, mogut rezko snizit' stoimost'
soprovozhdeniya, kak i metody razrabotki proektov men'shim chislom lyudej i s
men'shim chislom interfejsov - a znachit, i s men'shim chislom oshibok.
SHag vpered, shag nazad
Leman i Beladi izuchili istoriyu posledovatel'nyh vypuskov bol'shoj
operacionnoj sistemy.6 Oni schitayut, chto obshchee kolichestvo modulej rastet
linejno s nomerom versii, no chislo modulej, zatronutyh izmeneniyami, rastet
eksponencial'no v zavisimosti ot nomera versii. Vse ispravleniya imeyut
tendenciyu k razrusheniyu struktury, uvelicheniyu entropii i dezorganizacii
sistemy. Vse men'she sil tratitsya na ispravlenie oshibok ishodnogo proekta i
vse bol'she - na likvidaciyu posledstvij predydushchih ispravlenij. Po proshestvii
vremeni sistema stanovitsya vse menee i menee organizovannoj. Rano ili pozdno
ispravlenie oshibok teryaet smysl. Na kazhdyj shag vpered prihoditsya shag nazad.
V principe godnaya dlya vechnogo ispol'zovaniya sistema perestaet byt' osnovoj
razvitiya. Krome togo, menyayutsya mashiny, konfiguracii, trebovaniya
pol'zovatelya, tak chto fakticheski sistema yavlyaetsya vechnoj. Neobhodim
sovershenno novyj proekt, vypolnyaemyj s samogo nachala.
Ot mehanicheskoj statisticheskoj modeli Beladi i Leman prihodyat k obshchemu
zaklyucheniyu otnositel'no programmnyh sistem, kotoroe podkrepleno vsem opytom
chelovechestva. "Luchshaya pora veshchej - kogda oni tol'ko chto poyavilis'", - skazal
Paskal'. CH. S. L'yuis vyrazil eto bolee vesomo:
Vot klyuch k ponimaniyu istorii. Vysvobozhdaetsya ogromnaya energiya,
voznikayut civilizacii, sozdayutsya prekrasnye uchrezhdeniya, no vsyakij raz chto-to
proishodit ne tak. Kakaya-to rokovaya oshibka voznosit na vershinu sebyalyubivyh i
zhestokih lyudej, i vse skatyvaetsya nazad, v nishchetu i ruiny. Dejstvitel'no,
mashina glohnet. Ona normal'no startuet i proezzhaet neskol'ko metrov, a zatem
lomaetsya.7
Sistemnoe programmirovanie yavlyaetsya processom, umen'shayushchim entropiyu, a
potomu emu vnutrenne prisushcha metastabil'nost'. Soprovozhdenie programm est'
process, uvelichivayushchij entropiyu, i dazhe samoe umeloe ego vedenie lish'
otdalyaet vpadenie sistemy v beznadezhnoe ustarevanie.
Glava 12. Ostryj instrument
Horoshego rabotnika uznayut po instrumentu.
POSLOVICA
Dazhe v nashe vremya mnogie programmnye proekty, s tochki zreniya
ispol'zovaniya instrumentariya, rabotayut kak mehanicheskie masterskie. U
kazhdogo mehanika est' svoj nabor instrumentov, sobiravshijsya v techenie vsej
zhizni, kotoryj on tshchatel'no zapiraet i ohranyaet - naglyadnoe svidetel'stvo
lichnogo masterstva. Tochno takzhe programmist sobiraet malen'kie redaktory,
sortirovki, dvoichnye dampy, utility dlya raboty s diskami i pripryatyvaet ih v
svoih fajlah.
Odnako takoj podhod ne opravdan pri rabote nad programmnym proektom.
Vo- pervyh, vazhnoj zadachej yavlyaetsya obmen informaciej, a lichnyj instrument
emu meshaet, a ne sodejstvuet. Vo-vtoryh, pri perehode na novuyu mashinu ili
novyj rabochij yazyk tehnologiya menyaetsya, poetomu srok zhizni instrumenta
nedolog. I nakonec, ochevidno, znachitel'no effektivnee sovmestno
razrabatyvat' i soprovozhdat' programmnye instrumenty obshchego naznacheniya.
Odnako nedostatochno imet' instrumenty obshchego naznacheniya. Kak
special'nye zadachi, tak i lichnye predpochteniya obuslovlivayut neobhodimost'
imet' takzhe i specializirovannyj instrument. Poetomu pri obsuzhdenii sostava
komandy programmistov ya predlagal imet' v brigade odnogo instrumental'shchika.
|tot chelovek vladeet vsemi obshchedostupnymi instrumentami i mozhet obuchat' ih
ispol'zovaniyu. On mozhet takzhe sozdavat' specializirovannye instrumenty,
kotorye potrebuyutsya ego nachal'niku.
Takim obrazom, menedzher proekta dolzhen ustanovit' principy i vydelit'
resursy dlya razrabotki obshchih instrumentov. V to zhe vremya on dolzhen ponimat'
neobhodimost' v specializirovannyh instrumentah i ne prepyatstvovat'
razrabotke sobstvennyh instrumentov v podchinennyh rabochih gruppah. Est'
opasnyj soblazn popytat'sya dostich' bol'shej effektivnosti, sobrav vmeste
otdel'nyh razrabotchikov instrumenta i dorabotav obshchegruppovoj
instrumentarij. No eto ne udaetsya.
CHto eto za instrumenty, razrabotku kotoryh menedzher dolzhen obdumyvat',
planirovat' i organizovyvat'? Prezhde vsego, vychislitel'nye sredstva. Dlya
etogo trebuyutsya mashiny, i dolzhna byt' prinyata politika planirovaniya vremeni.
Dlya etogo trebuetsya operacionnaya sistema, i dolzhna byt' ustanovlena politika
obsluzhivaniya. Dlya etogo trebuetsya yazyk, i dolzhna byt' zalozhena politika v
otnoshenii yazyka. Zatem idut utility, sredstva otladki, generatory
kontrol'nyh primerov i tekstovyj processor dlya raboty s dokumentaciej.
Rassmotrim ih poocheredno.1
Celevye mashiny
Mashinnuyu podderzhku polezno razdelit' na celevye mashiny i rabochie
mashiny. Celevaya mashina - eto ta, dlya kotoroj pishetsya programmnoe obespechenie
i na kotoroj, v konce koncov, ego nuzhno budet testirovat'. Rabochie mashiny -
eto te, kotorye predostavlyayut servisy, ispol'zuemye dlya sozdaniya sistemy.
Esli sozdaetsya novaya operacionnaya sistema dlya staroj mashiny, poslednyaya mozhet
sluzhit' odnovremenno i celevoj, i rabochej.
Kakovy tipy celevyh sredstv? Esli brigada sozdaet novyj supervizor ili
drugoe programmnoe sredstvo, sostavlyayushchee serdcevinu sistemy, to ej,
konechno, nuzhna svoya mashina. Dlya takih sistem potrebuyutsya operatory i odin
ili dva sistemnyh programmista, chtoby mashina byla v rabochem sostoyanii.
Esli trebuetsya otdel'naya mashina, to ona dolzhna byt' dovol'no
specificheskoj: ne trebuetsya, chtoby ona byla bystroj, no trebuetsya, po
men'shej mere, 1 Mbajt operativnoj pamyati, 100 Mbajt v aktivnyh diskah i
terminaly. Dostatochno simvol'nyh terminalov, no so znachitel'no bol'shej
skorost'yu, chem 15 simvolov v sekundu, harakternyh dlya pishushchih mashinok.
Nalichie bol'shoj pamyati znachitel'no sposobstvuet produktivnosti, pozvolyaya
zanyat'sya razbieniem na overlei i minimizaciej razmera posle testirovaniya
funkcij.
Mashina ili programmnye sredstva dlya otladki dolzhny takzhe imet' sredstva
dlya avtomaticheskogo podscheta i izmerenij lyubyh parametrov programmy vo vremya
otladki. K primeru, karty ispol'zovaniya pamyati sluzhat moshchnym diagnosticheskim
sredstvom pri vyyasnenii strannoj logiki povedeniya ili neozhidanno nizkoj
proizvoditel'nosti.
Planirovanie vremeni. Esli celevaya mashina novaya, - naprimer, dlya nee
sozdaetsya pervaya operacionnaya sistema, - to mashinnogo vremeni malo, i
planirovanie stanovitsya bol'shoj problemoj. Potrebnosti v rabochem vremeni
celevoj mashiny imeet specificheskuyu krivuyu rosta. Pri razrabotke OS/360 u nas
byli horoshie emulyatory System/360 i drugie mashiny. Po prezhnemu opytu my
ocenili, skol'ko chasov rabochego vremeni S/360 nam ponadobitsya, i stali
poluchat' pervye mashiny s proizvodstva. No mesyac za mesyacem oni ostavalis'
bez nagruzki. Zatem srazu vse 16 sistem okazalis' zagruzhennymi, i
raspredelenie vremeni stalo problemoj. Ispol'zovanie mashin vyglyadelo
primerno kak na risunke 12.1. Vse odnovremenno nachali otlazhivat' pervye
komponenty, i zatem vse komandy postoyanno chto-to otlazhivali.
Ris. 12.1 Rost ispol'zovaniya celevyh mashin
My centralizovali vse svoi mashiny i biblioteki magnitnyh lent i
organizovali dlya ih raboty professional'nuyu i opytnuyu gruppu mashinnogo zala.
Dlya maksimizacii byvshego v nedostatke mashinnogo vremeni S/360 vse otladochnye
progony my osushchestvlyali v paketnom rezhime na podhodyashchih svobodnyh mashinah.
My dobilis' chetyreh zapuskov v den' (oborachivaemost' sostavila dva s
polovinoj chasa), a trebovalas' chetyrehchasovaya oborachivaemost'.
Vspomogatel'naya mashina 1401 s terminalami ispol'zovalas' dlya planirovaniya
progonov, otslezhivaniya tysyach zadanij i kontrolya vremeni oborachivaemosti.
No so vsej etoj organizovannost'yu my perestaralis'. Posle neskol'kih
mesyacev nizkoj oborachivaemosti, vzaimnyh obvinenij i prochih muk my pereshli k
vydeleniyu mashinnogo vremeni krupnymi blokami. K primeru, vsya gruppa iz
pyatnadcati chelovek, zanimavshayasya sortirovkoj, poluchala sistemu na srok ot
chetyreh do shesti chasov. Planirovanie etogo vremeni bylo ih vnutrennim delom.
Dazhe esli sistema byla na zanyata, postoronnie ne mogli eyu pol'zovat'sya.
|to okazalos' bolee udachnym sposobom planirovaniya. Hotya koefficient
ispol'zovaniya mashiny, vozmozhno, neskol'ko upal (a chasto i etogo ne bylo),
proizvoditel'nost' podnyalas'. Dlya kazhdogo chlena komandy desyat' zapuskov v
techenie shesti chasov znachitel'no produktivnee, chem desyat' zapuskov,
osushchestvlennyh s pereryvami v tri chasa, poskol'ku postoyannaya koncentraciya
sokrashchaet vremya obdumyvaniya. Posle takoj gonki komande obychno trebovalos'
odin-dva dnya, chtoby podognat' rabotu s dokumentami, prezhde chem prosit' o
vydelenii novogo bloka. Zachastuyu vsego tri programmista mogut s pol'zoj
podelit' i raspredelit' mezhdu soboj vydelennyj im blok vremeni. Pohozhe, chto
eto luchshij sposob ispol'zovaniya celevoj mashiny pri otladke novoj
operacionnoj sistemy.
Tak bylo na praktike, hotya eto ne sootvetstvovalo teorii. Sistemnaya
otladka vsegda byla zanyatiem dlya nochnoj smeny, podobno astronomii. Dvadcat'
let nazad, rabotaya nad 701-j mashinoj, ya vpervye poznal produktivnuyu svobodu
ot formal'nostej, prisushchuyu predrassvetnym chasam, kogda vse nachal'niki iz
mashinnogo zala krepko spyat po domam, a operatory ne raspolozheny borot'sya za
soblyudenie pravil. Smenilos' tri pokoleniya mashin, polnost'yu izmenilis'
tehnologii, poyavilis' operacionnye sistemy, no etot luchshij sposob raboty
ostalsya prezhnim. On prodolzhaet zhit', poskol'ku naibolee effektiven. Prishla
pora priznat' ego produktivnost' i shire primenyat'.
Rabochie mashiny i sluzhby dannyh
|mulyatory. Esli celevoj komp'yuter novyj, to dlya nego neobhodim
logicheskij emulyator. |to daet apparat dlya otladki zadolgo do togo, kak
celevaya mashina budet v nalichii. CHto stol' zhe vazhno, dazhe togda, kogda
stanovitsya dostupnoj celevaya mashina, imeetsya dostup k nadezhnomu sredstvu dlya
otladki.
Nadezhnoe - ne to zhe samoe, chto tochnoe. |mulyator neizbezhno v kakom-libo
otnoshenii budet otstupat' ot vernoj i tochnoj realizacii arhitektury novoj
mashiny. No eto budet odna i ta zhe realizaciya i segodnya, i zavtra, chego ne
skazhesh' o novoj apparatnoj chasti.
V nashe vremya my privykli k tomu, chto apparatnaya chast' komp'yutera
bol'shuyu chast' vremeni rabotaet bez sboev. Esli tol'ko razrabotchik prikladnoj
programmy ne zamechaet, chto sistema neodinakovo vedet sebya pri raznyh
identichnyh progonah programmy, emu pravil'nee vsego poiskat' oshibki v svoem
kode, a ne v tehnike.
|tot opyt, odnako, sosluzhil plohuyu sluzhbu pri programmirovanii novoj
mashiny. Laboratornye razrabotki, predvaritel'nye ili rannie vypuski
komp'yuterov ne rabotayut dolzhnym obrazom, ne rabotayut nadezhno i ne ostayutsya
neizmennymi den' oto dnya. Po mere obnaruzheniya oshibok tehnicheskie izmeneniya
proizvodyatsya vo vseh ekzemplyarah mashiny, vklyuchaya ispol'zuemyj gruppoj
programmistov. Takaya neustojchivost' osnovaniya dostatochno nepriyatna. Otkazy
apparatury, obychno skachkoobraznye, eshche huzhe. I huzhe vsego neopredelennost',
lishayushchaya stimula staratel'no kopat'sya v svoem kode v poiskah oshibki - ee
mozhet tam vovse ne byt'. Poetomu nadezhnyj emulyator na zreloj mashine ostaetsya
poleznym znachitel'no dol'she, chem mozhno bylo predpolozhit'.
Mashiny dlya kompilyatora i assemblera. Po tem zhe prichinam trebuyutsya
kompilyatory i assemblery, rabotayushchie na nadezhnyh mashinah, no kompiliruyushchie
ob容ktnyj kod dlya celevoj sistemy. Zatem mozhno nachat' ego otladku na
emulyatore.
Pri programmirovanii na yazykah vysokogo urovnya znachitel'nuyu chast'
otladki mozhno proizvesti pri kompilyacii dlya vspomogatel'noj mashiny i
testirovanii rezul'tiruyushchej programmy, prezhde chem otlazhivat' programmu dlya
celevoj mashiny. |tim dostigaetsya proizvoditel'nost' neposredstvennogo
ispolneniya, a ne emulyacii, v sochetanii s nadezhnost'yu stabil'noj mashiny.
Biblioteki programm i uchet. Ochen' uspeshnym i vazhnym primeneniem
vspomogatel'noj mashiny v programme razrabotki OS/360 byla podderzhka
bibliotek programm. Sistema, razrabotannaya pod rukovodstvom U. R. Krouli (W.
R. Crowley), sostoyala iz dvuh soedinennyh vmeste mashin 7010 i obshchej diskovoj
bazoj dannyh. Na 7010 podderzhivalsya takzhe assembler dlya S/360. V etoj
biblioteke hranilsya ves' protestirovannyj ili nahodyashchijsya v processe
testirovaniya kod, kak ishodnyj, tak i assemblirovannye zagruzochnye moduli.
Na praktike biblioteka byla razbita na podbiblioteki s razlichnymi pravami
dostupa.
Prezhde vsego, u kazhdoj gruppy ili programmista byla oblast' dlya
hraneniya ekzemplyarov programm, kontrol'nyh primerov i okruzheniya, kotoroe
trebovalos' dlya testirovaniya komponentov. Na etoj ploshchadke dlya igr ne bylo
nikakih ogranichenij na dejstviya s sobstvennymi programmami.
Kogda komponent programmista byl gotov k vklyucheniyu v bolee krupnuyu
chast', ego ekzemplyar peredavalsya menedzheru etoj bolee krupnoj sistemy,
kotoryj pomeshchal ego v podbiblioteku sistemnoj integracii. Teper' avtor ne
mog ego izmenit' bez razresheniya menedzhera integracii. Kogda sistema
sobiralas' voedino, etot menedzher provodil vse vidy sistemnogo testirovaniya,
vyyavlyaya oshibki i poluchaya ispravleniya.
CHerez nekotoroe vremya sistemnaya versiya byla gotova dlya bolee shirokogo
ispol'zovaniya. Togda ona peremeshchalas' v podbiblioteku tekushchej versii. |tot
ekzemplyar byl svyashchennym, i dostup k nemu razreshalsya tol'ko dlya ispravleniya
razrushitel'nyh oshibok. Ego mozhno bylo ispol'zovat' dlya integrirovaniya i
testirovaniya vseh novyh versij modulej. Programmnyj katalog na mashine 7010
otslezhival vse versii kazhdogo modulya, ego sostoyanie, mestonahozhdenie i
izmeneniya.
Zdes' vazhny dva obstoyatel'stva. Pervoe - eto kontrol', oznachayushchij, chto
ekzemplyary programm prinadlezhat menedzheram, i tol'ko oni mogut
sankcionirovat' ih izmenenie. Vtoroe - formal'noe razdelenie i peremeshchenie s
ploshchadki dlya igr k integracii i vypusku novoj versii.
Po moemu mneniyu, eto bylo odnim iz luchshih reshenij v programme OS/360.
|ta chast' tehnologii upravleniya byla nezavisimo razrabotana dlya neskol'kih
krupnyh programmnyh proektov, v tom chisle v Bell Labs, ICL i Kembridzhskom
universitete.2 Ona primenima kak k programmam, tak i k dokumentacii. |to -
neocenimaya tehnologiya.
Programmnye instrumenty. Po mere poyavleniya novyh tehnologij otladki
starye teryayut znachenie, no ne ischezayut. Po-prezhnemu neobhodimy dampy pamyati,
redaktory ishodnogo teksta, dampy mgnovennogo sostoyaniya, dazhe trassirovki.
Analogichnym obrazom, trebuetsya polnyj nabor utilit dlya zagruzki kolod
perfokart na diski, kopirovaniya magnitnyh lent, pechati fajlov, izmeneniya
katalogov. Esli instrumental'shchika proekta naznachit' na dostatochno rannej
stadii, to vse eto mozhet byt' sdelano srazu i nahodit'sya v gotovnosti k
momentu nadobnosti.
Sistema dokumentacii. Iz vseh instrumentov bol'she vsego truda mozhet
sberech' komp'yuterizirovannaya sistema redaktirovaniya teksta, dejstvuyushchaya na
nadezhnoj mashine. Nasha sistema, razrabotannaya Dzh. U. Franklinom (J. W.
Franklin), byla ochen' udobna. YA dumayu, bez nee rukovodstva po OS/360
poyavilis' by znachitel'no pozdnee i okazalis' by bolee zaputannymi. Est'
lyudi, kotorye stanut utverzhdat', chto dvuhmetrovaya polka rukovodstv po OS/360
yavlyaetsya sledstviem nederzhaniya rechi, i sama ee ob容mistost' yavlyaet soboj
novyj tip nepostizhimosti. I dolya pravdy v etom est'.
No u menya est' dva vozrazheniya. Vo-pervyh, hotya dokumentaciya po OS/360 i
oshelomlyaet razmerami, plan ee izucheniya tshchatel'no izlozhen. Esli ispol'zovat'
ego izbiratel'no, to chashche vsego mozhno ne obrashchat' vnimaniya na bol'shuyu chast'
vsej massy. Dokumentaciyu po OS/360 nuzhno rassmatrivat' kak biblioteku ili
enciklopediyu, a ne material dlya obyazatel'nogo chteniya.
Vo-vtoryh, eto gorazdo luchshe, chem krajnyaya nedostatochnost' dokumentacii,
harakternaya dlya bol'shinstva sistem programmirovaniya. YA ohotno soglashus', tem
ne menee, chto v nekotoryh mestah tekst mozhno bylo znachitel'no uluchshit', i
rezul'tatom luchshego opisaniya stal by men'shij ob容m. Nekotorye chasti
(naprimer, "Koncepcii i sredstva") sejchas ochen' horosho napisany.
|mulyator proizvoditel'nosti. Luchshe ego imet'. Razrabotajte ego "snaruzhi
vnutr'", kak opisano v sleduyushchej glave. Ispol'zujte odinakovoe
proektirovanie sverhu vniz dlya emulyatora proizvoditel'nosti, emulyatora
logiki i samogo produkta. Nachnite rabotu s nim kak mozhno ran'she.
Prislushajtes' k tomu, chto on vam skazhet.
YAzyki vysokogo urovnya i interaktivnoe programmirovanie
Segodnya dva vazhnejshih instrumenta sistemnogo programmirovaniya - eto
te, kotorye ne ispol'zovalis' pri razrabotke OS/360 pochti desyatiletie nazad.
Oni do sih por ne ochen' shiroko ispol'zuyutsya, no vse ukazyvaet na ih moshch' i
primenimost'. |to: a) yazyki vysokogo urovnya i b) interaktivnoe
programmirovanie. YA ubezhden, chto tol'ko inertnost' i len' prepyatstvuet
povsemestnomu prinyatiyu etih instrumentov, tehnicheskie trudnosti bolee ne
yavlyayutsya izvineniyami.
YAzyki vysokogo urovnya. Glavnye osnovaniya dlya ispol'zovaniya yazykov
vysokogo urovnya - eto proizvoditel'nost' i skorost' otladki.
Proizvoditel'nost' my obsuzhdali ran'she (glava 8). Imeyushchiesya dannye, hotya i
nemnogochislennye, ukazyvayut na mnogokratnyj rost, a ne na uvelichenie na
neskol'ko procentov.
Uluchshenie otladki proishodit blagodarya tomu, chto oshibok stanovitsya
men'she, a nahodit' ih legche. Ih men'she, poskol'ku ustranyaetsya celyj uroven'
obrazovaniya oshibok, uroven', na kotorom delayutsya ne tol'ko sintaksicheskie,
no i semanticheskie oshibki, takie kak nepravil'noe ispol'zovanie registrov.
Ih legche nahodit', poskol'ku v etom pomogaet diagnostika kompilyatora i, chto
eshche vazhnee, ochen' legko vstavlyat' poluchenie otladochnyh momental'nyh snimkov.
Menya eti vozmozhnosti proizvoditel'nosti i otladki oshelomlyayut. Mne
trudno predstavit' sebe sistemu programmirovaniya, kotoruyu ya stal by
sozdavat' na yazyke assemblera.
Nu, a kak s klassicheskimi vozrazheniyami protiv etogo instrumenta? Ih
tri: ya ne mogu sdelat' to, chto hochu; rezul'tiruyushchaya programma slishkom
velika; rezul'tiruyushchaya programma slishkom medlenna.
CHto kasaetsya vozmozhnostej, vozrazhenie, ya dumayu, bol'she ne sostoyatel'no.
Vse svidetel'stvuet v pol'zu togo, chto mozhno delat' to, chto hochetsya,
potrudivshis' najti sposob, no inogda dlya etogo prihoditsya izlovchit'sya.3, 4
CHto kasaetsya pamyati, to novye optimiziruyushchie kompilyatory nachinayut
pokazyvat' ves'ma udovletvoritel'nye rezul'taty, i ih usovershenstvovanie
prodolzhaetsya.
CHto kasaetsya skorosti, to optimiziruyushchie kompilyatory inogda porozhdayut
kod, kotoryj zachastuyu vypolnyaetsya bystree, chem napisannyj vruchnuyu. Bolee
togo, problemy skorosti mozhno obychno reshit', zameniv ot 1 do 5 procentov
skompilirovannoj programmy kodom, napisannym vruchnuyu, posle ee polnoj
otladki.5
Kakoj yazyk vysokogo urovnya sleduet ispol'zovat' dlya sistemnogo
programmirovaniya? Segodnya edinstvennyj dostojnyj kandidat - PL/I.6 U nego
ochen' polnyj nabor operatorov; on sootvetstvuet okruzheniyu operacionnoj
sredy; imeetsya celyj ryad kompilyatorov s raznymi osobennostyami -
interaktivnyh, bystryh, s uluchshennoj diagnostikoj, s vysokoj stepen'yu
optimizacii. Lichno ya bystree razrabatyvayu algoritmy s pomoshch'yu APL; zatem ya
perevozhu ih v PL/I dlya sootvetstviya sistemnomu okruzheniyu.
Interaktivnoe programmirovanie. Odnim iz opravdanij proekta MTI MULTICS
byla ego pol'za dlya sozdaniya sistem programmirovaniya. MULTICS (i vsled za
tem TSS IBM) konceptual'no otlichaetsya ot drugih interaktivnyh komp'yuternyh
sistem imenno v teh otnosheniyah, kotorye neobhodimy dlya sistemnogo
programmirovaniya: mnogourovnevaya sistema razdeleniya dostupa i zashchity dannyh
i programm, intensivnoe upravlenie bibliotekami i sredstva dlya sovmestnoj
raboty pol'zovatelej terminalov. YA ubezhden, chto vo mnogih prilozheniyah
interaktivnye sistemy nikogda ne zamenyat sistemy s obrabotkoj paketnyh
zadanij. No ya dumayu, chto sozdateli MULTICS priveli samye ubeditel'nye dovody
v ee pol'zu imenno v primenenii k sistemnomu programmirovaniyu.
Poka est' ne mnogo svidetel'stv dejstvitel'noj plodotvornosti etih
ochevidno moshchnyh instrumentov. Sushchestvuet shiroko rasprostranennoe priznanie
togo, chto otladka yavlyaetsya trudnoj i medlennoj chast'yu sistemnogo
programmirovaniya, i medlennaya oborachivaemost' - proklyatie otladki. Poetomu
logika interaktivnogo programmirovaniya kazhetsya neumolimoj.7
Ris. 12.2 Sravnitel'naya proizvoditel'nost' pri paketnom i dialogovom
Programmirovanii
Pomimo togo, est' horoshie otzyvy teh, kto razrabotal takim sposobom
nebol'shie sistemy ili chasti sistem. Edinstvennye dostupnye mne dannye
otnositel'no vliyaniya na programmirovanie bol'shih sistem ishodyat ot Dzhona
Harra iz Bell Labs. Oni predstavleny na risunke 12.2. |ti cifry ohvatyvayut
napisanie, assemblirovanie i otladku programm. Pervaya programma yavlyaetsya, v
osnovnom, upravlyayushchej. Ostal'nye tri - yazykovye translyatory, redaktory i
t.p. Dannye Harra pozvolyayut predpolozhit', chto sredstva interaktivnoj raboty,
po krajnej mere, udvaivayut proizvoditel'nosti sistemnogo programmirovaniya.8
|ffektivnoe ispol'zovanie bol'shinstva interaktivnyh sredstv trebuet,
chtoby rabota proizvodilas' na yazyke vysokogo urovnya, poskol'ku teletajp i
pishushchuyu mashinku nel'zya ispol'zovat' dlya polucheniya dampa pamyati. S
ispol'zovaniem yazyka vysokogo urovnya legko redaktirovat' ishodnyj tekst i
delat' otdel'nye raspechatki. Vmeste oni dejstvitel'no sostavlyayut paru
ottochennyh instrumentov.
Glava 13. Celoe i chasti
YA duhov vyzyvat' mogu iz bezdny.
I ya mogu, i kazhdyj mozhet,
Vopros lish', yavyatsya l' na zov oni?
SHEKSPIR, KOROLX GENRIH IV
Sredi sovremennyh kudesnikov, kak i vstar', vstrechayutsya hvastuny: "YA
mogu pisat' programmy, kotorye upravlyayut vozdushnym dvizheniem, perehvatyvayut
ballisticheskie rakety, delayut perevody po bankovskim schetam, upravlyayut
proizvodstvennymi liniyami". Na chto est' otvet: "I ya mogu, i kazhdyj mozhet, no
budet li rabotat' to, chto ty napishesh'?"
Kak napisat' programmu, kotoraya budet rabotat'? Kak protestirovat'
programmu? I kak ob容dinit' nabor protestirovannyh programm-komponentov v
protestirovannuyu i nadezhnuyu sistemu? Neskol'ko raz my uzhe kasalis'
sootvetstvuyushchih priemov, davajte teper' rassmotrim ih bolee sistematicheski.
Proektirovanie bez oshibok
Zashchita opredelenij ot oshibok. Samye pagubnye i neulovimye sistemnye
oshibki voznikayut iz-za nesootvetstviya dopushchenij, sdelannyh avtorami
razlichnyh komponentov. Podhod k konceptual'noj celostnosti, izlozhennyh vyshe
v glavah 4, 5 i 6, neposredstvenno obrashchaetsya k etim problemam. Kratko
govorya, konceptual'naya celostnost' produkta ne tol'ko uproshchaet ego
ispol'zovanie, no takzhe oblegchaet razrabotku i delaet menee podverzhennym
oshibkam.
Takuyu zhe rol' vypolnyaet detalizirovannaya trudoemkaya rabota po
razrabotke arhitektury, podrazumevaemaya etim podhodom. V. A. Vysockij iz
proekta Safeguard, vypolnyavshegosya v Bell Telephone Laboratories, govorit
tak: "Reshayushchaya zadacha - dat' opredelenie dlya produkta. Ochen' mnogie neudachi
svyazany imenno s temi aspektami, kotorye ne byli vpolne specificirovany".1
Tshchatel'noe opredelenie funkcij, tshchatel'naya specifikaciya i staratel'noe
izbeganie vseh ukrashatel'stv funkcij i poletov tehnicheskoj mysli - vse eto
snizhaet kolichestvo sistemnyh oshibok, kotorye budut obnaruzheny.
Proverka specifikacii. Zadolgo do napisaniya vsyakogo koda specifikaciya
dolzhna byt' peredana storonnej gruppe testirovaniya dlya tshchatel'nogo
rassmotreniya polnoty i yasnosti. Kak schitaet Vysockij, sami razrabotchiki
sdelat' eto ne mogut: "Oni ne mogut priznat'sya, chto ne ponimayut ee, oni
budut schastlivo prokladyvat' svoj put' cherez propushchennye i temnye mesta".
Nishodyashchee proektirovanie. V ochen' chetkoj stat'e 1971 goda Niklaus Virt
formalizoval proceduru razrabotki, godami ispol'zovavshuyusya luchshimi
programmistami.2 Bolee togo, ego zamechaniya, sdelannye v otnoshenii razrabotki
programm, polnost'yu primenimy k razrabotke slozhnyh programmnyh sistem.
Voploshcheniem etih zamechanij yavlyaetsya razdelenie sozdaniya sistem na
proektirovanie arhitektury, razrabotku i realizaciyu. Bolee togo, kazhdaya iz
zadach proektirovaniya arhitektury, razrabotki i realizacii luchshe vsego mozhet
byt' reshena nishodyashchimi metodami.
Vkratce, metod Virta opredelyaet razrabotku kak posledovatel'nost'
utochnyayushchih shagov. Nabrasyvaetsya primernoe opisanie zadachi i grubyj metod
resheniya, pozvolyayushchij poluchit' osnovnoj rezul'tat. Zatem opredelenie
izuchaetsya bolee pristal'no, chtoby uvidet', v chem otlichie poluchennogo
rezul'tata ot trebuemogo, i krupnye etapy resheniya razbivayutsya na bolee
melkie. Kazhdoe utochnenie v opredelenii zadachi stanovitsya utochneniem
algoritma resheniya i mozhet soprovozhdat'sya utochneniem predstavleniya dannyh.
V etom processe vyyavlyayutsya moduli resheniya ili dannyh, dal'nejshee
utochnenie kotoryh mozhet byt' prodolzheno nezavisimo ot osnovnoj raboty.
Stepen' takoj modul'nosti opredelyaet gibkost' i izmenyaemost' programmy.
Virt schitaet neobhodimym ispol'zovanie na kazhdom shage notacii kak mozhno
bolee vysokogo urovnya, chtoby vydelit' ponyatiya i skryt' detali, poka ne
stanet neobhodimym dal'nejshee utochnenie.
Pravil'no osushchestvlyaemoe nishodyashchee proektirovanie pozvolyaet izbegat'
oshibok po neskol'kim prichinam. Vo-pervyh, prozrachnost' struktury i
predstavleniya oblegchaet tochnuyu formulirovku trebovanij k modulyam i ih
funkcij. Vo-vtoryh, raschlenenie i nezavisimost' modulej pomogayut izbezhat'
sistemnyh oshibok. V- tret'ih, proekt mozhno testirovat' na kazhdom utochnyayushchem
shage, poetomu testirovanie mono nachat' ran'she i na kazhdom shage
sosredotochit'sya na podhodyashchem urovne detalizacii.
Process poshagovogo utochneniya ne oznachaet, chto v sluchae stolknoveniya s
kakoj- nibud' neozhidanno zatrudnitel'noj detal'yu ne prihoditsya vozvrashchat'sya
nazad, otbrasyvat' samyj verhnij uroven' i nachinat' vse snachala. Na praktike
eto chasto sluchaetsya. No stanovitsya znachitel'no legche tochno uvidet', kogda i
pochemu nuzhno otbrosit' ves' proekt i nachat' snachala. Mnogie slabye sistemy
poyavlyayutsya v rezul'tate popytok sohranit' skvernyj pervonachal'nyj proekt
putem raznogo roda kosmeticheskih zaplatok. Nishodyashchee proektirovanie
umen'shaet takoj soblazn. YA ubezhden, chto nishodyashchee proektirovanie yavlyaetsya
vazhnejshej novoj formalizaciej programmirovaniya za desyatiletie.
Strukturnoe programmirovanie. Drugoj vazhnyj krug idej dlya razrabotki,
sokrashchayushchih chislo oshibok v programme, ishodit to Dejkstry (Dijkstra)3 i
postroen na teoreticheskoj strukture Bema (Boehm) i Dzhakopini (Jacopini).4
V svoej osnove podhod zaklyuchaetsya v razrabotke programm, upravlyayushchie
struktury kotoryh sostoyat tol'ko iz ciklov, opredelyaemyh takimi operatorami,
kak DO WHILE i gruppami uslovno vypolnyaemyh operatorov, ogranichennyh
skobkami s ispol'zovaniem operatorov usloviya IF...THEN...ELSE. Bem i
Dzhakopini pokazyvayut teoreticheskuyu dostatochnost' takih struktur. Dejkstra
dokazyvaet, chto al'ternativnoe neogranichennoe primenenie vetvlenie s pomoshch'yu
GO TO obrazuet struktury, raspolagayushchie k poyavleniyu logicheskih oshibok.
V osnove, nesomnenno, lezhat zdravye mysli. Pri obsuzhdenii sdelano mnogo
kriticheskih zamechanij - v chastnosti, bol'shoe udobstvo predstavlyayut
dopolnitel'nye upravlyayushchie struktury, takie kak n-variantnyj perehod (tak
nazyvaemyj operator CASE) dlya razlicheniya sredi neskol'kih sluchaev i
avarijnyj vyhod (GO TO ABNORMAL END). Krome togo, nekotorye dogmaticheski
izbegayut vseh GO TO , chto predstavlyaetsya chrezmernym.
Vazhnoj i sushchestvennoj dlya sozdaniya programm, ne soderzhashchih oshibok,
yavlyaetsya neobhodimost' rassmatrivat' upravlyayushchie struktury sistemy kak
upravlyayushchie struktury, a ne kak otdel'nye operatory perehoda. Takoj obraz
mysli yavlyaetsya bol'shim shagom vpered.
Otladka komponentov
Za poslednie dvadcat' let procedury otladki programm proshli bol'shoj
krug i v nekotoryh otnosheniyah vernulis' k nachal'noj tochke. Cikl proshel
chetyre etapa i lyubopytno prosledit' ih, otmetiv motivaciyu perehoda.
Otladka v aktivnom rezhime. U pervyh mashin bylo sravnitel'no slaboe
oborudovanie vvoda-vyvoda, obuslovlivavshee bol'shie zaderzhki. Obychno mashina
ispol'zovala dlya chteniya i zapisi bumazhnye i magnitnye lenty, a dlya
podgotovki lent i pechati ispol'zovalis' avtonomnye sredstva. Iz-za etogo
vvod-vyvod na lentu byl nevynosimo neudoben dlya otladki, i dlya nee
ispol'zovalas' konsol'. Poetomu otladka organizovyvalas' takim obrazom,
chtoby obespechit' za seans raboty s mashinoj vozmozhno bol'shee chislo proverok.
Programmist tshchatel'no razrabatyval svoi procedury otladki, planiruya
mesta ostanovki, adresa pamyati dlya prosmotra, ih vozmozhnoe soderzhimoe i
dal'nejshie dejstviya v zavisimosti ot soderzhimogo. |to dotoshnoe
programmirovanie samogo sebya v kachestve otladchika vpolne moglo zanyat'
polovinu vremeni napisaniya otlazhivaemoj programmy.
Glavnym grehom bylo smelo nazhat' knopku START, ne razbiv predvaritel'no
programmu na otlazhivaemye sekcii s zaplanirovannymi ostanovkami.
Dampy pamyati. Otladka v aktivnom rezhime byla ochen' effektivnoj. Za
dvuhchasovuyu otladku mozhno bylo zapustit' programmu raz desyat'. No komp'yutery
byli malochislenny i ochen' dorogi, i mysl' o takoj naprasnoj trate mashinnogo
vremeni uzhasala.
Poetomu, kogda poyavilis' skorostnye printery, podklyuchaemye v aktivnom
rezhime, tehnologiya izmenilas'. Programma zapuskalas' i rabotala do
vozniknoveniya oshibki, posle chego raspechatyvalsya damp pamyati. Togda nachinalsya
kropotlivyj trud za stolom po izucheniyu soderzhimogo kazhdogo adresa. Vremeni
uhodilo primerno stol'ko zhe, skol'ko i pri otladke na mashine, no eto bylo
uzhe posle kontrol'nogo progona, i rabota sostoyala v rasshifrovke dannyh, a ne
v planirovanii, kak prezhde. Dlya kazhdogo otdel'nogo pol'zovatelya otladka
zanimala znachitel'no bol'shij srok, poskol'ku testovye zapuski zaviseli ot
oborachivaemosti paketnoj obrabotki. Odnako procedura v celom byla
prednaznachena dlya sokrashcheniya vremeni ispol'zovaniya komp'yutera i obsluzhivaniya
vozmozhno bol'shego chisla programmistov.
Snimki momental'nogo sostoyaniya. Mashiny, dlya kotoryh byli razrabotany
dampy pamyati, imeli pamyat' razmerom 2000-4000 slov, ili 8-16 Kbajt. Odnako
razmer pamyati ros ogromnymi tempami, i delat' damp pamyati stalo nereal'nym.
Poetomu razrabotali metody vyborochnogo dampa, vyborochnoj trassirovki i
vstavki v programmy komand dlya momental'nyh snimkov. Vershinoj razvitiya etogo
napravleniya stal TESTRAN v OS/360, pozvolyavshij vstavlyat' v programmu
momental'nye snimki bez povtornoj sborki i kompilyacii.
Interaktivnaya otladka. V 1959 godu Kodd (Codd) s kollegami5 i Strejchi
(Strachey)6 soobshchili o rabote, cel'yu kotoroj byla otladka v rezhime
razdeleniya vremeni, pozvolyayushchaya odnovremenno dostich' mgnovennoj
oborachivaemosti otladki v aktivnom rezhime i effektivno ispol'zovat' mashinnoe
vremya, kak pri paketnoj obrabotke zadanij. Komp'yuter dolzhen byl imet' v
pamyati neskol'ko programm, gotovyh k zapusku. Terminal, upravlyaemyj tol'ko
programmoj, dolzhen byl byt' svyazan s kazhdoj iz otlazhivaemyh programm.
Otladka dolzhna byla prohodit' pod upravleniem programmy-supervizora. Kogda
programmist za terminalom ostanavlival svoyu programmu, chtoby izuchit' ee
vypolnenie ili vnesti izmeneniya, supervizor zapuskal druguyu programmu,
zanimaya takim obrazom mashinu.
Mul'tiprogrammnaya sistema Kodda byla razrabotana, no akcent byl sdelan
na uvelichenie proizvoditel'nosti blagodarya effektivnomu ispol'zovaniyu vvoda-
vyvoda, i interaktivnaya otladka ne byla osushchestvlena. Idei Strejchi byli
uluchsheny i v 1963 godu voploshcheny Korbato s kollegami v MTI v
eksperimental'noj sisteme 7090. |to razrabotke privela k MULTICS, TSS i
drugim segodnyashnim sistemam razdeleniya vremeni.
Glavnymi oshchushchaemymi pol'zovatelem razlichiyami mezhdu otladkoj v aktivnom
rezhime, kak ona osushchestvlyalas' ranee, i segodnyashnej interaktivnoj otladkoj
yavlyayutsya vozmozhnosti, poluchennye v rezul'tate prisutstviya programmy-
supervizora i svyazannyh s nej interpretatorov yazykov programmirovaniya. Mozhno
programmirovat' i proizvodit' otladku na yazykah vysokogo urovnya. |ffektivnye
sredstva redaktirovaniya pozvolyayut legko delat' izmeneniya i momental'nye
snimki.
Vozvrat k mgnovennoj oborachivaemosti otladki v aktivnom rezhime poka ne
privel k vozvrashcheniyu predvaritel'nogo planirovaniya otladochnyh seansov. V
sushchnosti, takoe predvaritel'noe planirovanie ne stol' neobhodimo, kak
ran'she