+ All Categories
Home > Documents > Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8...

Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8...

Date post: 26-Aug-2020
Category:
Upload: others
View: 3 times
Download: 0 times
Share this document with a friend
58
1 Tvorba software a algoritmizace
Transcript
Page 1: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

1

Tvorbasoftwareaalgoritmizace

Page 2: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

2

Obsah

• Vývojsoftware• Metodikyvývojesystémů• Programování• Algoritmizace• Záznamaprvkyalgoritmu• Příklady

Page 3: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

3

Účelsystému

• Systémjesouboremsouvisejícíchčástí,kteréspoluvzájemněspolupracujízaúčelemsplněníurčitéhocíle.

• Počítačovýsystémseskládáz:– Hardware– Software– Lidí– Procedur– Dat

Page 4: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

4

Kolik stojí vývoj software?

Page 5: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

5

Kdo sepodílí na vývoji software?

• Uživatelé– Nový softwaremusí být vždy vyvíjen ve spolupráci s

uživateli,kteří hobudou používat• Management

– Manažeři organizace,ve keré bude softwarenasazen,byměli konzultovat rozpočet azdroje

• Technický personál– Bude realizovat projekt,nebo spolupracovat na

jeho vývoji• Systémový analytik

– Informační specilista,který provádí systémovouanalýzu,návrh aimplementaci software

Page 6: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

6

Pročvývojsoftware?

• 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)– Vyhnoutsepotížím

• Nařízení– Pokynkakci(shoraodvedení)

Page 7: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

7

Vývojsoftware

• Vývojsoftware:– Aktivity,kterévedouktvorběřešenísoftwarovéaplikaceneboinformačníhosystému,kterýřešíurčitýproblémnebopříležitost

– Doporučenépostupyřešeníaplikacíainformačníchsystémů–metodiky

– VětšinaICTfiremdisponujevlastnímimetodikami(např.IBMRUP,UnicornES,aj.),aleexistujíistandardní(ITIL,COBIT)nebouniverzitnímetodiky

Page 8: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

8

Životnícyklusvývojesoftware

• Aplikaceprocházífázemiživotníhocyklu• Každáfázezahrnujeaktivity,kterémusíbýtvykonánypřivznikuaplikace

• Fázeživotníhocykluseopakují– aplikacesedostávánavyššíúroveň,zahrnujenovépožadavkyuživatelů,využívámodernítechnologie,apod.

Page 9: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

9

Fázeživotníhocyklusystému1.

Plánováníapříprava

2.Analýzasystému

3.Návrhsystému

4.Vývojsystému

5.Implementacesystému

6.Užíváníaúdržbasystému

Zdroj: Using Infromation Technology, 2013.

Page 10: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

10

Fáze 1:Plánování apříprava• Předběžná analýza• Návrh alternativních řešení– Interviewsezaměstnanci– Průzkum konkurence– Volba,zda ponechat stávající systém,vylepšení nebovývoj nového

• Náklady apřínosy• Předložení předběžného plánu adoporučení– Tištěná zpráva– Prodalší fázi jenezbytné schválení managementu

Page 11: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

11

Fáze 2:Analýza systému• Sběr dat– Rozhovory spracovníky avedoucími– Příprava,distribuce aanalýza dotazníkovéhošetření

– Průzkum dokumentace kstávajícímu systému– Pozorování současných pracovních postupů

• Analýza dat–Modelování pomocí nástrojů (CASE)– Diagramdatových toků (DFD,DataFlowDiagram)– znázornění průchodu dat systémem

Page 12: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

12

Fáze 2:Analýza systému

• Sepsání zprávy– Dokumentace funkcí ksoučasnémusystému

– Dokumentace potíží současného systému– Záznam požadavků na nový systém– Doporučení kdalším krokům

• Nutnost získat svolení vedení kdalšímupostupu

Page 13: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

13

DataFlowDiagram(DFD)Příklad:internetový obchod

