VyÜlo v t²denφku: COMPUTERWORLD
╚φslo:39/94
RoΦnφk:1994
Rubrika/kategorie: Co (ne)najdete ve slovnφku

zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek

Ji°φ Peterka

Software Engineering

Programovßnφ je um∞nφ - tak to alespo≥ tvrdφ mnozφ, kte°φ se programovßnφm zab²vajφ. P°itom majφ v mnohΘm pravdu, programovßnφ skuteΦn∞ m∙₧e b²t um∞nφm - dokud jsou vytvß°enΘ programy takovΘho rozsahu, ₧e je bez problΘm∙ zvlßdne napsat jedin² Φlov∞k, v dostateΦn∞ krßtkΘm Φase, a navφc za takov²m ·Φelem, kdy "krßsa a elegance" je cen∞na vφce ne₧ funkΦnost a hlavn∞ spolehlivost celΘho programu. Jde vlastn∞ o takovΘ programovßnφ, kterΘ by bylo mo₧no s jistou mφrou nadsßzky oznaΦit jako "programovßnφ v m alΘm".

Ale jak to potom vypadß s "programovßnφm ve velkΘm"? Jak dopadajφ velkΘ softwarovΘ projekty, na kter²ch musφ spolupracovat celΘ t²my programßtor∙ a dalÜφch odbornφk∙ a na jejich₧ v²sledku pak mnohdy bytostn∞ zßvisφ normßlnφ fungovßnφ nejr∙zn∞jÜφch ·°ad∙, nemocnic, letiÜ¥, tovßren a kdovφ Φeho jeÜt∞? Dopadajφ v∞tÜinou naprosto stejn∞ jako mnohΘ projekty srovnatelnΘho rozsahu v r∙zn²ch pr∙myslov²ch odv∞tvφch - nap°φklad ve stavebnictvφ, strojφrenstvφ, zem∞d∞lstvφ apod. Tedy konΦφ pozd∞ji, ne₧ p°edpoklßd al p∙vodnφ plßn, stojφ vφce, ne₧ na kolik zn∞l p∙vodnφ rozpoΦet, a mnohdy ani p°φliÜ nespl≥ujφ p°edstavy toho, kdo jejich vypracovßnφ zadal. Dokonce jsou znßmy i takovΘ softwarovΘ projekty velkΘho rozsahu, kterΘ musely b²t jeÜt∞ v pr∙b∞hu svΘho °eÜenφ zcela zruÜeny; ji₧ proinvestovanΘ prost°edky pak bylo t°eba jednoduÜe odepsat. Ve sv∞tle skuteΦnΘho postupu realizaΦnφch pracφ se toti₧ ukßzalo, ₧e p∙vodnφ odhady slo₧itosti, pracnosti a nßroΦnosti t∞chto projekt∙ (vΦetn∞ finanΦnφ nßroΦnosti) jsou zpracovßny "Üpatn∞" ne o n∞jakß malß procenta Φi desφtky procent, ale o celΘ tisφce procent!

Jak se ale takov²ch situacφ vyvarovat? Jak zajistit, aby i "programovßnφ ve velkΘm" dopadalo dob°e, aby v²sledky spl≥ovaly p°edstavy zßkaznφka i dodavatele a m∞ly dostateΦnou kvalitu?

Mnozφ v²znamnφ lidΘ kolem poΦφtaΦ∙ si pom∞rn∞ brzy uv∞domili, ₧e cesta vede jedin∞ p°es utu₧enφ disciplφny neboli p°es zavedenφ urΦitΘho °ßdu a p°es aplikaci systematick²ch metod a postup∙ do toho, co bylo a₧ do tΘ doby chßpßno spφÜe jako um∞leckß zßle₧itost, stojφcφ na individußlnφch schopnostech jedinc∙ - zvlßÜt∞ pak, jde-li o softwarovΘ projekty v∞tÜφho kalibru. Tento tlak vyÜel pon∞kud p°ekvapiv∞ z akademick²ch kruh∙, koncem Üedesßt²ch a poΦßtkem sedmdesßt²ch let, a souvisel jist∞ i s tφm, ₧e prßv ∞ v tΘ dob∞ se objevovaly takovΘ prost°edky a metodologie, kterΘ v∞tÜφmu dodr₧ovßnφ disciplφny v programovßnφ vychßzely ·Φinn∞ vst°φc (viz minul² p°φsp∞vek na tΘma "StrukturovanΘ programovßnφ").

MyÜlenka, na kterΘ bylo navrhovanΘ °eÜenφ postaveno, je velmi jednoduchß - nech¥ se i p°i °eÜenφ velk²ch softwarov²ch projekt∙ d∙sledn∞ uplat≥ujφ takovΘ postupy a metody, kterΘ se v jin²ch oblastech pr∙myslu ·sp∞Ün∞ pou₧φvajφ pro °eÜenφ projekt∙ srovnatelnΘho Φi jeÜt∞ v∞tÜφho rozsahu. Dovedeno tΘm∞° ad absurdum: ud∞lejme z "programovßnφ ve velkΘm" pr∙myslovou v²robu, a pou₧φvejme pak obdobnΘ nßstroje a postupy, jakΘ se pou₧φvajφ tam. Samoz°ejm∞ se vÜφm, co k tomu pat°φ - od d∙kladnΘ anal²zy pot°eb zad avatele p°es projekΦnφ fßze, organizaΦnφ a °φdicφ postupy p°i vlastnφ realizaci, pro d∙slednou kontrolu kvality, testovßnφ, Ükolenφ u₧ivatel∙, °φzen² p°echod na pou₧φvßnφ novΘho systΘmu, podporu p°i provozu atd.

Jde tedy vlastn∞ o d∙slednou aplikaci v∞deck²ch poznatk∙, znalostφ, postup∙ a zßsad p°i programovßnφ ve velkΘm a o ·stup od nesystematickΘho p°φstupu ve stylu "programovßnφ je um∞nφ". Jde tedy o aplikaci toho, Φemu se v angliΦtin∞ obvykle °φkß dosti Üiroce "engineering" a co se pak, aplikovßno na tvorbu programov²ch celk∙, oznaΦuje jako software engineering (neboli softwarovΘ in₧en²rstvφ).


zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek
Tento Φlßnek m∙₧e b²t voln∞ Üφ°en, pokud se tak d∞je pro studijnφ ·Φely, na nev²d∞leΦnΘm zßklad∞ a se zachovßnφm tohoto dov∞tku. Podrobnosti hledejte zde, resp. na adrese http://archiv.czech.net/copyleft.htm