, poskol'ku mashinnoe vremya teper' ne tratitsya vpustuyu, poka chelovek
sidit i dumaet.
Tem ne menee interesnye eksperimental'nye dannye Golda (Gold)
pokazyvayut, chto vo vremya pervogo dialoga kazhdogo seansa dostigaetsya vtroe
bol'shij progress v interaktivnoj otladke, chem pri posleduyushchih dialogah.8 |to
ubeditel'no govorit o tom, chto iz-za otsutstviya planirovaniya my ne polnost'yu
realizuem potencial dialogovoj raboty. Pora stryahnut' pyl' so staryh metodov
raboty v interaktivnom rezhime.
YA schitayu, chto dlya pravil'nogo ispol'zovaniya horoshej terminal'noj
sistemy na kazhdye dva chasa raboty za terminalom dolzhno prihodit'sya dva chasa
raboty za stolom. Polovina etogo vremeni uhodit na podchistki posle pervogo
seansa: vnesenie izmenenij v zhurnal otladki, podshivku novyh listingov v
sistemnyj zhurnal, ob座asnenie neponyatnyh yavlenij. Vtoraya chast' uhodit na
podgotovku: planirovanie izmenenij i usovershenstvovanij i razrabotku
detal'nyh testov dlya ocherednogo seansa. Bez takogo planirovaniya trudno
podderzhivat' produktivnost' na protyazhenii vseh dvuh chasov. Bez podchistki
posle seansa trudno sdelat' posledovatel'nost' seansov sistematichnoj i
prodvigayushchej rabotu vpered.
Kontrol'nye primery. CHto kasaetsya razrabotki fakticheskih procedur
otladki i kontrol'nyh primerov, osobenno udachnoe izlozhenie predlagaet
Gryunberger (Gruenberger),9 est' i bolee korotkie opisaniya v drugih izvestnyh
uchebnikah.10, 11
Sistemnaya otladka
Neozhidanno trudnym etapom sozdaniya sistemy programmirovaniya
okazyvaetsya testirovanie sistemy. YA uzhe obsuzhdal nekotorye prichiny kak ego
trudnosti, tak i nepredskazuemosti. Mozhno ne somnevat'sya v dvuh veshchah:
sistemnaya otladka zajmet bol'she vremeni, chem predpolagaetsya, a ee slozhnost'
opravdyvaet doskonal'no sistematichnyj i planovyj podhod. Rassmotrim, chto
vklyuchaet v sebya takoj podhod.12
Ispol'zujte otlazhennye komponenty. Obychnyj zdravyj smysl, esli ne
obychnaya praktika, podskazyvayut, chto sistemnuyu otladku nuzhno nachinat', kogda
rabotaet kazhdaya sostavlyayushchaya chast'.
Dalee obshcheprinyataya praktika sleduet dvumya putyami. Pervyj podhod -
"svinti i poprobuj". Vidimo, on osnovyvaetsya na tom, chto krome oshibok v
komponentah najdutsya i oshibki v sisteme (t.e. v interfejsah). CHem skoree
chasti budut soedineny vmeste, tem skoree vsplyvut sistemnye oshibki. Legko
takzhe predstavit', chto, ispol'zuya komponenty dlya testirovaniya drug druga,
mozhno v znachitel'noj mere izbezhat' sozdaniya okruzheniya dlya testirovaniya. I
to, i drugoe, ochevidno, yavlyaetsya pravdoj, no, kak pokazyvaet opyt, ne vsej
pravdoj: znachitel'no bol'she vremeni sberegaetsya pri testirovanii sistemy s
ispol'zovaniem chistyh otlazhennyh komponentov, chem ego tratitsya na sozdanie
okruzheniya i doskonal'noj proverki komponentov.
Neskol'ko bolee tonkim yavlyaetsya podhod "dokumentirovannoj oshibki". On
oznachaet, chto komponent gotov k ispol'zovaniyu v sistemnoj proverke, kogda
vse ego oshibki najdeny, no neobyazatel'no uzhe ispravleny. Togda,
teoreticheski, pri sistemnom testirovanii vozmozhnye effekty etih oshibok
izvestny i mogut byt' proignorirovany, a sosredotochit'sya mozhno na novyh
yavleniyah.
Vse eto oznachaet prinimat' zhelaemoe za dejstvitel'noe i proishodit ot
stremleniya ob座asnit' proval grafika rabot. Nikto ne znaet vseh vozmozhnyh
posledstvij izvestnyh oshibok. Esli by vse bylo prosto, sistemnoe
testirovanie ne vyzyvalo by zatrudnenij. Krome togo, ispravlenie
dokumentirovannyh oshibok, nesomnenno, privedet k vneseniyu novyh oshibok, i
sistemnyj test okazhetsya isporchennym.
Sozdajte bol'she okruzhenij. Pod "okruzheniem" ya ponimayu vse programmy i
dannye, sozdannye dlya celej otladki, no ne prednaznachennye dlya ispol'zovaniya
v konechnom produkte. V okruzhenii net smysla imet' i poloviny togo koda,
kotoryj vhodit v produkt.
Odin iz vidov okruzheniya - fiktivnyj komponent, kotoryj mozhet sostoyat'
tol'ko iz interfejsov i, vozmozhno, kakih-nibud' iskusstvennyh dannyh ili
nebol'shih kontrol'nyh primerov. Naprimer, v sistemu mozhet vhodit' programma
sortirovki, kotoraya eshche ne zakonchena. Svyazannye s nej komponenty mozhno
testirovat' s pomoshch'yu fiktivnoj programmy, kotoraya prosto chitaet i proveryaet
format vhodnyh dannyh i vozvrashchaet nabor pravil'no otformatirovannyh
bessmyslennyh, no uporyadochennyh dannyh.
Drugoj vid - mini-fajl. Rasprostranennym vidom sistemnoj oshibki
yavlyaetsya nepravil'noe vospriyatie formatov lentochnyh i diskovyh fajlov.
Poetomu stoit sozdat' neskol'ko malen'kih fajlov, soderzhashchih lish' neskol'ko
tipovyh zapisej i vse opisaniya, ukazateli i t.p.
Predel'nyj sluchaj mini-fajla - fiktivnyj fajl, kotoryj fakticheski ne
sushchestvuet. YAzyk upravlyayushchih zadanij OS/360 imeet takoe sredstvo, i ono
ochen' polezno dlya otladki komponentov.
Drugoj vid okruzheniya - vspomogatel'nye programmy. Generatory dannyh dlya
testirovaniya, pechat' special'nogo analiza, analizatory tablic perekrestnyh
ssylok - vse eto primery special'nyh prisposoblenij, kotorye mozhet
potrebovat'sya sozdat'.13
Kontrolirujte izmeneniya. ZHestkij kontrol' vo vremya testirovaniya
yavlyaetsya vpechatlyayushchim metodom otladki apparatury, s uspehom primenimym k
sistemam programmirovaniya.
Prezhde vsego, kto-to dolzhen byt' otvetstvennym. On, i tol'ko on dolzhen
razreshat' izmeneniya v komponentah i zamenu odnoj versii drugoj.
Dalee, kak obsuzhdalos' vyshe, sistema dolzhna imet' kontroliruemye
ekzemplyary: odin ekzemplyar s poslednimi versiyami, nahodyashchijsya pod zamkom i
ispol'zuemyj dlya testirovaniya komponentov; odin testiruemyj ekzemplyar s
ustanovlennymi ispravleniyami; rabochie ekzemplyary kazhdogo sotrudnika dlya
vneseniya ispravlenij i dopolnenij v svoi komponenty.
V tehnicheskih modelyah System/360 sredi obychnyh zheltyh provodov mozhno
bylo inogda videt' fioletovye provoda. Pri obnaruzhenii defekta delalis' dve
veshchi. Bystro pridumyvalos' ispravlenie i ustanavlivalos' v sisteme, chtoby
prodolzhit' otladku. |to izmenenie delalos' fioletovymi provodami, tak chto
ono torchalo kak bel'mo na glazu. Izmenenie registrirovalos' v zhurnale. Tem
vremenem gotovilsya oficial'nyj dokument o vnesenii ispravlenij, kotoryj
zapuskalsya v zhernova avtomatizirovannogo proektirovaniya. V itoge eto
vylivalos' v izmenennye chertezhi i spiski provodov i novuyu zadnyuyu panel', v
kotoroj izmeneniya byli sdelany na pechatnoj plate ili zheltymi provodami.
Teper' fizicheskaya model' i dokumentaciya sootvetstvovali drug drugu, i
fioletovyj provod ischezal.
Programmirovaniyu tozhe trebuetsya tehnologiya fioletovyh provodov, i ochen'
trebuetsya zhestkij kontrol' i glubokoe uvazhenie k dokumentu, kotoryj v
konechnom schete, okazhetsya produktom. Neot容mlemymi sostavlyayushchimi takoj
tehnologii yavlyayutsya registraciya vseh izmenenij v zhurnale i zametnoe otlichie
v ishodnom kode mezhdu zaplatkami na skoruyu ruku i produmannymi i
dokumentirovannymi ispravleniyami.
Dobavlyajte komponenty po odnomu. |tot recept takzhe ocheviden, no im
chasto prenebregayut iz-za optimizma i leni. CHtoby sledovat' emu, trebuyutsya
fiktivnye programmy i raznoe okruzhenie, a eto otnimaet vremya. I v konce
koncov, vsya eta rabota mozhet okazat'sya lishnej! Mozhet byt', oshibok i net!
Net! Protiv'tes' soblaznu! |to to, v chem zaklyuchaetsya sistematichnoe
testirovanie sistemy. Nuzhno predpolagat', chto oshibok budet mnogo, i
planirovat' uporyadochennuyu proceduru izbavleniya ot nih.
Uchtite, chto nuzhno imet' polnyj nabor kontrol'nyh primerov dlya proverki
chastichno sobrannyh sistem posle dobavleniya kazhdogo komponenta. Prezhnie
primery, uspeshno vypolnennye na poslednej chastichnoj sborke, nuzhno
perezapustit' na novoj, chtoby proverit', ne uhudshilas' li sistema.
Kvantujte izmeneniya. Po mere sozrevaniya sistemy vremya ot vremeni
nachinayut poyavlyat'sya razrabotchiki komponentov, prinosya svezhie versii svoih
izdelij - bolee bystrye, men'shie po razmeru, bolee polnye ili
predpolozhitel'no soderzhashchie men'she oshibok. Zamena rabotayushchego komponenta
novoj versiej trebuet takoj zhe sistematicheskoj procedury testirovaniya, kak i
dobavlenie novogo komponenta, hotya i trebuet men'she vremeni, poskol'ku
obychno uzhe imeyutsya bolee polnye i effektivnye kontrol'nye primery.
Kazhdaya komanda, sozdayushchaya novyj komponent, ispol'zuet novejshuyu versiyu
integrirovannoj sistemy v kachestve sredy dlya otladki svoego komponenta.
Prodelannaya rabota budet otbroshena nazad, esli eta sreda izmenitsya. Konechno,
ona dolzhna izmenit'sya. No vnesenie izmenenij nuzhno proizvodit' kvantami.
Togda u kazhdogo pol'zovatelya budut promezhutki produktivnoj stabil'nosti,
preryvaemye paketnym obnovleniem sredy testirovaniya. |to okazyvaetsya
znachitel'no menee razrushitel'nym, chem postoyannye volneniya i drozh'.
Leman i Beladi dayut svidetel'stva v pol'zu togo, chto kvant izmenenij
dolzhen byt' libo ochen' bol'shim i redkim, libo ochen' malen'kim i chastym.14
Poslednyaya strategiya, soglasno ih modeli, bol'she podverzhena neustojchivosti.
Moj opyt eto podtverzhdaet: ya nikogda ne risknu ispol'zovat' ee na praktike.
Kvantovye izmeneniya horosho vpisyvayutsya v tehnologiyu fioletovyh
provodov. Bystraya zaplatka derzhitsya do sleduyushchej regulyarnoj versii
komponenta, kotoraya dolzhna soderzhat' ispravlenie v otlazhennom i
dokumentirovannom vide.
Glava 14. Nazrevanie katastrofy
Nikto ne lyubit prinosyashchego durnye vesti.
SOFOKA
Kak okazyvaetsya, chto proekt zapazdyvaet na god?
... Snachala zapazdyvaet na odin den'.
Kogda slyshish' o katastroficheskom otstavanii proekta ot grafika, to
predstavlyaetsya ryad obrushivshihsya na nego bol'shih bedstvij. Odnako obychno
prichinoj katastrofy sluzhat ne smerchi, a termity: otstavanie ot grafika
proishodit nezametno, no neumolimo. Na samom dele, s krupnymi bedstviyami
spravit'sya legche: ispol'zuyutsya krupnye sily, korennaya reorganizaciya,
izobretayutsya novye podhody. Vsya komanda podnimaetsya na bor'bu.
Otstavanie, rastushchee ponemnogu izo dnya v den', trudnee raspoznat',
trudnee predotvratit', trudnee ispravit'. Vchera ne udalos' provesti
soveshchanie iz-za bolezni klyuchevogo rabotnika. Segodnya vyklyucheny vse mashiny,
potomu chto molniya udarila v silovoj transformator. Zavtra ne udastsya nachat'
testirovanie procedur raboty s diskami, poskol'ku postavka s zavoda pervogo
diska zaderzhivaetsya na nedelyu. Snegopad, rabota v sude prisyazhnyh, semejnye
problemy, ekstrennye vstrechi s klientami, proverki rukovodstvom - spisok
beskonechen. Kazhdoe sobytie zaderzhivaet kakuyu-nibud' rabotu na poldnya ili
den'. I rastet otstavanie ot grafika, kazhdyj raz eshche na odin den'.
Vehi ili pomehi?
Kak upravlyat' bol'shim proektom po zhestkomu grafiku? Prezhde vsego, nado
imet' grafik. U kazhdogo iz sobytij, nazyvaemyh vehami, dolzhna byt' data.
Vybor dat - uzhe obsuzhdavshayasya zadacha ocenki, i on reshayushchim obrazom zavisit
ot opyta.
Dlya vybora vseh veh est' tol'ko odno prigodnoe pravilo. Vehami dolzhny
sluzhit' konkretnye osobye sobytiya, kotorye mozhno identificirovat' s polnoj
opredelennost'yu. V kachestve otricatel'nyh primerov otmetim, chto napisanie
programmy "zakoncheno na 90 procentov" v techenie poloviny vsego vremeni
kodirovaniya. Otladka "zakonchena na 99 procentov" pochti vsegda. "Planirovanie
zaversheno" - sobytie, kotoroe mozhno ob座avit' pochti proizvol'no.1
Naprotiv, vehi dolzhny byt' 100-procentnymi sobytiyami. "Specifikacii
podpisany arhitektorami i razrabotchikami", "ishodnyj kod gotov na 100
procentov, otperforirovan i zagruzhen v biblioteku na diske", "otlazhennaya
versiya proshla vse kontrol'nye primery". Takie konkretnye vehi razgranichivayut
rasplyvchatye etapy planirovaniya, kodirovaniya i otladki.
Nalichie chetko ocherchennyh granic i nedvusmyslennost' vazhnee, chem
vozmozhnost' legkoj proverki nachal'nikom. Edva li chelovek stanet lgat' o
prohozhdenii vehi, esli ona ocherchena stol' yasno, chto ot ne mozhet sebya
obmanyvat'. A vot esli veha rasplyvchata, nachal'nik chasto vosprinimaet doklad
inache, chem tot, kto emu dokladyvaet. Dopolnyaya Sofokla, skazhem, chto nikto ne
lyubit i sam prinosit' durnye vesti, poetomu oni smyagchayutsya bez zlogo
namereniya vvesti v zabluzhdenie.
Dva interesnyh issledovaniya povedeniya pravitel'stvennyh podryadchikov po
provedeniyu ocenok v krupnomasshtabnyh issledovatel'skih proektah pokazali:
1. Ocenki prodolzhitel'nosti raboty, tshchatel'no provedennye i
peresmatrivaemye kazhdye dve nedeli pered nachalom raboty, ne sil'no menyayutsya
po mere priblizheniya nachala raboty, kakimi by nevernymi oni ni okazalis' v
konechnom itoge.
2. Posle nachala raboty zavyshennye iznachal'no ocenki postoyanno
umen'shayutsya po mere prodvizheniya.
3. Zanizhennye ocenki sushchestvenno ne menyayutsya, poka do zaplanirovannogo
sroka okonchaniya rabot ne ostaetsya okolo treh nedel'.
CHetko razlichimye vehi v dejstvitel'nosti sozdayut udobstvo komande,
kotoraya dolzhna rasschityvat', chto menedzher ih horosho opredelit. S neyasno
vidimoj vehoj zhizn' stanovitsya trudnee. |to uzhe ne veha, a mel'nichnyj
kamen', peretirayushchij boevoj duh, poskol'ku ona vvodit v zabluzhdenie
otnositel'no poter' vremeni, poka oni ne stanut nepopravimymi. A hronicheskoe
otstavanie ot grafika ugnetayushche dejstvuet na moral'noe sostoyanie.
"Drugaya chast' tozhe opazdyvaet"
Otstavanie ot grafika na odin den' - nu i chto? Kogo volnuet otstavanie
na odin den'? Pozzhe nagonim. Drugaya chast', v kotoruyu vhodit nasha, tozhe
otstaet na odin den'.
Menedzher bejsbola schitaet energiyu vazhnym talantom, kak dlya vydayushchihsya
igrokov, tak i dlya vydayushchihsya komand. |to sposobnost' begat' bystree, chem
neobhodimo, peredvigat'sya skoree, chem neobhodimo, starat'sya sil'nee, chem
neobhodimo. |nergiya vazhna i dlya vydayushchihsya komand programmistov. Ona
obespechivaet uprugost', rezervnuyu moshchnost', pozvolyayushchie komande spravit'sya s
povsednevnymi nepriyatnostyami, predvoshishchat' melkie bedy i uberegat'sya ot
nih. Rasschitannaya reakciya, razmerennye usiliya ohlazhdayut energiyu. Kak my
videli, nuzhno prihodit' v vozbuzhdenie iz-za otstavaniya na odin den', ibo oni
yavlyayutsya sostavlyayushchimi katastrofy.
No ne vse otstavaniya na odin den' odinakovo katastrofichny. Poetomu
neobhodimo rasschityvat' reakciyu, hotya eto i oslablyaet energiyu. Kak otlichit'
otstavaniya, kotorye sushchestvenny? Nichem nel'zya zamenit' diagrammy PERT ili
metod kriticheskogo puti. Takaya set' pokazyvaet, kto nahoditsya v ozhidanii
kakih sobytij. Ona pokazyvaet, kto nahoditsya na kriticheskom puti, na kotorom
lyuboe otstavanie vlechet perenos daty okonchaniya. Ona takzhe pokazyvaet, kakoe
predel'noe otstavanie vozmozhno dlya nekotoroj raboty, prezhde chem ono privedet
na kriticheskij put'.
Tehnologiya PERT, strogo govorya, est' razrabotka grafika rabot s
kriticheskim putyami, kogda dlya kazhdogo sobytiya proizvodyatsya tri ocenki,
sootvetstvuyushchie raznym veroyatnostyam ulozhit'sya v ustanovlennye sroki. YA ne
dumayu, chto takoe utochnenie stoit zatrachivaemyh usilij, no dlya kratkosti
vsyakuyu set' s kriticheskim putyami budu nazyvat' diagrammoj PERT.
Podgotovka diagramm PERT est' samaya cennaya chast' ee primeneniya.
Opredelenie topologii seti, ukazanie zavisimostej v nej i ocenivanie putej
zastavlyayut vypolnit' bol'shoj ob容m ochen' konkretnogo planirovaniya na samyh
rannih stadiyah proekta. Pervaya diagramma vsegda uzhasna, i dlya sozdaniya
vtoroj prihoditsya proyavit' mnogo izobretatel'nosti.
Vo vremya vypolneniya proekta diagramma PERT daet otvet na demoralizuyushchie
izvineniya tipa "drugaya chast' tozhe zapazdyvaet". Ona pokazyvaet, kogda
neobhodimo razvit' energiyu, chtoby uvesti svoyu chast' raboty s kriticheskogo
puti, i podskazyvaet sposoby naverstat' poteryannoe vremya v drugih chastyah.
Pod kovrom
Kogda menedzher nizovogo zvena vidit, chto ego malen'kaya komanda
otstaet, on ne sklonen bezhat' k nachal'niku so svoim gorem. Vozmozhno, komanda
sumeet naverstat' vremya, libo on smozhet chto-nibud' pridumat' ili
reorganizovat' dlya resheniya problemy. Zachem zhe bespokoit' etim nachal'nika? Do
pory do vremeni eto dopustimo. Dlya togo i sushchestvuyut menedzhery nizovogo
zvena, chtoby reshat' takie problemy. A u nachal'nika dostatochno drugih zabot,
trebuyushchih ego vmeshatel'stva, chtoby iskat' novye. Tak vsya eta gryaz'
zametaetsya pod kover.
No kazhdomu nachal'niku nuzhny dva vida dannyh: informaciya o sryvah plana,
kotoraya trebuet vmeshatel'stva, i kartina sostoyaniya del, chtoby byt' v kurse.3
S etoj cel'yu on dolzhen znat' polozhenie del vo vseh svoih komandah. Poluchit'
pravdivuyu kartinu nelegko.
V etom meste interesy menedzhera nizovogo zvena i nachal'nika vstupayut v
protivorechie. Menedzher nizovogo zvena boitsya, chto esli on dolozhit nachal'niku
o voznikshej u nego probleme, tot voz'metsya za nee sam. Ego vmeshatel'stvo
otnimet u menedzhera ego funkcii, umen'shit ego vlast' i narushit drugie ego
plany. Poetomu, poka menedzher schitaet, chto mozhet sam reshit' problemu, on ne
dokladyvaet o nej nachal'niku.
U nachal'nika est' dva sposoba zaglyanut' pod kovrik. Ispol'zovat' nuzhno
oba. Pervyj - umen'shit' konflikt rolej i stimulirovat' otkrytie informacii.
Vtoroj - sdernut' kovrik.
Umen'shenie konflikta rolej. V pervuyu ochered' nachal'nik dolzhen provesti
razlichie mezhdu dannymi i dejstviyah i dannymi o sostoyanii del. On dolzhen
priuchit' sebya ne vmeshivat'sya v problemy, kotorye mogut reshit' ego menedzhery,
i nikogda ne vmeshivat'sya v problemy neposredstvenno vo vremya izucheniya
sostoyaniya del. YA znal odnogo nachal'nika, kotoryj neizmenno snimal trubku i
nachinal davat' ukazaniya, ne dochitav do konca pervyj abzac otcheta o sostoyanii
del. Pri takih dejstviyah vam obespecheno utaivanie polnyh dannyh.
Naprotiv, esli menedzher znaet, chto ego nachal'nik vosprimet otchet bez
paniki ili vmeshatel'stva, on budet davat' chestnye ocenki.
Ves' etot process idet uspeshno, esli nachal'nik podcherkivaet, chto
soveshchaniya, zaslushivaniya i konferencii nosyat harakter izucheniya sostoyaniya del,
a ne prinyatiya mer po problemam, i vedet sebya sootvetstvuyushchim obrazom.
Ochevidno, mozhno sozvat' soveshchanie po prinyatiyu mer po rezul'tatam
zaslushivaniya o sostoyanii del, esli voznikaet oshchushchenie, chto problema vyshla
iz-pod kontrolya. No togda po krajnej mere vse znayut, chto proishodit, i
nachal'nik dvazhdy podumaet, prezhde chem vzyat' upravlenie na sebya.
Sdergivanie kovrika. Tem ne menee neobhodimo imet' sposob uznat'
istinnoe polozhenie del nezavisimo ot nalichiya stremleniya k sotrudnichestvu.
Osnovoj takogo izucheniya sluzhit diagramma PERT s chasto raspolozhennymi vehami.
V bol'shom proekte mozhno potrebovat' ezhenedel'nogo izucheniya kakoj-libo chasti
ee, rassmatrivaya vsyu diagrammu raz v mesyac ili okolo togo.
Glavnym dokumentom yavlyaetsya otchet s ukazaniem veh i stepeni ih
fakticheskogo vypolneniya. (Na risunke 14.1 pokazan fragment takogo otcheta.)
On mozhet pokazyvat' otstavanie po nekotorym poziciyam i sluzhit' v kachestve
povestki dnya soveshchaniya. Vsem izvestny vynosimye na nego voprosy, i
sootvetstvuyushchie menedzhery gotovy dolozhit' o prichinah otstavaniya,
predpolagaemyh srokah zaversheniya, prinimaemyh merah, a takzhe trebuetsya li
pomoshch' ot nachal'nika ili drugih grupp, i esli da, to kakaya.
V. Vysockij iz Bell Telephone Laboratories dobavlyaet sleduyushchee
nablyudenie:
Dlya menya okazalos' udobnym imet' v otchete o sostoyanii del dve daty -
"planovuyu" i "ocenivaemuyu". Planovye daty prinadlezhat menedzheru proekta i
predstavlyayut soboj posledovatel'nyj plan raboty dlya proekta v celom, a
priori yavlyayushchijsya priemlemym. Ocenivaemye daty prinadlezhat menedzheram
nizshego zvena, v peredelah kompetencii kotoryh nahodyatsya rassmatrivaemye
uchastki, i predstavlyayut ih mneniya o sroke fakticheskogo nastupleniya sobytiya
pri imeyushchihsya u nih resursah i poluchenii vhodnyh dannyh (ili obyazatel'stvah
ob ih postavke). Menedzher proekta dolzhen ostorozhno otnosit'sya k ocenivaemym
datam i stremit'sya k polucheniyu tochnyh, neiskazhennyh ocenok, a ne
uteshitel'no-optimistichnyh ili perestrahovochno- konservativnyh dannyh. Esli
eta poziciya utverditsya v umah, to menedzher
Ris. 14.1
proekta dejstvitel'no smozhet predvidet', chto on popadet v bedu, esli ne
predprimet kakih-nibud' mer.4
Sozdanie diagrammy PERT yavlyaetsya obyazannost'yu nachal'nika i podotchetnyh
emu menedzherov. Vnesenie v nee izmenenij, peresmotr i podgotovka otchetnosti
dolzhny osushchestvlyat'sya nebol'shoj (ot odnogo do treh chelovek) gruppoj, kak by
prodolzhayushchej nachal'nika. Takaya gruppa planirovaniya i kontrolya neocenima pri
rabote nad bol'shim proektom. Ona ne obladaet inymi polnomochiyami, krome kak
trebovat' ot menedzherov nizovogo zvena predostavleniya svedenij ob ustanovke
ili izmenenii veh i ih dostizhenii. Poskol'ku gruppa planirovaniya i kontrolya
osushchestvlyaet vsyu bumazhnuyu chast' raboty, nagruzka na menedzherov nizovogo
zvena ogranichivaetsya samym vazhnym - prinyatiem reshenij.
U nas byla umelaya, energichnaya i diplomatichnaya gruppa planirovaniya i
kontrolya, vozglavlyavshayasya A. M. P'etrasanta (A. M. Pietrasanta), proyavivshim
znachitel'nye izobretatel'nye sposobnosti dlya razrabotki effektivnyh, no
nenavyazchivyh metodov kontrolya. V rezul'tate ego gruppa pol'zovalas' shirokim
uvazheniem i horoshim otnosheniem. |to nemaloe dostizhenie dlya gruppy, kotoraya
po prirode svoej dolzhna vyzyvat' razdrazhenie.
Vydelenie nebol'shogo chisla podgotovlennyh rabotnikov v gruppu
planirovaniya i kontrolya prinosit bol'shuyu otdachu. Dlya uspeshnogo zaversheniya
proekta eto znachitel'no luchshe, chem esli by oni neposredstvenno zanimalis'
razrabotkoj programmnyh produktov, tak kak gruppa planirovaniya i kontrolya
stoit na strazhe togo, chtoby neoshchutimye zaderzhki stali vidimymi, i
signaliziruet o kriticheskih polozheniyah. |to sistema rannego obnaruzheniya
poteri goda, proishodyashchej den' za dnem.
Glava 15. Obratnaya storona
CHego my ne ponimaem, tem ne vladeem.
GETE
O, dajte mne vystupit' kommentatorom,
Skol'zyashchim po poverhnosti i budorazhashchim umy.
KRABB
omp'yuternaya programma - eto poslanie cheloveka mashine. Strogo
vystroennyj sintaksis i tshchatel'nye opredeleniya naceleny na to, chtoby
bezdumnoj mashine stali ponyatny namereniya cheloveka.
No u napisannoj programmy est' obratnaya storona: ona dolzhna byt' v
sostoyanii rasskazat' o sebe pol'zovatelyu-cheloveku. |to trebuetsya dazhe dlya
programmy, napisannoj isklyuchitel'no dlya sobstvennyh nuzhd, poskol'ku pamyat'
mozhet izmenit' avtoru-pol'zovatelyu, i emu potrebuetsya osvezhit' detali svoego
truda.
Naskol'ko zhe bolee neobhodima dokumentaciya dlya programmy obshchego
pol'zovaniya, pol'zovatel' kotoroj otdalen ot avtora vo vremeni, i v
prostranstve! Dlya programmnogo produkta storona, obrashchennaya k pol'zovatelyu,
stol' zhe vazhna, kak i storona, obrashchennaya k mashine.
Mnogie iz nas branili dalekogo bezymyannogo avtora za skudno
dokumentirovannuyu programmu. I mnogie poetomu pytalis' na vsyu zhizn' privit'
molodym programmistam uvazhenie k dokumentacii, preodolevayushchee len' i press
grafika rabot. V celom nam eto ne udalos'. YA dumayu, my ispol'zovali nevernye
metody.
Tomas Dzh. Uotson Starshij* (Thomas J. Watson, Sr.) rasskazal mne istoriyu
svoego pervogo opyta v kachestve prodavca kassovyh apparatov v severnoj chasti
shtata N'yu-Jork. Ispolnennyj entuziazma, on otpravilsya v put' v svoem
furgone, nagruzhennom kassovymi apparatami. On prilezhno ob容hal svoj uchastok,
no nichego ne prodal. Obeskurazhennyj, on soobshchil ob etom svoemu hozyainu.
Poslushav nekotoroe vremya, upravlyayushchij skazal: "Pomogi mne zagruzit'
neskol'ko kass v furgon, zapryagaj loshad', i poedem snova." Tak oni i
sdelali, i obhodya pokupatelej odnogo za drugim, starik pokazyval, kak
prodavat' kassovye apparaty. Sudya po vsemu, urok poshel vprok.
Neskol'ko let ya staratel'no chital gruppam inzhenerov-programmistov
lekcii o neobhodimosti i zhelatel'nosti horoshej dokumentacii, uveshchevaya ih vse
s bol'shim pylom i krasnorechiem. |to ne podejstvovalo. YA predpolozhil, chto oni
ponyali, kak pravil'no sostavlyat' dokumentaciyu, no ne delali etogo po
nedostatku rveniya. Togda ya poproboval pogruzit' v povozku neskol'ko kassovyh
apparatov, t.e. pokazat' im, kak delaetsya eta rabota. |to imelo znachitel'no
bol'shij uspeh. Poetomu ostavshayasya chast' etogo povestvovaniya posvyashchena ne
stol'ko poucheniyam, skol'ko ob座asneniyu togo, kak delat' horoshuyu dokumentaciyu.
Kakaya dokumentaciya trebuetsya?
Neobhodimy razlichnye urovni dokumentacii: dlya pol'zovatelya,
obrashchayushchegosya k programme ot sluchaya k sluchayu, dlya pol'zovatelya, kotoryj
sushchestvenno zavisit ot programmy v svoej rabote, i dlya pol'zovatelya, kotoryj
dolzhen adaptirovat' programmu k izmenivshemusya okruzheniyu ili zadacham.
CHtoby ispol'zovat' programmu. Kazhdomu pol'zovatelyu trebuetsya slovesnoe
opisanie programmy. Po bol'shej chasti dokumentaciya stradaet otsutstvie obshchego
obzora. Opisany derev'ya, prokommentirovany kora i list'ya, no plan lesa *
Tomas Dzh. Uotson Starshij - osnovatel' kompanii IBM (primech. perev.)
otsutstvuet. CHtoby napisat' poleznoe tekstovoe opisanie, vzglyanite izdaleka,
a zatem medlenno priblizhajtes':
1. Naznachenie. CHto yavlyaetsya glavnoj funkciej programmy i prichinoj ee
napisaniya?
2. Sreda. Na kakih mashinah, apparatnyh konfiguraciyah i konfiguraciyah
operacionnoj sistemy budet ona rabotat'?
3. Oblast' opredeleniya i oblast' znachenij. Kakovy dopustimye znacheniya
vhodnyh dannyh? Kakie pravil'nye znacheniya vyhodnyh rezul'tatov mogut
poyavit'sya?
4. Realizovannye funkcii i ispol'zovannye algoritmy. CHto konkretno
mozhet delat' programma?
5. Formaty vvoda-vyvoda, tochnye i polnye.
6. Instrukciya po rabote, v tom chisle opisanie vyvoda na konsol' i
ustrojstvo vyvoda pri normal'nom i avarijnom zavershenii.
7. Opcii. Kakoj vybor predostavlyaetsya pol'zovatelyu v otnoshenii funkcij?
Kakim obrazom nuzhno ego zadavat'?
8. Vremya raboty. Skol'ko vremeni zanimaet reshenie zadachi zadannogo
razmera na zadannoj konfiguracii?
9. Tochnost' i proverka. Kakova ozhidaemaya tochnost' rezul'tatov? Kakie
imeyutsya sredstva proverki tochnosti?
CHasto vse eti dannye mozhno izlozhit' na treh ili chetyreh stranicah. Pri
etom nuzhno udelit' osoboe vnimanie polnote i tochnosti. Bol'shuyu chast' etogo
dokumenta nuzhno vcherne napisat' do razrabotki programmy, poskol'ku v nem
voploshcheny osnovnye planovye resheniya.
CHtoby doveryat' programme. Opisanie togo, kak ispol'zovat' programmu,
nuzhno dopolnit' opisaniem togo, kak ubedit'sya v ee rabotosposobnosti. |to
oznachaet nalichie kontrol'nyh primerov.
Kazhdyj ekzemplyar postavlyaemoj programmy dolzhen soderzhat' neskol'ko
nebol'shih kontrol'nyh primerov, kotorye mozhno postoyanno ispol'zovat', chtoby
uverit' pol'zovatelya v tom, chto on mozhet doveryat' programme, i ona pravil'no
zagruzhena v mashinu.
Krome togo, nuzhny bolee tshchatel'nye testy, kotorye obychno vypolnyayutsya
tol'ko posle modifikacii programmy. Oni otnosyatsya k trem uchastkam oblasti
vhodnyh dannyh:
1. Osnovnye parametry, proveryayushchie glavnye funkcii programmy na obychno
vstrechaemyh dannyh.
2. Primery na grani dopustimogo, proveryayushchie granicy oblasti vhodnyh
dannyh i ubezhdayushchie, chto rabotayut naibol'shie znacheniya, naimen'shie znacheniya i
vse dopustimye isklyucheniya.
3. Primery za granicej dopustimogo, proveryayushchie granicy s obratnoj
storony i ubezhdayushchie, chto nedopustimye znacheniya vyzyvayut pravil'nye
diagnosticheskie soobshcheniya.
CHtoby modificirovat' programmu. Dlya adaptacii ili ispravleniya programmy
trebuetsya znachitel'no bol'she dannyh. Razumeetsya, trebuyutsya vse detali, a oni
soderzhatsya v horosho prokommentirovannom listinge. U pol'zovatelya,
modificiruyushchego programmu ili redko ee ispol'zuyushchego, voznikaet ostraya
neobhodimost' v yasnom otchetlivom obzore, na etot raz vnutrennej struktury. V
takoj obzor vhodyat:
1. Blok-shema ili graf podprogrammnoj organizacii. Podrobnee ob etom
sm. nizhe.
2. Polnye opisaniya ispol'zuemyh algoritmov ili ssylki na takie opisaniya
v literature.
3. Raz座asnenie struktury vseh ispol'zuemyh fajlov.
4. Obzor organizacii prohozhdeniya dannyh - posledovatel'nosti, v kotoroj
dannye ili programmy zagruzhayutsya s lenty ili diska i opisanie togo, chto
delaetsya na kazhdom hode.
5. Obsuzhdenie modifikacij, predpolagaemyh ishodnym proektom, sushchnost' i
raspolozhenie dobavochnyh blokov i vyhodov i diskursivnoe obsuzhdenie myslej
avtora programmy otnositel'no izmenenij, kotorye mogut okazat'sya
zhelatel'nymi, i kak ih mozhno provesti. Polezno takzhe izlozhit' ego zamechaniya
o skrytyh lovushkah.
Bich blok-shem
Blok-shema chashche vsego yavlyaetsya lishnej chast'yu programmnoj dokumentacii.
Dlya mnogih programm blok-shemy voobshche ne nuzhny. Redkie programmy trebuyut
blok- shemy bolee chem na odnu stranichku.
Blok-shemy pokazyvayut strukturu prinyatiya programmoj reshenij, chto
yavlyaetsya lish' odnoj storonoj struktury programmy. Kogda blok-shema
razmeshchaetsya na odnoj stranice, struktura reshenij vyglyadit dovol'no
elegantno, no naglyadnost' srazu utrachivaetsya, kogda est' neskol'ko stranic,
svyazannyh pronumerovannymi vhodami i vyhodami.
Odnostranichnaya blok-shema dlya znachitel'noj po razmeru programmy
stanovitsya, v sushchnosti, diagrammoj struktury programmy i etapov ili shagov. V
etom kachestve ona ochen' udobna. Risunok 15.1 pokazyvaet takoj graf
podprogrammnoj struktury.
Ris. 15.1 Graf struktury programmy (primer W. V. Wright)
Konechno, takoj strukturnyj graf ne trebuet osobyh usilij po soblyudeniyu
standartov ANSI dlya blok-shem. Vse eti pravila otnositel'no vida
pryamougol'nikov, soedinitel'nyh linij, numeracii i t.p. nuzhny tol'ko dlya
ponimaniya podrobnyh blok-shem.
Podrobnaya poshagovaya blok-shema yavlyaetsya dosadnym anahronizmom,
prigodnym tol'ko dlya novichkov v algoritmicheskom myshlenii. Vvedennye
Goldshtajnom i fon Nejmanom1 pryamougol'niki vmeste so svoim soderzhimym
sluzhili yazykom vysokogo urovnya, ob容dinyaya nepostizhimye operatory mashinnogo
yazyka v osmyslennye gruppy. Kak davno ponyal Iverson,2 v sistematicheskom
yazyke vysokogo urovnya gruppirovka uzhe provedena, i kazhdyj pryamougol'nik
soderzhit operator (ris. 15.2). Poetomu sami pryamougol'niki yavlyayutsya
utomitel'nym i otnimayushchim mesto uprazhneniem v cherchenii i vpolne mogut byt'
udaleny. Togda ostayutsya tol'ko strelki. Strelki, svyazyvayushchie odin operator s
drugim, raspolozhennym v sleduyushchej stroke, izlishni, i ih mozhno udalit'. Togda
ostayutsya tol'ko GO TO, i esli priderzhivat'sya horoshej praktiki
programmirovaniya i ispol'zovat' blochnye struktury dlya minimizacii chisla GO
TO, takih strelok okazhetsya nemnogo, no oni ochen' sposobstvuyut ponimaniyu.
Vpolne mozhno narisovat' ih na listinge i vovse izbavit'sya ot blok-shemy.
V dejstvitel'nosti o blok-shemah bol'she govoryat, chem pol'zuyutsya imi. YA
nikogda ne videl opytnogo programmista, kotoryj v povsednevnoj deyatel'nosti
risoval by podrobnye blok-shemy, prezhde chem nachat' pisat' programmu. Tam,
gde blok-shemy trebuyutsya pravilami organizacii, oni pochti vsegda sozdayutsya
zadnim chislom. Mnogie gordyatsya ispol'zovaniem special'nyh programm dlya
generacii etogo "nezamenimogo instrumenta razrabotki" na osnove uzhe
zakonchennoj programmy. Dumayu, chto etot vseobshchij opyt ne yavlyaetsya postydnym i
predosuditel'nym othodom ot horoshej praktiki programmirovaniya, priznavat'sya
v kotorom mozhno lish' s nervnym smeshkom. Naprotiv, eto rezul'tat zdravogo
rassuzhdeniya, dayushchij nam urok otnositel'no poleznosti blok-shem.
Apostol Petr skazal o novoobrashchennyh yazychnikah i zakone Moiseya: "CHto zhe
vy [zhelaete] vozlozhit' na vyi uchenikov igo, kotorogo ne mogli ponesti ni
otcy nashi, ni my?" (Deyaniya apostolov 15:10). To zhe skazal by ya o
programmistah-novichkah i ustarevshej praktike blok-shem.
Samodokumentiruyushchiesya programmy
Odin iz osnovnyh principov obrabotki dannyh uchit, chto bezrassudno
starat'sya podderzhivat' sinhronnost' nezavisimyh fajlov. Znachitel'no luchshe
sobrat' ih v odin fajl, v kotorom kazhdaya zapis' soderzhit vse dannye ih oboih
fajlov, otnosyashchiesya k dannomu klyuchu.
Tem ne menee nasha praktika dokumentirovaniya programm protivorechit
sobstvennym teoriyam. Obychno my pytaemsya podderzhivat' programmu v vide,
prigodnom dlya vvoda v mashinu, a nezavisimyj komplekt dokumentacii, sostoyashchej
iz teksta i blok-shem, - v vide, prigodnom dlya chteniya chelovekom.
Rezul'taty etogo podtverzhdayut mysl' o nerazumnosti podderzhki
nezavisimyh fajlov. Programmnaya dokumentaciya poluchaetsya udivitel'no plohoj,
a ee soprovozhdenie - i togo huzhe. Vnosimye v programmu izmeneniya ne poluchayut
bystrogo, tochnogo i obyazatel'nogo otrazheniya v dokumente.
YA polagayu, chto pravil'nym resheniem dolzhno byt' sliyanie fajlov:
vklyuchenie dokumentacii v ishodnyj tekst programmy. |to odnovremenno i
sil'nyj pobuditel'nyj motiv k dolzhnomu soprovozhdeniyu, i garantiya togo, chto
dokumentaciya vsegda budet pod rukoj u pol'zovatelya. Takie programmy nazyvayut
samodokumentiruyushchimisya.
Ochevidno, pri etom neudobno, hotya i vozmozhno, vklyuchat' blok-shemy, esli
v etom est' neobhodimost'. No, prinyav vo vnimanie anahronizm blok-shem i
ispol'zovanie preimushchestvenno yazykov vysokogo urovnya, stanovitsya vozmozhnym
ob容dinit' programmu s dokumentaciej.
Ispol'zovanie ishodnogo koda programmy v kachestve nositelya dokumentacii
vlechet nekotorye ogranicheniya. S drugoj storony, neposredstvennyj dostup
chitatelya dokumentacii k kazhdoj stroke programmy otkryvaet vozmozhnost' dlya
novyh tehnologij. Prishlo vremya razrabotat' radikal'no novye podhody i metody
sostavleniya programmnoj dokumentacii.
V kachestve vazhnejshej celi my dolzhny popytat'sya predel'no umen'shit' gruz
dokumentacii - gruz, s kotorym ni my, ni nashi predshestvenniki tolkom ne
spravilis'.
Podhod. Pervoe predlozhenie sostoit v tom, chtoby razdely programmy,
obyazannye prisutstvovat' v nej soglasno trebovaniyam yazyka programmirovaniya,
soderzhali kak mozhno bol'she dokumentacii. Sootvetstvenno, metki, operatory
ob座avleniya i simvolicheskie imena vklyuchayut v zadachu peredat' chitatelyu kak
mozhno bol'she smysla.
Ris. 15.2 Sravnenie blok-shemy i sootvetstvuyushchej programmy na PL/I
(fragment)
Vtoroe predlozhenie - v maksimal'noj mere ispol'zovat' prostranstvo i
format, chtoby uluchshit' chitaemost' i pokazat' otnosheniya podchinennosti i
vlozhennosti.
Tret'e predlozhenie - vklyuchit' v programmu neobhodimuyu tekstovuyu
dokumentaciyu v vide paragrafov kommentariev. V bol'shinstve programm
dostatochno imet' postrochnye kommentarii. V programmah, otvechayushchih zhestkim
standartam organizacij na "horoshee dokumentirovanie", ih chasto slishkom
mnogo. Odnako dazhe v etih programmah obychno nedostatochno paragrafov
kommentariev, kotorye dejstvitel'no sposobstvuyut ponyatnosti i obozrimosti
celogo.
Poskol'ku dokumentaciya vstraivaetsya v ispol'zuemye programmoj
strukturu, imena i formaty, znachitel'nuyu chast' etoj raboty neobhodimo
prodelat', kogda programmu tol'ko nachinayut pisat'. No imenno togda i nuzhno
pisat' dokumentaciyu. Poskol'ku podhod na osnove samodokumentirovaniya
sokrashchaet dopolnitel'nuyu rabotu, men'she prepyatstvij k ego osushchestvleniyu.
Nekotorye priemy. Na risunke 15.3 pokazana samodokumentiruyushchayasya
programma na yazyke PL/I.3 CHisla v kruzhochkah ne yavlyayutsya ee chast'yu, a sluzhat
metadokumentaciej dlya ssylok pri obsuzhdenii.
1. Ispol'zujte dlya kazhdogo zapuska svoe imya zadaniya i vedite zhurnal, v
kotorom uchityvajte predmet proverki, vremya i poluchennye rezul'taty. Esli imya
sostoit iz mnemoniki (zdes' QLT) i chislovogo suffiksa (zdes' 4), to suffiks
mozhno ispol'zovat' v kachestve nomera zapuska, svyazyvayushchego zapis' v zhurnale
i listing. Pri etom dlya raznyh progonov trebuyutsya svoi karty zadaniya, no ih
mozhno delat' kolodami s dublirovaniem postoyannyh dannyh.
2. Ispol'zujte mnemonicheskie nazvaniya programmy, vklyuchayushchie
identifikator versii - v predpolozhenii, chto budet neskol'ko versij. Zdes'
indeks - dve mladshie cifry goda.
3. Vklyuchite tekstovoe opisanie v kachestve kommentariev k PROCEDURE.
4. Dlya dokumentirovaniya algoritmov ssylajtes', gde mozhno, na
literaturu. |to ekonomit mesto, adresuet k bolee polnomu osveshcheniyu, chem
mozhno dat' v programme, i daet vozmozhnost' znayushchemu chitatelyu propustit'
ssylku, ostavlyaya uverennost', chto on vas pojmet.
5. Pokazhite svyaz' s algoritmom, opisannym v knige: a) izmeneniya; b)
osobennosti ispol'zovaniya; v) predstavlenie dannyh.
6. Ob座avite vse peremennye. Ispol'zujte mnemoniku. Ispol'zujte
kommentarii dlya prevrashcheniya operatora DECLARE v polnocennuyu legendu.
Obratite vnimanie, chto on uzhe soderzhit imena i opisaniya struktur, nuzhno lish'
dopolnit' ego opisaniyami naznacheniya. Sdelav eto zdes', vy izbezhite
otdel'nogo povtoreniya imen i strukturnyh opisanij.
7. Postav'te metku v nachale inicializacii.
8. Postav'te metki pered gruppami operatorov, sootvetstvuyushchie
operatoram algoritma, opisannogo v knige.
9. Ispol'zujte otstupy dlya pokaza struktury i gruppirovaniya.
10. Vruchnuyu postav'te strelki, pokazyvayushchie logicheskij poryadok
operatorov. Oni ochen' polezny pri otladke i vnesenii izmenenij. Ih mozhno
pomestit' na pravom pole mesta dlya kommentariev i sdelat' chast'yu vvodimogo v
mashinu teksta.
11. Vstav'te strochnye kommentarii dlya poyasneniya vsego, chto neochevidno.
Pri ispol'zovanii izlozhennyh vyshe priemov oni okazhutsya koroche i
malochislennej, chem obychno.
12. Pomeshchajte neskol'ko operatorov na odnoj stroke ili odin operator na
neskol'kih strokah v sootvetstvii s logicheskoj gruppirovkoj, a takzhe chtoby
pokazat' svyaz' s opisaniem algoritma.
Vozrazheniya. Kakovy nedostatki takogo podhoda k dokumentirovaniyu? Oni
sushchestvuyut, i v prezhnie vremena byli sushchestvennymi, no sejchas stanovyatsya
mnimymi.
Ris. 15.3 Samodokumentiruyushchayasya programma
Samym ser'eznym vozrazheniem yavlyaetsya uvelichenie razmera ishodnogo
teksta, kotoryj nuzhno hranit'. Poskol'ku praktika vse bolee tyagoteet k
hraneniyu ishodnogo koda v aktivnyh ustrojstvah, eto vyzyvaet rastushchee
bespokojstvo. Lichno ya pishu bolee kratkie kommentarii v programmah na APL,
kotorye hranyatsya na diske, chem v programmah na PL/I, kotorye hranyatsya na
perfokartah.
Odnako odnovremenno my dvizhemsya k hraneniyu v aktivnyh ustrojstvah
tekstovyh dokumentov, dostup k kotorym i izmenenie osushchestvlyaetsya s pomoshch'yu
komp'yuterizirovannyh tekstovyh redaktorov. Kak ukazyvalos' vyshe, sliyanie
teksta i programmy sokrashchaet obshchee kolichestvo hranimyh simvolov.
Analogichnoe vozrazhenie vyzyvaet argument, chto samodokumentiruyushchiesya
programmy trebuyut bol'she vvoda s klaviatury. V pechatnom dokumente trebuetsya,
po men'shej mere, odno nazhatie na klavishu dlya kazhdogo simvola na kazhdyj
chernovoj ekzemplyar. V samodokumentiruyushchejsya programme summarnoe kolichestvo
simvolov men'she, i na odin simvol prihoditsya men'she nazhatij na klavishi, tak
kak chernoviki ne perepechatyvayutsya.
A chto zhe blok-shemy i strukturnye grafy? Esli ispol'zuetsya tol'ko
strukturnyj graf samogo vysokogo urovnya, on vpolne mozhet soderzhat'sya v
otdel'nom dokumente, poskol'ku redko podvergaetsya izmeneniyam. No konechno,
ego mozhno vklyuchit' v ishodnyj tekst programmy v kachestve kommentariya, chto
budet blagorazumno.
V kakoj mere opisannye vyshe priemy primenimy dlya programm na yazyke
assemblera? YA dumayu, chto bazovyj podhod dokumentirovaniya primenim vsyudu.
Svobodnym prostranstvom i formatami mozhno pol'zovat'sya s men'shej stepen'yu
svobody, i poetomu oni ispol'zuyutsya ne tak gibko. Imena i ob座avleniya
struktur, nesomnenno, mozhno ispol'zovat'. Ochen' mogut pomoch' makrosy.
Intensivnoe ispol'zovanie paragrafov kommentariem yavlyaetsya horoshej praktikoj
v lyubom yazyke.
No podhod na osnove samodokumentirovaniya stimulirovan primeneniem
yazykov vysokogo urovnya i obretaet naibol'shuyu moshch' i naivysshee opravdanie v
yazyk