Page 14: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

14

Fáze 3:Návrh systému• Předběžný návrh– Prototyp,návrh pomocí CASEnástrojů

• Detailní návrh:– Požadavky na výstupy– Požadavky na vstupy– Požadavky na ukládání dat– Požadavky na zpracování dat– Systémové kontroly– Záohování

• Písemná zpráva aschválení vedení prodalší postup

Page 15: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

15

Fáze 4:Vývojsystému• Návrh nebo zakoupení nového software– Rozhodnutí zda koupit hotové řešení nebo nechatvytvořit nový software

– Vlastní tvorba – programování• Pořízení nového hardwarenebo upgrade• Testování systému– Testování modulů:testuje sevýkon jednotlivýchsoučástí

– Testování systému:moduly jsou propojeny atestovány,zda spolují dohromady;reálná data

Page 16: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

16

Fáze 5:Implementace systému

• Volba strategie zavedení nového systému– Přímá implementace:ukončení starého azavedenínového systému (“ze dne na den”)

– Souběžná implementace:souběžně používámestarý anový systém,dokud senový systémspolehlivě neprověří

– Postupná implementace:části nového systémupostupně nahrazují části původního systému

– Pilotní implementace:ověření funkčnosti novéhosystému vmenším rozsahu (např.Oddělení)

• Školení atrénink uživatelů

Page 17: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

17

Fáze 6:Provoz aúdržba systému

• Auditování systému apravidelné hodnocení• Provádění úprav systému dle novýchpožadavků

• Dokončení dokumentace– Dokumentace byseměla vytvářet aaktualizovat vprůběhu všech fází životního cyklu systému

Page 18: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

18

Kdyžsenepoužívástandardnímetodika…

Page 19: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

19

Jakzákazníkpopsalsvojepřání

Jaktopochopilvedoucíprojektu

Conavrhnulanalytik Costvořilprogramátor Cokonzultantvylíčilzákazníkovi

Dokumentaceksystému

Kteréfunkcebylynainstalovány

Cobylozákazníkovinaúčtováno

Jakábylapodporauživatelů

Cozákazníkdoopravdychtěl

Zdroj: donationcoder.com

Příběhsoftwarovéhoprojektu

Page 20: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

20

Programování

Page 21: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

21

Programování• Programjesadainstrukcí,kterévykonávápočítačatímzpracovávádatanainformace

• Programovánípatřídofázeč.4životníhocyklusoftware

• 5kroků:1. Objasněníadefinicezadání(úlohy)2. Návrhprogramu3. Kódováníprogramu4. Testováníprogramu5. Dokumentaceaúdržbaprogramu

Page 22: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

22

Programování– krok1:Objasněnízadání

• Nutnoobjasnitúčelprogramuajehouživatele• Požadovanévýstupy• Požadovanévstupy• Jakmáprobíhatzpracování• Ověřenívhodnostiprogramu(„Skutečněsetovyplatí?“)

• Zpracováníanalýzy(písemně)

Page 23: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

23

Programování– krok2:Návrhprogramu

• Tvorbaalgoritmu,neboposloupnostikrokůvedoucíchkřešenístanovenéhozadání

• Strukturovanéprogramování:– Logickáposloupnostmodulů–Metodashora-dolů(top-down approach)– Hierarchickégrafy– Pseudokód

• Alternativa:objektovéprogramování

Page 24: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

24

Hierarchickýgraf

Zdroj: Using Infromation Technology, 2013.

Page 25: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

25

Pseudokód

Zdroj: Using Infromation Technology, 2013.

Page 26: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

26

Programování– krok2:Návrhprogramu(pokračování)

• Strukturovanéprogramování:– Využívářídícístruktury:• Sekvence(logickáposloupnostjednotlivýchkroků)• Selekce(např.IF– THEN– ELSE)• Iterace(cyklus),např.DOUNTIL/DOWHILE

– Znázorněnívgraficképodoběpomocívývojovýchdiagramů,strukturogramů

