Aktuální vydání

celé číslo

05

2024

Velké jazykové modely a generativní umělá inteligence v průmyslové praxi

celé číslo

Recenze: Co programátory ve škole neučí

číslo 6/2004

Recenze: Co programátory ve škole neučí

Paleta, P.: Co programátory ve škole neučí aneb Softwarové inženýrství v reálné praxi. Brno, Computer Press, 2003, 337 stran, náklad neuveden, cena 269 Kč, ISBN 80-251-0073-1.

Hlavní část názvu knihy jistě upoutá každého, kdo s počítači nepřichází do styku jen jako běžný uživatel. Nahlédnutí do jejího obsahu vyvolá dojem, že publikace je o všem, a může tedy u zkušenějšího člověka vést k podezření, že současně nebude o ničem. Když se však s obsahem knihy seznámíme podrobněji, rychle tento povrchní odsudek zavrhneme. Nalezneme v ní totiž spoustu užitečných a zajímavých poznatků, navíc podaných poutavou a čtivou formou.

V samých začátcích používání počítačů pro řešení úloh z praxe bylo v centru pozornosti vlastní programování, chápané jako psaní kódu ve strojovém jazyce. Až další vývoj ukázal význam přípravné analytické práce, metod tvorby softwaru, organizace přípravy, vlastní tvorby a vyzkoušení vytvářených programů a dalších postupně objevovaných přístupů. Význam těchto činností se ještě prohloubil, když se jednotlivé programy rozvinuly do podoby programových systémů a tvorba aplikačních programů pro počítače se stala samostatnou profesí. Počítače rozšiřovaly a i nyní stále rozšiřují svou působnost do dalších oborů. Obr. 1. Touto přirozenou cestou je komunita tvůrců aplikačních programů (počítačových aplikací) soustavně doplňována novou „krví“ programátorsky jen částečně vyškolených pracovníků a začátečníků. Ti obvykle procházejí celým vývojem znovu. Z pochopitelných důvodů mnozí z nich, zejména ti, kteří sami musejí především zvládat svůj mateřský obor, zůstávají v této ontogenezi někde na půli cesty. Platí to i pro automatizaci, mj. i proto, že použití počítačové techniky v automatizaci se vyznačuje některými odlišnostmi, zejména v porovnání s tzv. aplikacemi hromadného zpracování dat. Tyto odlišnosti v poslední době však mizejí a univerzalita počítačových aplikací v automatizaci je v současné době již nezpochybnitelná.

Vše, co dosud bylo uvedeno, jsou důvody, které nás vedou k tomu, abychom na recenzovanou publikaci upozornili komunitu automatizačních programátorů. Petr Paleta totiž napsal knihu, která může mnohému našemu čtenáři pomoci otevřít cestu ke zvýšení odborné úrovně ohledně automatizačních aplikací a projektů založených na počítačích. Obsahově bohatá kniha si zaslouží nejprve stručné uvedení.

Celkem 43 kapitol je rozděleno do deseti částí, jež čtenáře didakticky vhodně provádějí sledem etap životního cyklu softwarového projektu.

Úvodní část – Tajemství tvorby softwaru – je věnována poučení o zvláštnostech vývoje softwaru, o příčinách potíží softwarových projektů a o jejich historických kořenech. V jejím závěru autor vyjádřil své názory na podíl našich škol na těchto nedostatcích. V tom s ním lze plně souhlasit; bylo by přinejmenším možné diskutovat o dalších nešvarech našeho školství v přípravě počítačových odborníků.

Zkušenost, že ne každý, kdo napsal správně pracující program, vytvořil kvalitní software, zřejmě vedla autora k zařazení části nazvané Jak psát a jak nepsat programy. Zde se zabývá pravidly správného psaní kódu a strukturou kódu programu a dat.

Části s názvem Proč dochází k chybám? a Co s chybami? se na celkem 60 stránkách zabývají z více pohledů chybami v programech. Pro ilustraci jejich obsahu uveďme témata vybraných odstavců: bezpečnostní díry, nedodělané uživatelské rozhraní, chyby patří k programování, příčiny chybovosti projektů, hledání chyb během vývoje, revize kódu a dokumentů.

