logo COBOL

 

 

 

 

 

 

 

 

2.  Systematický přístup

  Autor stránek ČeV-OC se poprvé s pojmem SYSTÉMOVÝ PŘÍSTUP setkal někdy na začátku 70-tých let minulého století a v následujících několika desetiletích analyticko-programátorské praxe měl nespočet příležitostí si ověřit jeho užitečnost. Teorie a vědecké metody kolem systémů a modelování jsou v detailech značně složitou záležitostí, ale na druhé straně základ systémového přístupu vlastně odpovídá pravidlu, že při hledání cesty k určitému cíli musíme nejprve vidět věci z nadhledu a vyhmátnout jádro problému, tj. v podstatných souvislostech i vazbách na okolí, a teprve pak se můžeme zabývat podrobnostmi ...

   Rovněž odborná terminologie jako "systém, podsystém, prvek, vazba, úroveň abstrakce, okolí, chování, atd ...",  není všeobecně srozumitelná a už samotný pojem "systémový přístup" většině lidí nic neříká. Možná i to je jeden z důvodů, proč tato metoda není využívána v takové míře, jak by ku prospěchu věcí využívána být mohla.

   Jde přitom o mimořádně silné nástroje nejen pro popis konkretních reálných systémů a námětů, ale i pro modelování různých životních situací. V zájmu odstranění pojmové bariéry je zde proto používán pojem "systematický přístup", který není sice vědecky přesný, ale v obecném chápání běžně srozumitelný.

Systematický přístup
   tedy znamená, že máme-li řešit nějakou složitou záležitost (problém, úkol, program, ...), tak musíme zkoumat vše podstatné, co by mohlo ovlivnit dosažení požadovaného účelu (výsledku zpracování).

   Žádná záležitost se ale nikdy nevyskytuje sama o sobě, takže vždy musíme brát v úvahu její vztahy s okolím. V případě návrhu programu jsou to především vstupní a výstupní data, ale i počítačové prostředí, ve kterém má fungovat a samozřejmě možnosti a vhodnost programovacího jazyka či jiných nástrojů v souladu s typem zadané úlohy.

   Složitou záležitost (celek) nelze najednou vyřešit do všech podrobností, ale je potřeba si ji rozdělit na zvládnutelný počet dílčích částí (uvádí se max 7). Tyto dílčí části (prvky) je třeba nejprve chápat jako nedělitelný celek, tj. "černou skříňku" a jejím vnitřním uspořádáním se zabývat teprve na další úrovni podrobnosti. 

Předpoklad o struktuře
   říká, že každý celek by mělo být možno na každé  úrovni podrobnosti popsat jako kombinaci tří základních typů prvkové skladby, kterými jsou postupný, alternativní a opakovaný výskyt jejích dílčích částí, Opírá se přitom o matematický důkaz pro popis algoritmů, publikované názory i konkretní zkušenosti. Ty ukazují na možnost obdobné aplikace tohoto principu jak na datové struktury, tak na popisy informačních systémů vůbec.

   Systematický přístup po úrovních a zmíněné tři prvkové skladby jsou základem strukturovaného programování, publikovaného v 70-tých letech min. století. To umožnilo doslova revoluční změnu v čitelnosti a srozumitelnosti zdrojových programových textů oproti dřívějšímu nekontrolovanému používání příkazů skoku "go to". Bohužel ale jeho zavádění nemělo rychlou, dostatečně srozumitelnou a jednoznačnou podporu, takže zdaleka ne všude byly tyto možnosti využívány.

Systematický přístup k programování

  • náklady na program se rovnají součtu všech nákladů za celou dobu jeho životnosti,
    autor píše program jednou, ale on nebo někdo další ho čte mnohokrát, proto musí být čitelný a srozumitelný,
    čitelnost a srozumitelnost je tedy priorita, případná optimalizace se musí dělat až následně
      
  • struktura programu by měla odpovídat struktuře zpracovávaného problému,
    na problém je potřeba pohlížet "shora dolů", tj. od nejobecnější úrovně do postupného zpřesňování,
    samozřejmě je ale také třeba kontrolovat, zda máme vhodně vyřešeny i detaily tj. "zdola nahoru"
      
  • celková struktura textu programu by měla být rozdělena do rozsahově zvládnutelných bloků,
    pokud se jedná o proceduru příkazů, každý blok by měl mít jeden vstup a jeden výstup,
    vnitřní struktura bloků by měla obsahovat postupný, alternativní a opakovaný výskyt prvků,
    obdobná pravidla platí i pro popis definice dat, která program zpracovává
      
  • každá činnost (proces, program, dílčí procedura) má tři základní fáze:
          1) ZAČÁTEK = jednorázová příprava 
          2) vlastní PRÁCE = opakovaná aktivita
          3) KONEC = jednorázové ukončení
      
  • při zpracování souborů dat mohou být potřebná další detailnější řešení:
          - speciální zpracování prvního záznamu
          - v průběhu opakované práce s jednotlivými záznamy se mohou vyskytovat úrovně,
                  >>> každá má 3 základní fáze
          - speciální zpracování posledního záznamu
      
  • počítač je univerzální automat, který má prakticky někonečný počet stupňů volnosti, tj. možností (parametrů), které určují jeho chování, proto je zcela normální, že program nelze vytvořit "z jedné vody na čisto", ale že se musí testovat (ladit), zda splňuje to, co se od něj očekává ...
      
    při hledání, proč něco nefunguje jak má, je užitečné si uvědomit, že "NIC NENÍ TAKOVÉ, ABY TO NEMOHLO BÝT RELATIVNÍ", tj. že musíme systematicky prověřit skutečně vše, co by mohlo být podstatné, i když se to na první pohled tak nejeví ...
      
  • z uvedeného vyplývá, že kromě schopnosti určitého nadhledu a logického myšlení patří k nejdůležitějším předpokladům pro úspěšné programování důslednost a hodně velká míra trpělivosti, ale především jistá forma "pokory" - a to jak vůči počítači, který sám o sobě chybu udělá jen naprosto výjimečně, tak při profesionálním programování vůči uživateli dat, která mu náš program zpracovává ...
      
    programování jako řemeslo, definované v 1. úvodní kapitole, totiž znamená převzetí zodpovědnosti za vše, co je tam zmíněno - takže když něco nefunguje, tak je kromě hledání chyby v programu taky potřeba si především klást otázku, zda to programátor dobře navrhl, zda poskytl uživateli dostatečně srozumitelný návod, atd, atd, ...
      
    jsme totiž stále u profesionální klíčové zásady, že systematicky prověřujeme vše podstatné, co by mohlo ovlivnit výsledek a víme, že to vždycky je a bude relativní ...