Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vypisky-z-prednasek.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
72.52 Кб
Скачать

Algoritmizace a tvorba software

Problém  Nápad  Postup (=Algoritmus)  Realizace (=Program)  Nezdar?

Algoritmizace

  • chci něco spočítat: a) rozmyslím si, jak postupovat-tvůrčí činnost, mohu vymýšlet různé strategie a hledat

důvtipné triky

b) provedu výpočet podle vymyšleného postupu-mechanicky provádím výpočet: ani nemusím problému moc rozumět, ale musím pracovat pečlivě

Algoritmus

  • Přesný návod či postup pro řešení daného typu úlohy

  • V širším slova smyslu: jakýkoliv postup řešení (např. kuchyňský recept)

  • V užším slova smyslu: postup splňující silnější požadavky (např. počítačový algoritmus)

  • Požadavky: 1) mechanický – lze ho provést i bez bližšího porozumění

2) diskrétní – rozdělený na dílčí kroky

3) hromadný – pro řešení celé třídy úloh (např. součin dvou celých čísel)

4) deterministický – po každém kroku je určeno, který další krok bude následovat

5) konečný (rezultativní) – postup skončí v konečném počtu kroků

6) správný – pro přípustné vstupní údaje a po určitém počtu kroků se vždy dospěje k výsledku

Záznam algoritmu: - srozumitelný – musí být jasné, co a jak řeší

- přehledný – rychle uchopitelný

- dostatečně podrobný – pro objasnění způsobu řešení

- dostatečně stručný – detaily jsou matoucí

-slovním vyjádřením (často nedokonalý), grafem nebo obrázkem, vhodně okomentovaným programem, smluveným grafickým vyjádřením-vývojovým diagramem, plošným strukturogramem

(vývojový diagram= činnost  činnost  činnost)

(plošný strukturogram= činnost,činnost,činnost)

Algoritmus= Jdi do obchodu,vezmi košík,vezmi sáček,naplň rohlíkama,zaplať…

Základní první algoritmu: 1. Sekvence = jednotlivý krok,prováděný vždy

2. Selekce= větvení, volba pokračování podle podmínky,výběr z možných pokračování

3. Iterace= cyklus, opakované provádění podmíněno (testem na začátku,na konci)

Selekce vs IteraceSelekce-výběr z více možností; provádí se pouze jednou a neopakuje se

Iterace-činnost uvedená v bloku iterace se může opakovat více než jednou, dokud platí podmínka

Počítačový software

  • Uživatel zadává svoje požadavky počítačovému hardware prostřednictvím instrukcí v software

  • Tyto instrukce musí být zapsány v podobě srozumitelné mikroprocesoru (CPU) - programování

  • Programování vs. algoritmizace: Programování = proces tvorby (psaní) programu pomocí programovacího jazyka

Algoritmizace = proces tvorby algoritmu (postupu řešení)

Programování ≠ algoritmizace

Programovací jazyk

  • Počítač (CPU) rozumí elektrickým signálům (bity) – jazyk strojového kódu

  • Příliš dlouhé a složité

  • Programovací jazyk – zápis instrukcí ve zkrácené podobě srozumitelné člověku

  • Speciální program – překladač – převádí instrukce programovacího jazyka do strojového kódu

Vývoj programovacích jazyků:

První generace (jazyk strojového kódu)

-nejstarší typ,instrukce tvořeny posloupností bit,obtížné hledání chyb,100% využití CPU

Druhá generace (jazyk symbolických adres)

-jazyk nižší úrovně,jazyk je hardwarově závislý,příkazy překládá do stroj.kódu procesoru

speciální program – assembler

Třetí generace (problémově orientované jazyky)

-vyšší úrovně programování,příkazy odvozené z anglic.slov,moderní programovací jazyky,

jazyky pro vědecko-technické výpočty,hromad.zprac.dat,univerzální jazyky

Čtvrtá generace (programovacích jazyků)

-vyšší úroveň program.jazyků,snaha o zjednodušení a zrychlení práce programátora,

PowerBuilder,využívání mnoho vestavěných funkcí,bývají často napojeny na databázi

(objektově orientované jazyky)

-programování na abstraktní úrovni,data a instrukce jsou v tzv.objektu,důraz na snadnou údržbu

Proč vývoj software?

  • Využití příležitosti (proaktivní přístup)-Zvýšení příjmů podniku,Snížení nákladů,Získání konkurenční výhody

  • Řešení problému (reaktivní přístup) -Vyhnout se potížím

  • Nařízení- Pokyn k akci (shora od vedení)

  • Krize software: 60. a 70. léta 20. století

    • Problém „programátora - umělce“ vedl ke katastrofálním následkům při tvorbě větších softwarových systémů

      • Používání programovacích triků je nesrozumitelné pro ostatní programátory (problém údržby software)

      • Změna programu vede k nutným změnám v ostatních částech programu

      • Skokový nárůst nákladů na vývoj a údržbu software

      • Zpoždění v dokončování softwarových projektů

      • Softwarový vývojáři jsou zaneprázdněni správou a opravováním existujících programů

  • Cesta z cenové pasti: Typový aplikační software („krabicový software“)

    • Velké množství uživatelů

    • Potenciálně vyšší kvalita (?)

    • Nevýhoda: neobsahuje speciálně požadované funkce

Techniky tvorby software (softwarové inženýrství)

    • Principy, metody a nástroje efektivní tvorby spolehlivějšího a lépe udržovatelného software

    • Software je chápán jako běžný „produkt“, který má svůj životní cyklus

    • Programy pro tvorbu software (vývojové nástroje)

    • Výhoda: větší spolehlivost software a snazší údržba

- Vývoj software: Aktivity, které vedou k tvorbě řešení softwarové aplikace nebo informačního systému, který řeší určitý problém nebo příležitost

    • Doporučené postupy řešení aplikací a informačních systémů – metodiky

    • Většina ICT firem disponuje vlastními metodikami (např. IBM RUP, Unicorn ES,aj.), ale existují i standardní (ITIL, COBIT) nebo univerzitní metodiky

  • Aplikace prochází fázemi životního cyklu

  • Každá fáze zahrnuje aktivity, které musí být vykonány při vzniku aplikace

  • Fáze životního cyklu se opakují – aplikace se dostává na vyšší úroveň, zahrnuje nové požadavky uživatelů, využívá moderní technologie, apod.

-ITIL

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]