\"/
\"/ \"/    

O jednom způsobu neprogramování

Jiří Franek, ÚVT MU
Ročník II - číslo 4, březen 1992
Citace: J. Franek. O jednom způsobu neprogramování. Zpravodaj ÚVT MU. ISSN 1212-0901, 1992, roč. II, č. 4, s. 11-14.
Tematické zařazení: Software obecně - principy, tvorba
 předchozí článek | následující článek 

Masové používání osobních počítačů (PC) přineslo několik problémů při jejich využití v běžném kancelářském prostředí bez profesionálních programátorů:

Je zřejmé, že laickým potenciálním uživatelům PC chybí jistý druh základního vzdělání (počítačová gramotnost). Avšak stejně jako nelze učit děti od první třídy hned integrálnímu počtu, nelze počítačově negramotného uživatele učit používat hned od začátku špičkový software. Už Komenský věděl, že je vždy nutné postupovat od jednoduchého ke složitému. Také jiný Komenského princip - "škola hrou" - by zde bylo možné použít. Programový prostředek, který by laickému uživateli umožňoval neomezené hraní (ovšem se smysluplnými a použitelnými výsledky), by v něm pravděpodobně vzbudil zájem a chuť zkusit po jeho zvládnutí něco složitějšího.

Jak by tedy takový software pro laiky mohl vypadat? Především by to měla být stavebnice, tvořená základními, předem připravenými a dobře popsanými stavebními prvky, ze kterých by uživatel sestavoval fungující celek. Základní prvky by měly být analogií objektů a procesů, se kterými uživatel přichází často do styku. Analogie by mu při sestavování celku pomáhala představit si jeho funkci. Možnosti stavebnice by měly pokrývat jen "dolní konec" škály možností PC - na složitější problémy je přece jen vhodnější použít dokonalých nástrojů. Stavebnice by měla být určena jen pro izolované PC, protože použití v síti by do ní pravděpodobně vneslo příliš mnoho komplikujících prvků. Pojmů, objektů a procesů, které použití stavebnice přináší, by nemělo být zbytečně mnoho, aby je bylo možno rychle zvládnout a dobře si je zapamatovat. Měly by být popsány srozumitelně a úplně, nejlépe opět s použitím analogie se známými pojmy, objekty a procesy. Dokonalé metodické zpracování příruček je samozřejmostí, stejně jako přístup k pomocným informacím v libovolném okamžiku práce se stavebnicí. Nejlépe by asi posloužila dvojice příruček, z nichž jedna by uživatele provedla s pomocí názorných obrázků a vzorů základními způsoby použití stavebnice a druhá by přesně a úplně popisovala základní stavební prvky a jejich způsoby použití a sloužila by jako referenční text při nejasnostech a pochybách.

Pokusme se představit si možnosti při návrhu kancelářské datové stavebnice, určené pro pořizování, údržbu a využívání nevelkých datových bází (kartoték, evidencí, seznamů), které se v hojném počtu vyskytují v běžných kancelářích.

V každé kanceláři se setkáme s daty, začneme tedy od nich. Každý objekt nebo jev v kanceláři má jisté vlastnosti. Chceme-li konkrétní objekt nebo jev popsat, musíme jeho vlastnosti vyjádřit pomocí hodnot, jako jsou délka v metrech, trvání v hodinách nebo odpověď ano/ne na otázku, zda objekt má či nemá nějakou vlastnost. Tyto hodnoty - údaje - jsou nejmenšími jednotkami informace o objektech a uchováváme je v jednotkách paměti, zvaných položky. Souhrn všech údajů o objektu tvoří záznam objektu. Záznamy o všech objektech stejného druhu (například zaměstnancích jedné kanceláře) můžeme shrnout do souboru záznamů. Analogií souboru může být kartotéka zaměstnanců - karty jsou záznamy a vyplněná políčka na kartách obsahují údaje. Záznamy mohou být samozřejmě organizovány do složitějších objektů s různými vnitřními vazbami, počet údajů v záznamu může být závislý na obsahu tohoto záznamu atd., pro začátek se však přidržme představy kartotéky s kartami stejné velikosti i struktury.

V kanceláři se může vyskytovat více kartoték stejného druhu i kartotéky různých druhů, jejichž karty se od sebe liší počtem a významem jednotlivých políček, tedy strukturou karty. Soubory, které různým kartotékám odpovídají, se tedy liší strukturou záznamu. Strukturu záznamů všech souborů stejného druhu popíšeme pomocí souborů, které nazveme popisovače. Každý záznam popisovače popisuje jeden údaj v záznamu popisovaného druhu souboru. Popisovače jsou normální soubory, jeden z nich tedy popisuje strukturu vlastních záznamů.

