PDF

Tvorba software

Dvadsiata prvá prednáška

Formát
PDF
Veľkosť
383 kB
Pridané
Stiahnutí
1 886
Stiahnuť PDF · 383 kB

Preber si túto poznámku so svojou AI

Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto poznámky.

Otvoriť AI: ChatGPT · Claude · Gemini

Náhľad poznámky

Fakulta riadenia a informatiky ŽU

Tvorba softvéru

1

Cieľ

Tvorba softvéru

životný cyklus softvéru

 karty CRC

Príklad - taxislužba

2

Tvorba softvéru

 projekty doteraz

– hotová definícia tried

definícia tried – najdôležitejšia časť práce

celý softvér je realizovaný triedami

životný cyklus softvéru

všetky činnosti tvorby a použitia

začiatok(narodenie) – rozhodnutie riešiť problém

koniec(smrť) – softvér sa prestane používať

niektorý softvér umiera bez použitia

3

Modely životného cyklu

vodopádový model – prvý formálny

špirálový model – princíp prototypu

 UP (RUP)

– rozklad na iterácie

agilné metodiky

extrémne programovanie, Scrum, TDD

malé tímy (dvojice)

rýchle prototypy

4

Modely životného cyklu

 rozsiahle projekty

– riešia veľké tímy

komunikácia – spoločný jazyk (UML)

 konvencie

– zjednodušenie komunikácie

veľké tímy – špecializácia členov

5

Vodopádový model

analýza

návrh

implementácia

testovanie

údržba

6

Špirálový model – agilné metodiky

analýza

návrh

implementácia

testovanie

údržba

prototyp1

prototyp2

7

Model RUP (Rational Unified Process)

fázy

iterácie

činnosti

zahájenie rozpracovanie

tvorba

odovzdanie

biznis modelovanie

špecifikácia požiadaviek

analýza a návrh

implementácia

testovanie

nasadenie

1

2

3

4

5

6

7

8

riadenie projektu

8

Základné činnosti životného cyklu

analýza – pochopenie problému, model jadra

čo bude program robiť

návrh – doplnenie jadra, GUI, dátová vrstva

ako

to bude robiť

implementácia – písanie programu

urobme to

 testovanie

– začína od analýzy

overme

, či všetko funguje ako má

nasadenie (údržba)

opravme

skryté chyby, zber nových požiadaviek

9

Jednoduché prostriedky analýzy

cieľ analýzy – vyhľadať a navrhnúť triedy jadra

metóda verb&noun

 karty CRC

10

Popis problému - zadanie

stručný zápis podstatných častí formou textu –
slohová práca

klient nemá skúsenosti – nutná spolupráca

rozhovory, exkurzie, materiály, postupy


terminologický slovník domény

11

Príklad – taxislužba – zadanie

Taxislužba používa taxíky a mikrobusy. Taxíky prepravujú

jednotlivcov alebo skupiny ľudí z jedného miesta nástupu do
jedného cieľa. Mikrobusy sa používajú na zbieranie ľudí na
rôznych miestach nástupu a rozvoz do rôznych cieľov.
Taxislužba prijíma telefonické objednávky od jednotlivcov,
hotelov a cestovných kancelárií. Šofér taxíka i mikrobusu
oznamuje do centrály príchod do miesta nástupu aj do cieľa
cestujúceho. Centrála neudržuje žiadny systém čakajúcich,
objednávky prijíma len ak má voľné vozidlo.

Firma chce zistiť, či má rozšíriť vozový park, lebo rozširuje

oblasť, v ktorej poskytuje služby. Softvér by mal dať odpoveď
na otázky koľko zákazníkov museli odmietnuť, aký čas
strávia vozidlá jazdou bez pasažierov, koľko času stoja
nevyužité.

12

Rozbor zadania

– metóda verb&noun

podstatné mená – kandidáti na triedy

slovesá – kandidáti na operácie (správy,
metódy)

terminologický slovník domény

odstránenie synoným

odstránenie nepotrebných podstatných mien

opatrne, neponáhlať

13

Príklad – kandidáti na triedy(1)

Taxislužba používa taxíky a mikrobusy. Taxíky prepravujú

jednotlivcov alebo skupiny