Page 27: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

27

Programování– krok3:Kódování

• Převodgrafickéhoznázorněníprogramudoprogramovacíhojazyka

• Výběrprogramovacíhojazyka• Odlišnostprogramovacíchjazykůvsyntaxi,gramatickýchpravidlech– Nutnododržovat(syntaktickéchyby– syntaxerror)

Page 28: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

28

Programování– krok4:Testováníprogramu

• Syntaktickéchyby(automaticky)• Logickéchyby(ručně)• Debugging=procesidentifikace,hledáníaodstraňovánívšechsyntaktickýchalogickýchchybvpočítačovémprogramu

• Betatestováníprogramunareálnýchdatech– Vprvnífázitestnasprávnýchdatech– Vdruhéfázitestsnesprávnýmidaty– běžníuživateléhledajískrytéchyby

Page 29: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

29

Programování– krok5:Dokumentaceaúdržbaprogramu

• Dokumentacejepísemnýpopisprogramu,jehofunkcíanávodjakřešitproblémy

• Uživatelskádokumentace– prouživatele(např.uživatelskápříručka– online,zabudovanávprogramu,tištěná)

• Technickádokumentace– prosprávceICT• Programátorskádokumentace– proúdržbuarozvojsoftware(můžebýtivezdrojovémkódu)

Page 30: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

30

Strukturovanéprogramování

• VizProgramování- krokč.2

Page 31: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

31

vživotě

Page 32: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

32

vinformatice

Page 33: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

33

ALGORITMIZACE

• chciněcospočítata/ rozmyslímsi,jakpostupovatb/ proveduvýpočetpodlevymyšlenéhopostupu

l ada/tvůrčíčinnost,mohuvymýšletrůznéstrategieahledatdůvtipnétriky

l adb/mechanickyprovádímvýpočet:aninemusímproblémumocrozumět,alemusímpracovatpečlivě

Page 34: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

34

ALGORITMUS

• Přesnýnávodčipostupprořešenídanéhotypuúlohy

• Vširšímslovasmyslu:jakýkolivpostupřešení(např.kuchyňskýrecept)

• Vužšímslovasmyslu:postupsplňujícísilnějšípožadavky(např.počítačovýalgoritmus)

Page 35: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

35

Algoritmus- požadavky

1. mechanický – lzehoprovéstibezbližšíhoporozumění

2. diskrétní – rozdělenýnadílčíkroky3. hromadný – prořešenícelétřídyúloh(např.součin

dvoucelýchčísel)4. deterministický – pokaždémkrokujeurčeno,který

dalšíkrokbudenásledovat5. konečný (rezultativní)– postupskončívkonečném

počtukroků6. správný – propřípustnévstupníúdajeapourčitém

počtukrokůsevždydospějekvýsledku

Page 36: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

36

Záznamalgoritmu

• slovnímvyjádřením– častonedokonalýpopis• grafem,obrázkem,schématem• smluvenýmgrafickýmvyjádřením- vývojovýmdiagramem- plošnýmstrukturogramem

• vhodněokomentovanýmprogramem

• srozumitelný– musíbýtjasné,coajakřeší• přehledný– rychleuchopitelný• dostatečněpodrobný– proobjasněnízpůsobuřešení• dostatečněstručný– detailyjsoumatoucí

Page 37: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

37

Vývojovýdiagramvs. strukturogram

předvolenésměry

činnost

činnost

činnost

činnost

činnost

hranicemeziplochamispojovacíčáry

Page 38: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

38

Příkladalgoritmu- 1

„Nákuprohlíkůvobchodě“

Dojdikodděleníspečivem

Vezmisáček

Dejdonějrohlíky

Dojdikpokladně

Zaplať

Vraťkošík

Vezminákupníkošík

Jdidoobchodu

Ukliďrohlíkydotašky

Odejdizobchodu