S kartotékami v kanceláři můžeme provádět nejrůznější manipulace - můžeme si nejprve takovou kartotéku pořídit popsáním jistého množství čistých karet údaji, v hotové kartotéce listovat a měnit podle potřeby údaje v kartách, poznačit si na okraj všechny karty, které odpovídají nějaké předem zvolené podmínce, poznačit si karty, určené k vyřazení, vyřadit tyto karty nebo přidat nové, setřídit karty podle hodnot nějakého údaje a podobně. Všechny manipulace s kartotékami (ale i všechny ostatní činnosti v kanceláři) provádíme podle předem známého schématu postupně prováděných dílčích činností. Při opravě údaje o bydlišti jistého zaměstnance tedy nejprve určíme kartotéku, ve které má oprava být provedena, najdeme skříň, ve které je kartotéka uložena, vyjmeme lístkovnici s kartami, otevřeme ji a najdeme (například podle osobního čísla zaměstnance) příslušnou kartu. Tu vyjmeme z lístkovnice, přepíšeme políčko s údajem o bydlišti a kartu vrátíme do lístkovnice na stejné místo. Při opravě více karet se vytažení karty, oprava a zasunutí karty zpět opakuje podle potřeby. Pro takovou manipulaci s kartotékou si můžeme připravit pracovní postup, složený z jednotlivých pracovních kroků. V každém kroku pak provádíme buď nějaké manipulace s kartami (vytažení z lístkovnice, zasunutí do lístkovnice) nebo výměnu informace s obsahem karty (přečtení staré adresy, zapsání nové). Popis pracovního postupu může být zapsán do souboru, jehož záznamy obsahují popisy jednotlivých kroků. Pro tutéž kartotéku můžeme použít různé postupy pro pořízení kartotéky, její opravy, výpis obsahu karet a podobně, můžeme také sestavit postupy, které lze uplatnit na libovolnou kartotéku, například třídění nebo označení karet, dělení a slučování kartoték a podobně.

V jednotlivých krocích postupu můžeme provádět jednak standardní akce (otevření kartotéky, vytažení a zasunutí karty), jednak akce, které závisejí na druhu kartotéky. Prostředky pro standardní akce jsou poskytovány stavebnicí, ostatní si sami popíšeme v souborech, kterým můžeme říkat návody k činnosti. U převážné většiny potřebných postupů však vystačíme s použitím standardních akcí. Jména standardních akcí i jména návodů uvádíme v popisech kroků pracovních postupů, ve kterých tyto akce a činnosti chceme provádět.

Výměna informace - dialog - mezi záznamem (obrazem karty v počítači) a uživatelem může být zprostředkována různými vstupními zařízeními (klávesnice, myš) a výstupními zařízeními počítače (obrazovka, tiskárna). Jako nejvhodnější prostředek pro výměnu velkého objemu textové informace se jeví obrazovkový formulář, jehož políčka, zobrazující jednotlivé údaje záznamu, lze vyplňovat pomocí klávesnice. Pro dialog s malým množstvím řídící informace (volba z více možností, "knoflíková" volba, odpovědi ano/ne) je vhodnější použití myši, ale kombinace klávesnice a myši někdy přináší problémy a častý výskyt chyb. Obrazovkový formulář může být opět popsán speciálním souborem, jehož jméno je pak uvedeno v popisu kroku pracovního postupu, ve kterém má být formulář použit k dialogu mezi uživatelem a počítačem.

Standardní akce, předem připravené návody a formuláře jsou základními stavebními prvky kancelářské stavebnice. Z nich pak můžeme vytvářet další a další prvky stavebnice. S pomocí editoru popisovačů si můžeme sestavit popisovače záznamů nových druhů kartoték, pomocí editoru formulářů vytváříme nové formuláře pro dialog v krocích postupů, které sestavujeme pomocí editoru postupů. Všechny uvedené editory jsou realizovány jako předem připravené speciální pracovní postupy, stejně jako několik užitečných pomocných postupů například pro třídění souborů, výběr a označení záznamů podle podmínky, kopie, dělení a slučování souborů a podobně. Tyto systémové postupy tvoří spolu s ostatními základními stavebními prvky celou kancelářskou stavebnici.

Použití stavebnice při vytváření počítačové kartotéky pak vypadá velmi podobně jako vytváření kartotéky papírové.

