User Tools

Site Tools


statnice:vyvoj:otazka15

15. Výkonnost informačního systému a informačních a komunikačních technologií

Definujte pojem výkonnost. Které charakteristiky komponent IS/ICT určují výkonnost a jak je lze ovlivňovat. Jaké metriky byste použili pro výkonnost IS/ICT, jak je lze měřit a s využitím jakých nástrojů?

Úloha

Předpoklady: Pracujete na projektu vývoje IS a právě tvoříte plán tohoto projektu. Jste ve fázi plánování kvalitativních požadavků a zjišťujete, že kritickým bude požadavek na výkonnost systému. Jak budete postupovat, aby výkonnost Vámi garantovaného systému splnila očekávání v případě, že si systém vyvíjíte sami a v případě, že je systém dodáván externí firmou?

Zadání:

  • Rozhodněte se, zda je možné ovlivnit výkonnost systému již ve fázi analýzy, nebo dokonce ještě dříve. Jaká použijete kriteria (metriky) a jak se to projeví v plánu projektu?
  • Navrhněte specifikaci výkonnostních požadavků v životním cyklu vývoji software
  • Určete způsoby odhalení a odstranění výkonnostních problémů

Teorie

Výkonnost je charakteristika IS popisující jak rychle je schopen provádět řešené aplikace. Je determinována jednak prostředky hardwarovými a síťovými, tak provedením softwarového řešení.

Má dvě charakteristiky: dostupnost, která de facto definuje dobu odezvy systému a propustnost, která popisuje objem činností, který je systém schopen za jednotku času zpracovat. Kromě toho lze sledovat – a zejména u sítí je to podstatně i směrodatnou odchylku dostupnosti, která určuje jak moc tento parametr kolísá.

V případě technických prostředků výkonnost ovlivňuje především kvalita HW: výkonnost CPU a velikost jeho cache ale i čipová sada počítače, velikost paměti (nemusí swapovat), přenosová rychlost sběrnice, přístupová doba u disku, u specifických úloh třeba i rychlost grafické karty, apod. rychlost síťových prvků a struktura sítě a celková architektura počítače – jednoprocesorová, víceprocesorová, mainframy mají zvláštní kanálovou architekturu, atd. Ovlivňovat to lze jednak používáním silnějších komponent a optimalizací jejich vazeb, vytváření clusterů a dalších prostředků kooperativního zpracování.

Výkon softwarového řešení závisí především od použité architektury a algoritmů. Je známo, že některé typy architektur a některé postupy mají větší systémovou režii – např. OOP, což ale nevadí, protože je to bohatě kompenzováno jinými přednostmi. Pokud se ale vytváří věci, které jsou výkonově kritické, je třeba tohle optimalizovat. Záleží na tom, jak je třeba řešena komunikace mezi jednotlivými vrstvami klient server, která je obvykle proti zpracování poměrně pomalá.

Druhá věc je vyladění algoritmů – existují různě silné algoritmy pro stejné úlohy, většina výpočtů lze urychlit uchováváním výsledků mezivýpočtů apod. U některých typů výpočtů nejsou dostatečně rychlé algoritmy pro nalezení optimálního řešení, ale existují algoritmy pro řešení suboptimální (heuristiky). Testovat se to dá profilery, nástroji pro zátěžové testování (LoadRunner), atd. Existují rovněž benchmarky a to pro HW i SW.

Metriky pro výkon programových nástrojů – vždy záleží na tom, jaké faktory jsou pro daný SW kritické.

Metriky mohou být tvrdé a měkké. Pro měření výkonu podle výše uvedené definice jsou lepší objektivní tvrdé metriky jako: objem zpracovaných dat, dostupnost, doba odezvy, efektivnost využití HW, efektivnost využití linek, atd. Je dobré definovat KPI a KGI a různé úrovně kvality – standardní, podstandardní, kritická, motivační, atd.

Praxe

Je to možné a dokonce je to nutné. Výkonnost IS/ICT závisí v prvé řadě na kvalitně udělané konceptuální analýze, případně BPR. Pokud totiž budou neefektivní firemní procesy, nepomůže jim IS/ICT ani kdyby byl pozlacenej. Musí se to ovlivnit ve fázi technologické volením takových postupů a návrhem takových algoritmů, aby to bylo optimální. Záleží např. na kvalitě modelu datové základny, ale i na SŘBD (optimalizace, způsob zamykání položek, atd.). Samozřejmě závisí na kvalitě provedení.

Kritéria by měla vycházet z požadavků. Dejme tomu, že potřebujeme, aby se systémem pracovalo současné 500 lidí. Od toho se musí odvodit, jak vypadá „průměrná“ transakce, nároky na přenosové linky, nároky na DB, na SW, atd. Ty se musí vynásobit tak 4x a máme metriky. Zátěžové testy, profiling, benchmarky.

statnice/vyvoj/otazka15.txt · Last modified: 18.05.2008 10:47 by xvalo07