Cokdyžmajízavřeno?Cokdyžnemajírohlíky?Cokdyž…?

Page 39: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

39

Příkladalgoritmu- 2

„Výpočetpovrchukvádru“

Čtidélkustranyc

Sab=a*b

Sbc=b*c

Sac=a*c

S=2*(Sab+Sbc+Sac)

VypišSab,Sbc,Sac

Čtidélkustranyb

Čtidélkustranya

VypišcelkovýpovrchS

Cokdyžuživatelzadánulovédélkystrana,b,c?

Cokdyžuživatelzadázápornoudélkustrany?

ab

c

Page 40: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

40

Základníprvkyalgoritmu

2. selekce– větvení,volbapokračovánípodlepodmínky

1. sekvence– jednotlivýkrok,prováděnývždy

3. iterace– cyklus,opakovanéprováděnípodmíněnoa) testemnazačátkub) testemnakonci

Page 41: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

41

Sekvence

činnost

činnost

činnost

činnost

činnost

činnost

…přiřazovacípříkazy,

volánípodprogramů,…činnost

sekvence– činnostiseprovádějívdanémpořadí

Page 42: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

42

Sekvence- příklad

„Výměnaobsahudvouproměnných“

pom=x

x=y

y=pom

čtix,y

y=12

x=3

Sestrojtealgoritmus,kterýnačtedvěreálnáčísladoproměnnýchx ay aprohodíjejichhodnoty.

Proměnná1. pojmenovanémístooperačnípaměti,

kteréobsahujedata,ježmohoubýtměněnaběhemzpracováníalgoritmu(programu)

2. místovoperačnípaměti,kterézačínánaurčitéadreseamádanýpočetbytů

Page 43: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

43

Selekce

if(podmínka)then příkaz_Aelse příkaz_B

podmínka

ano ne

příkaz_A příkaz_B

nepodmínka

ano

příkaz_A příkaz_B

selekce– výběrzmožnýchpokračování

Page 44: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

44

ne

Selekce

podmínkapodmínka

ano

if(podmínka)then příkaz_Aelse nic

ano ne

příkaz_A

příkaz_A

selekce– výběrzmožnýchpokračování

Page 45: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

45

Selekce- příklad

„Dělenídvoučísel“

JeB=0?Ano Ne

Vypiš:„Pokusdělitnulou!“ Vypišpodíl

ČtiA,B

Podíl=A/B

Page 46: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

46

Vícenásobnáselekce

docase(podmínka)1příkaz_A2příkaz_B3příkaz_C...npříkaz_Ndefault příkaz_Z

podmínka1

default

zajímavost

23

příkaz_A příkaz_B

n

příkaz_N Příkaz_Zpříkaz_C

Page 47: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

47

Iterace– stestemnazačátku

podmínka

for(od; pokud ; krok)činnostwhile (podmínka)činnost

činnost

ne

ano

podmínkane

ano

činnost

iterace– opakování

Page 48: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

48

Příklad– Iteracestestemnazačátku

„Přípravašálkukávy“Mášrychlovarnoukonvici?

Ano Ne

Nelzepřipravitšálekkávypomocírychlovarnékonvice

VezmikonviciNalijdoní0,1lvody

Chcešuvařitvícevody?

PostavazapnikonviciVezmiprázdnýšálek

Dokudnenívodauvařená

Zalijšálekvodou

Přidej0,1lvody

Čekej30vteřin

Nasypdošálkukávu

Page 49: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

49

ano

Iterace– stestemnakonci

podmínka

do činnostwhile podmínkarepeatčinnost untilpodmínka

činnost

podmínka

činnost poprvévždy,dálepřiano

ne

ne

iterace– opakování

Page 50: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

50

Příklad– Iteracestestemnakonci

„Skládánízkouškynavysokéškole“

Ano Ne

Dokudnenízkouškasplněnasvýsledkem<=3

Dokud nejsi přihlášen(a)natermín