Nejprve si rozmyslíme, jak by měla naše kartotéka vypadat, které údaje má obsahovat každá karta a kolik karet asi v kartotéce bude. Je nutno si také rozmyslet, zda budeme chtít udržovat svou kartotéku setříděnou, podle kterých údajů a jakým způsobem budeme chtít v kartotéce hledat. V rozsáhlejší kartotéce je neefektivní hledat kartu listováním od začátku. Pokud je setříděná například podle abecedy, lze najít potřebnou kartu daleko rychleji přímo. Úvahy o obsahu a uspořádání karty jsou zvlášť důležité, neboť každá změna tvaru karty u hotové kartotéky znamená opravu všech již pořízených karet. Podle naší představy o tvaru karty pořídíme s pomocí editoru popisovačů popisovač struktury záznamu budoucího souboru.

Dále si musíme rozmyslet, co všechno budeme v budoucnu chtít se svou kartotékou dělat. Zde jsou některé běžné práce s kartotékou:

Pro některé z těchto činností lze použít pomocných postupů (třídění, výběr a označení karet, rušení kartoték atd.), pro jiné musíme vytvořit své vlastní postupy (pořízení a aktualizace, tisky). I ty však obsahují většinu stejných dílčích akcí (zadání jména kartotéky, způsobu práce s ní, otevření kartotéky, vytažení a vrácení karty, zavření kartotéky) a liší se jen to, co závisí na struktuře karty konkrétní kartotéky. Můžeme tedy při vytváření nových postupů úspěšně "opisovat" z existujících postupů pro jiné kartotéky a ušetřit tak čas a námahu.

Nyní navrhneme základní postup pro pořízení a aktualizaci naší kartotéky - ediční postup. Strukturu a některé formuláře pro dialog opíšeme z jiného edičního postupu a změníme jen tvar formuláře pro zadání údajů do karty. Pomocí edičního postupu pak pořídíme několik karet malé cvičné kartotéky pro testování dalších postupů.

Dále vytvoříme jednoduchý tiskový postup pro výpis obsahu kartotéky. Opět přitom hojně opisujeme odjinud. S oběma postupy a cvičnou kartotékou si trochu pohrajeme a odstraníme všechny nedokonalosti. Pak již můžeme pořídit skutečnou kartotéku podle reálných podkladů.

Všechny další potřebné postupy získáme vylepšováním a rozšiřováním základních postupů (většinou to budou tiskové postupy pro tisk v jiném tvaru nebo speciální manipulace s kartotékou). Můžeme přitom opisovat (s drobnými úpravami) některé části i z pomocných systémových postupů (třídění, výběr atd.). Takto si postupně vytvoříme všechny postupy a soubory pro danou datovou oblast, která odpovídá nějaké části datového světa naší kanceláře. Ve stavebnici dělíme všechny objekty do aplikací, z nichž každá odpovídá jedné datové oblasti. Při práci se stavebnicí každý uživatel začne od základní verze, obsahující jen základní stavební prvky a pomocné prostředky a postupně si vytvoří své vlastní aplikace, odpovídající jeho potřebám. Získá tak svou vlastní verzi kancelářského systému, která obsahuje právě jen to, co potřebuje. Uživatel je tak tvůrcem, správcem i uživatelem svého systému.

Pokud pod pojmem program chápeme postup, vedoucí od nějakých počátečních podmínek k získání zadaných výsledků, je zřejmé, že sestavování pracovních postupů ze základních prvků stavebnice není nic jiného než jiný způsob programování - vytváření programů bez použití programovacích jazyků. Tak se i laický uživatel PC při hře s kancelářskou datovou stavebnicí naučí do jisté míry programovat, aniž si je toho vědom. I zdánlivě jednoduchá stavebnice přitom umožní laickému uživateli sestavení pracovních postupů pro manipulace, jejichž naprogramování v běžném programovacím jazyce není vůbec jednoduché. Příkladem může být postup, který se chová jako tabulkový kalkulátor nebo jako automatizovaná příručka s rejstříkem a podobně.

Nakonec něco o realizaci kancelářské datové stavebnice. Použitelnost stavebnicového přístupu byla spolehlivě ověřena již na osmibitových strojích s velmi omezenými možnostmi. Pro osobní počítače pak je k dispozici stavebnicový systém SIRAEL-PC, který lze používat na libovolném PC s alespoň 512kB pamětí, 10MB pevným diskem a jednou disketovou jednotkou. Pracuje s češtinou ve volitelném kódu, s libovolným zobrazením ve znakovém režimu a umožňuje práci s mnoha typy tiskáren. Není určen pro práci v sítích. Pro osobní počítače, vybavené prostředím Windows, se připravuje grafická a síťová verze stavebnice, realizovaná s využitím prostředků poskytovaných tímto prostředím a principů objektově orientovaného programování.

Zpět na začátek
ÚVT MU, poslední změna 14.11.2011