ľudí z jedného miesta nástupu do

jedného cieľa. Mikrobusy sa používajú na zbieranie ľudí na
rôznych miestach nástupu a rozvoz do rôznych cieľov.
Taxislužba prijíma telefonické objednávky od jednotlivcov,
hotelov a

cestovných kancelárií. Šofér taxíka i mikrobusu

oznamuje do centrály príchod do miesta nástupu aj do cieľa
cestujúceho. Centrála neudržuje žiadny systém čakajúcich,
objednávky prijíma len ak má voľné vozidlo.

Firma

chce zistiť, či má rozšíriť vozový park, lebo rozširuje

oblasť, v ktorej poskytuje služby. Softvér by mal dať odpoveď
na

otázky koľko zákazníkov museli odmietnuť, aký čas

strávia vozidlá jazdou bez pasažierov, koľko času stoja
nevyužité.

14

Príklad – kandidáti na triedy(2)

podstatné mená v jednotnom čísle

taxislužba, taxík, mikrobus, jednotlivec, skupina, miesto
nástupu, cieľ, objednávka, hotel, cestovná kancelária, šofér,
cestujúci, centrála, vozidlo, firma, vozový park, oblasť,
služba, odpoveď, otázka, softvér, zákazník, pasažier

15

Príklad – odstránenie synoným(1)

taxislužba, centrála, firma – firma

jednotlivec, zákazník, pasažier, cestujúci – cestujúci

 skupina

– vyjadruje počet cestujúcich – X (nepoužijeme)

taxík,

 mikrobus,
 vozidlo

– taxík aj mikrobus, spoločné veci

miesto nástupu, cieľ – poloha

objednávka, hotel, cestovná kancelária – zdroj cestujúcich

šofér – a vozidlo tvoria celok – X

vozový park – množina vozidiel

16

Príklad – odstránenie synoným(2)

softvér – budeme tvoriť – X

oblasť – reprezentovaná polohami – X

otázka – formulovať až keď bude model fungovať – X

odpoveď – súvisí z otázkou – X

17

Príklad – triedy

 firma

cestujúci

taxík,

 mikrobus,
 vozidlo
 poloha

zdroj cestujúcich

vozový park

18

Príklad – operácie(1)

 firma

riadi taxíky a mikrobusy

prijíma objednávky

plánuje jazdy vozidiel

cestujúci

 poloha

zdroj cestujúcich

žiada firmu o službu pre cestujúceho

19

Príklad – operácie(2)

taxík

prepravuje jedného cestujúceho (skupinu)

 mikrobus

prepravuje jedného alebo viac cestujúcich

 vozidlo

zoberie cestujúceho z polohy

prichádza na polohu

informuje firmu o nastúpení cestujúceho

informuje firmu o vystúpení cestujúceho

20

karty CRC

 CRC: class

– responsibility – colaborators

fyzické karty – formát A6

názov triedy

spolupráca

zodpovednosť

21

Firma

má zodpovednosť

spolupracuje s

22

Vytváranie kariet CRC

 dve etapy

slovný popis zodpovednosti triedy – 1. sada

návrh rozhrania triedy – správy – 2. sada

23

Vytváranie kariet CRC – prvá etapa

pre každú triedu karta s jej menom

riešenie pomocou scenárov

akú má trieda zodpovednosť

s ktorou triedou bude spolupracovať

riešenie v tíme - scenár

členovia tímu hrajú rolu triedy

spoločne rozoberajú priebeh – scenár

tímové testovanie – je to všetko?, je to správne?

24

Príklad – základný scenár

preprava cestujúceho z miesta nástupu do cieľa

začína objednávkou prepravy

postupnosť krokov realizujúcich scenár

Scenár – preprava cestujúceho

Zdroj cestujúcich vytvorí nového cestujúceho

Zdroj cestujúcich vygeneruje polohu a cieľ
cestujúceho

Cestujúci príjme polohu a cieľ

Zdroj cestujúcich požiada firmu o prepravu
cestujúceho

...

Taxislužba – CRC 1. etapa

25

26

Scenár do CRC(1)

Zdroj cestujúcich vytvorí cestujúceho

CRC
trieda