Následující část Testování aplikace navazuje na téma chyb zaměřením na otázky ověřování správnosti softwaru a na zvláštnosti jeho zkušebního provozu.

Zde by možná čtenář očekával konec knihy. Přitom jsme však překročili sotva její polovinu a vstupujeme do části velmi významné, v minulosti i nyní samorostlými praktiky přehlížené nebo alespoň velmi zanedbávané. Softwarové projekty totiž nestojí jen na technice programování. Projekt musí být efektivně řízen. Obsahem části Řízení softwarových projektů je proto analýza úlohy a sestavení plánu projektu. Musí být také sledována ekonomická stránka projektu. S tímto tématem úzce souvisí i následující, sedmá část Lidské zdroje a komunikace. Je zaměřena na lidské zdroje a na zajištění komunikace uvnitř týmu i se souvisejícím okolím projektu. K návrhu a realizaci softwarového díla již dávno nestačí jen selský rozum. Kvalitu a schopnost konkurence je třeba opřít o moderní metodiky, o jejichž základech informuje část Metodiky a technologie. I ta je následována, stejně jako většina předcházejících, s ní souvisejícím „dvojníkem„ Architektura aplikace. Závěr knihy, opatřený titulkem Když projekt běží, je věnován činnostem vykonávaným v závěru projektu a dále doplňkovým otázkám, charakterizovaným názvy odstavců Průběh vývoje, Nasazení a údržba a Zavádění pravidel a postupů.

Jak již bylo řečeno v úvodu, dostává se nám do rukou dobrá kniha. Při tak obsažném tématu nelze čekat podrobnou učebnici softwarového inženýrství. Je však velmi dobrým a zajímavě zpracovaným úvodem do oboru. Může inspirovat začínající i pokročilé tvůrce softwarových systémů k prohlubování znalostí a dovedností – programátory i ty, kteří se pokoušejí o proniknutí do problémů systémové analýzy. Rovněž může pomoci zadavatelům počítačových automatizačních projektů, nazvěme je zobecněným termínem technologové, lépe pochopit pracovní náplň svých automatizačních spolupracovníků a být schopni s nimi lépe komunikovat. Mohla by být i povinnou četbou pro studenty strojních, elektrotechnických a např. i chemických oborů. Posloužila by jim v přípravě na praxi rozhodně lépe než prostá výuka naplněná programováním v nějakém, ne vždy perspektivním programovacím jazyce nebo jen prostým uživatelským zaškolením v užívání některého programového produktu.

Vedle odborné kvality vyniká kniha také velmi dobrou jazykovou úrovní. Zkušenějšího čtenáře počítačové literatury překvapí, že o počítačích lze psát na solidní odborné úrovni česky, a dokonce téměř bez zbytečného zavádění cizojazyčných termínů. Snad poprvé se zde setkáváme např. s termínem metodika místo otrocky a nesprávně přebírané metodologie. Potvrzuje se i recenzentův názor, že inflace anglických termínů souvisí s tím, že převodce, úmyslně nepíši překladatel, si s významem původního termínu neví rady. To zjevně nebyl případ Petra Palety.

Knihu lze našim čtenářům vřele doporučit. Může pro náš obor vykonat dosti dobrého, přestože je postavena na zkušenostech oboru v poměru k nám sousedního – na aplikacích „mimo reálný čas„. Domnívám se, že je pro automatizaci potřebná i proto, že mezi námi je ještě dosti programátorů ne zcela dospělých.

Pohodu při listování recenzním výtiskem zkalila pouze informace, kterou nalezneme na samém konci, na zadní straně obálky. Autorovi Petru Paletovi bylo dopřáno pouhých 37 let pozemského života. K soucitu nad osudem člověka se přidává lítost nad ztrátou odborníka, který jistě mohl vykonat ještě mnoho užitečného.

Jiří Cendelín

Inzerce zpět