NajdinejbližšítermínzkouškyJetermínvolný?

Přihlassenatermín

Pokussesložitzkoušku

Zkouška úspěšněsplněna

Page 51: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

51

Selekce vs.Iterace• Selekce – výběrzvícemožností;provádísepouzejednouaneopakujeseNapř. Jehodnotavproměnnéa většínež0?Pokudano:přičtidoa 1;pokudne,odečtioda 1.

• Iterace – činnostuvedenávblokuiteracesemůžeopakovatvícenežjednou,dokudplatípodmínkaNapř. Jehodnotavproměnnéa většínež0? – pokudano,odečtioda 1atestujznovupodmínku; pokudne,přejdikdalšímukroku.

Page 52: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

52

Počítačovýsoftware

• Uživatelzadávásvojepožadavkypočítačovémuhardwareprostřednictvíminstrukcívsoftware

• Tytoinstrukcemusíbýtzapsányvpodoběsrozumitelnémikroprocesoru(CPU)-programování

Page 53: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

53

Programovánívs.algoritmizace

• Programování=procestvorby(psaní)programupomocíprogramovacíhojazyka

• Algoritmizace=procestvorbyalgoritmu(postupuřešení)

• Programování≠algoritmizace

Page 54: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

54

Programovacíjazyk

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

• Přílišdlouhéasložité• Programovacíjazyk– zápisinstrukcívezkrácenépodoběsrozumitelnéčlověku

• Speciálníprogram– překladač – převádíinstrukceprogramovacíhojazykadostrojovéhokódu

Page 55: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

55

• 10PRINT“HELLO”• 20END

Page 56: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

56

Překladzdrojovéhokóduprogramu

Procespřekládání

zdrojovéhokódu

Zdrojovýkódprogramu

Programve

strojovémkódu

ZapsánovBASIC,C, aj.

Překladačprogramovacího

jazyka

10PRINT„HELLO“ 1001101

11101010010110

Obr: quantifactus.wcupa.edu/lab/mis/software.ppt

Page 57: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

57

Souhrnnéotázky

1. Vysvětleterozdílmezi„algoritmizací“a„algoritmem“.2. Můžealgoritmusvzniknoutafungovatibezpoužitípočítače?Vysvětlete.3. Uveďtealespoň3základnípožadavkynaalgoritmus.4. Vysvětleterozdílmezipožadavkyna„mechanický“a„hromadný“

algoritmus.5. Včemselišínákresalgoritmupomocívývojovéhodiagramuapomocí

plošnéhostrukturogramu?6. Cojetoproměnná?7. Vyjmenujtezákladníprvkyalgoritmu.8. Uveďtepříkladsekvence.Jakýjerozdílmezisekvencíaselekcí?9. Vysvětleterozdílymeziselekcíaiterací?10. Kčemusloužípodmínkaviteraci?Kdesemůženacházet?11. Zajakýchokolnostídojdekopakováníblokučinnostíviteraci?Uveďte

příklad.12. Algoritmizujteúlohunaplnění5lahvívodou.Znázornětepomocí

plošnéhostrukturogramu.

Page 58: Tvorba software a algoritmizace · standardní (ITIL, COBIT) nebo univerzitní metodiky. 8 Životní cyklus vývoje software ... • Každá fáze zahrnuje aktivity, které musí

58

Souhrnnéotázky13. Zjakýchdůvodůdocházíkvývojisoftware?Uveďte

příklady.14. Uveďtealespoňtřirůznénástroje,kterépomáhají

efektivnějšímuvývojisoftware.15. Cojetometodikavývojesoftware?Vysvětleteauveďte

příklad.16. Coobnášífázeživotníhocyklusoftware„analýzaa

návrh“?17. Vysvětlete.Vysvětleterozdílmezialgoritmizacía

programováním.18. Kčemusloužíprogramovacíjazyk?19. Jakájeúlohapřekladačezdrojovéhokódupřitvorbě

programu?


Recommended