– ZdrojCestujucich

zodpovednosť – vytvorí cestujúceho

spolupracujúca trieda – Cestujuci

27

ZdrojCestujucich

zodpovednosť
vytvorí cestujúceho

spolupracovníci

Cestujuci

28

Scenár do CRC(2)

Zdroj cestujúcich vygeneruje polohu a cieľ
cestujúceho

29

ZdrojCestujucich

zodpovednosť
vytvorí cestujúceho
generuje polohu a cieľ

spolupracovníci

Cestujuci

Poloha

30

Scenár do CRC(3)

Cestujúci príjme polohu a cieľ

31

Cestujúci

zodpovednosť
prijme polohu a cieľ

spolupracovníci

Poloha

32

Testovanie scenára

členovia tímu hrajú role tried

simulujú scenár

testovanie v priebehu analýzy

kontrolujú, dopĺňajú alebo menia
zodpovednosť a spolupracujúce triedy

Doplnenie polymorfizmu

33

34

Karty CRC

– druhá etapa

návrh rozhrania triedy – správy – 2. sada

návrh identifikátorov správ vychádza zo
zodpovednosti triedy

zodpovednosť môže byť transformovaná do
viac ako jednej správy

správy a ich parametre (návratové hodnoty)

35

Scenár do CRC(1)

Zdroj cestujúcich vytvorí cestujúceho

36

ZdrojCestujucich

zodpovednosť

vytvorCestujuceho() : Cestujuci

spolupracovníci

Cestujuci

37

Scenár do CRC(2)

Cestujúci príjme polohu a cieľ

Atribúty cestujúceho

38

Cestujúci

zodpovednosť

new(Poloha paOdkial, Poloha paKam) :
Cestujuci

spolupracovníci

Poloha

Scenár do CRC(3)

Zdroj cestujúcich požiada firmu o prepravu
cestujúceho

okamžite po vytvorení

 firma

– atribút

v parametri správy new

39

40

ZdrojCestujucich

zodpovednosť

new(Firma paFirma) : ZdrojCestujucich

vytvorCestujuceho() : Cestujuci

spolupracovníci

Cestujuci

Poloha

Firma

Scenár do CRC(4)

Firma prijíma žiadosť o prepravu cestujúceho

41

42

Firma

zodpovednosť

ziadostOPrepravu(Cestujuci) : void

spolupracovníci

Cestujuci

43

Prototypovanie -

iterácie

postupná realizácia návrhu

najdôležitejšie triedy – 20% tried robí 80% práce

spolupracujúce triedy – simulácia, konštantné
operácie

priebežné testovanie – unit testy

jeden scenár – iteračný krok

po každej iterácii – testy regresie

44

Implementácia prototypu(1)

z rozhraní – Java

metódy na začiatku prázdne telá

metódy s návratovou hodnotou

triviálny return null, 0, false

všetky metódy

 UnsupportedOperationException

testovacie triedy na prázdne metódy

45

Implementácia prototypu(2)

prototyp je dobrý, lebo

 zapojenie klienta do tvorby

vidí vznik produktu,

nadobudne dôveru vo výsledok

má pripomienky včas

má tendenciu podporovať tím

46

Dokumentácia

po vytvorení rozhrania tried

pred vlastnou implementáciou metód

dokumentácia triedy

dokumentácia metód

47

Priklad

– trieda Firma

public class Firma
{
private Vozidlo[] aVozovyPark;

public Firma()
{
int pocetVozidiel = 1;
aVozovyPark = new Vozidlo[pocetVozidiel];
}

public void ziadostOPrepravu(Cestujuci paCestujuci)
{
throw new UnsupportedOperationException();
}
...

48

Priklad

– trieda Taxik

/**
* Nastavi ciel pohybu taxika do miesta nastupu.
* Nastavenim ciela je taxik obsadeny.
*
* @param paPoloha Poloha miesta nastupu cestujuceho.
*/
@Override
public void chodNaNastup(Poloha paPoloha)
{
throw new UnsupportedOperationException();
}

A

ďalej to už poznáte...

Ďakujem za pozornosť

Automaticky vygenerovaný textový náhľad. Pre plné formátovanie si stiahnite súbor.