1. Algoritmus a vazba na program

1.3. Analýza problému

K analýze problému lze využít některé z běžně používaných metod např. Brainstorming – generování co největšího množství nápadů k danému problému za účasti lidí v různých rolích, obousměrné plánování – kombinace přístupů Top-Down (dekompozice cíle v horní úrovni až po rozpracování a konkretizace způsobů jak implementovat cíle v dolní úrovni, které vedou ke splnění cíle v horní úrovni) a Bottom-Up (stanovení cílů a jejich dosažení z pohledu zdola nahoru), kde jsou odchylky průběžně koordinovány a dochází k jejich ladění, atd. Pro začátečníky je vhodné doporučit postup shora dolů, který je názornější.

Jak si lze všimnout, při analýze se používají obecné postupy:

  • Dekompozice – postupné dělení problémů na menší, nebo slovy klasika Divide et impera! – rozděl a panuj. Tento přístup je základním přístupem v informatice, jenž dekomponuje programového řešení problému na sadu samostatných programů a podprogramů. Je známo, že kratší programy se píší a ladí snadněji než dlouhé. Tuto závislost lze odhadnout empiricky zjištěným vzorcem:

N = k* D1.125

 kde:

    • N jsou náklady na program v korunách nebo člověkohodinách
    • k je vhodná konstanta
    • D je počet řádků v tisících

Závislost je tedy podstatně horší než lineární v neprospěch větších programů

  • Hierarchie – je vhodné najít hierarchické závislosti jednotlivých částí v systému. Popsáním jejich vzájemných vazeb, může vést k výraznému zjednodušení

  • Abstrakce – oddělení podstaty řešeného problému od detailů, tj. ignorace detailů, které nemají žádný významný vliv na řešení problému

Sice existuje řada pravidel, která pomáhají při analýze a plánováni, ale důležitá je také dobrá intuice, dovednosti a tzv. selský rozum.