Download - Složitost IS
![Page 1: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/1.jpg)
SLOŽITOST IS
![Page 2: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/2.jpg)
POJMY Stupnice: Absolutní – měřená hodnota vyjádřena
poměrem k nějakému celku ( např. %) Poměrová – výpočet míry celku ze známých
komponent (průměr, rozptyl) Intervalová (např. stupnice teploty) Ordinální – subjektivní odhad a pouhé
porovnání Nominální – klasifikace do tříd bez závěrů
![Page 3: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/3.jpg)
METRIKY vnitřní – data se získávají analýzou návrhu
kódu vnější – data se získávají za běhu programu
![Page 4: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/4.jpg)
JAKOST IS Atribut – měřitelná fyzická či abstraktní vlastnost entity. Funkčnost = schopnost IS či softwarového produktu obsahovat
funkce, které zabezpečují předpokládané či stanovené potřeby uživatele při užívání systému
Přiměřenost – schopnost poskytovat funkce pro zajištění úloh a potřeb.
Přesnost – schopnost poskytnout správné výsledky s potřebnou úrovní přesnosti
Schopnost spolupráce – spolupráce s jedním či více jinými specifikovanými systémy
Bezpečnost – chránit informace a data proti neautorizovanému čtení, změně
Shoda funkčnosti – pracovat ve shodě s normami, standardy, zákony, konvencemi
![Page 5: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/5.jpg)
Bezporuchovost = schopnost zachovat specifikovanou úroveň
výkonu Zralost – schopnost vyvarovat se poruchám
v důsledku závad systému nebo důsledky takovýchto selhání minimalizovat
Odolnost vůči vadám – schopnost zachovat si při selhání nebo při nedodržení požadovaného rozhraní určitou úroveň výkonu (služeb)
Schopnost zotavení – schopnost obnovit úroveň výkonu a zachovat data po odstranění poruchy
Shoda v bezporuchovosti
![Page 6: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/6.jpg)
Použitelnost = schopnost být srozumitelný, snadno
obsluhovatelný a atraktivní Srozumitelnost – vlastnost, která umožňuje
rozhodnout se, zda se systém hodí pro řešení konkrétních problémů a úloh uživatele a za jakých podmínek.
Naučitelnost –vlastnost charakterizující míru úsilí, potřebné vynaložit pro rutinní využívání SW
Provozovatelnost – vlastnost, usnadňující jeho obsluhu a řízení práce se systémem.
Atraktivnost – schopnost umožnit příjemnou obsluhu a učinit jeho používání přitažlivým.
Shoda v použitelnosti
![Page 7: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/7.jpg)
Účinnost = poskytovat potřebný výkon vzhledem
k množství použitých zdrojů, za stanovených podmínek
Časové chování – schopnost zajistit požadovanou propustnost úloh za dané časové období, dobu výpočtu nebo odezvu systému
Využití zdrojů –charakteristic. počet typů a množství zdrojů, potřebný k zabezp. práce systému
Shoda v účinnosti
![Page 8: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/8.jpg)
Udržovatelnost = schopnost být modifikován (opravy nedostatků,
vylepšování, adaptace na prostředí, změny) Analyzovatelnost – schopnost usnadnit nalezení
závady v případě poruch a schopnost určit, co má být změněno pro odstranění závady
Měnitelnost – schopnost systému usnadňující provedení modifikace
Stabilnost – schopnost zabránit nežádoucím efektům provedených modifikací
Testovatelnost – schopnost zabezpečit snadnou validaci po provedení modifikace
Shoda v udržovatelnosti
![Page 9: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/9.jpg)
Přenositelnost = schopnost být přenesen z jednoho prostředí do
jiného Přizpůsobitelnost – schopnost být vlastními
prostředky v průběhu používání přizpůsoben různým prostředím.
Instalovatelnost – vlastnost být instalován tak, aby vyhovoval práci v konkrétním prostředí
Slučitelnost – schopnost pracovat společně s jinými systémy v témže prostředí a využívat společné zdroje
Nahraditelnost – schopnost nahradit funkci jiných systémů, určených pro stejný účel a pracujících ve shodném prostředí
Shoda v přenositelnosti
![Page 10: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/10.jpg)
HODNOCENÍ SLOŽITOSTI IS Výpočetní složitost Není to úsilí potřebné k navržení algoritmu, ale pracnost a nároky na
jeho provedení. Časová – závislost doby na provedení úlohy na rozsahu úlohy (počet
kroků turingova stroje, aby úlohu vyřešil) Prostorová – závislost spotřebované paměti na rozsahu úlohy
(závislost použité oboustranné pásky turingova stroje na rozsahu úlohy)
Modul – samostatná jednotka, kterou je možné spojovat s dalšími
moduly (algoritmus, objekt) Programování v malém – nižší úroveň návrhu, realizace jednotlivých
modulů Programování ve velkém – vyšší úroveň, řešení vztahů mezi moduly Směr programování shora-dolů (programování ve velkém –>
programování v malém)
![Page 11: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/11.jpg)
HODNOCENÍ SLOŽITOSTI IS V RŮZNÝCH ETAPÁCH ŽIVOTNÍHO CYKLU Na začátku (specifikace) – použití funkčních
jednic V průběhu programování – graf řízení,
hierarchický rozklad atd., objektová složitost Po dokončení – metody založené na počtu
řádků kódu atd.
![Page 12: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/12.jpg)
SLOŽITOST V ETAPĚ SPECIFIKACE Hodnocení složitosti v etapě specifikace nebo
před ní je obtížné protože nevíme co budeme řešit nebo jak. Známe však obecné postupy (metoda funkčních jednic) pomocí kterých můžeme určit složitost.
![Page 13: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/13.jpg)
![Page 14: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/14.jpg)
FUNKČNÍ JEDNICE Složit. je odhadována na základě dvou faktorů – na funkcích a
podmínkách. Jako součin funkcí, které jsou od produktu vyžadovány a podmínek, které jsou pro vytvoření produktu.
Objem funkcí V, odhadneme tak, že zjistíme počty: IN, OUT – počet log. různých vstupů ; FILE – počet interních log.
souborů ; INTF – počet log. souborů sdílených ; INQ – počet log. různých výstupů s čekáním na vstup (dotazů)
Stanovíme váhy pro jednotlivé počty a výslednou složitost získáme
jako součet všech těchto jednic Zjistíme podmínky realizace, když vezmeme v úvahu faktory
oklasifikované př. dle ord. st. (0-5). Hodnocení sečteme a získáme PF a hodnocení podmínek dle faktorů získáme vzorcem: F = 0,65 + 0,01 . PF Výsledná složitost ve funkčních jednicích se pak počítá: FP = b . V . F, kde beta je konstanta závisející na jednotkách, v kterých byla složitost měřena.
![Page 15: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/15.jpg)
SLOŽITOST PROJEKTOVÁNÍ V MALÉM Složitost lze zjišťovat na základě: Fyzikálních údajů software (počet řádků
programu atd.,) - vstupní data pro složitost jsou až po implementaci
Grafu řízení algoritmu (programu) – příkazy dělají totéž, ale jsou různě složité, zneužití programátorem při hodnocení práce
Strukturálního rozkladu algoritmu
![Page 16: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/16.jpg)
HODNOCENÍ SLOŽITOSTI NA ZÁKLADĚ ANALÝZY GRAFU ŘÍZENÍ Atomické transformace grafu řízení (graf řízení) Drobné změny grafu řízení. Slouží pro posouzení, do
jaké míry metrika vycházející z grafu řízení dobře či špatně odráží naši představu o složitosti (nově doplněný uzel do grafu, doplnění hrany do grafu)
McCabeovy metriky v grafu řízení (graf řízení) Tato míra je zvaná též cyklomatická složitost grafu
řízení. Udává max. počet „lineárně nezávislých“ cest z uzlu Z do K. Každá cesta od Z do K prochází některými hranami grafu(některými i vícekrát). Lze ji tedy přiřadit vektor card(H), který bude udávat, kolikrát byla při této cestě užita daná hrana. Cesta prochází při testu složitosti každou hranou alespoň jednou.
MCC (G) = card (H) – card (V) + 2
![Page 17: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/17.jpg)
Harrisonova, Mengelevova metrika SCOPE (graf řízení)
Metrika každému uzlu přiřazuje č. NL(x) – hloubka vnoření uzlu.
NL(x) = PŘED(x)+1 , kde PŘED(x) je počet uzlů, které mohou ovlivnit provedení uzlu x. Celková složitost SCOPE (G) je pak součtem x NL (x).
![Page 18: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/18.jpg)
Piwowarsky (graf řízení) Bere v úvahu ne všechny, ale jen
rozhodovací uzly. Každému z nich se přidá Piw. doplňková složitost. Ta se rovná počtu kontextu jiných rozhodovacích vrcholů, v kterých uvažovaný vrchol leží. PIWO (G) = card (H) + NL (x) + 1
![Page 19: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/19.jpg)
HODNOCENÍ SLOŽITOSTI NA ZÁKLADĚ PŘEHLEDNÉHO HIERARCH. ROZKLADU výhody hierarch. rozklad se opírá o postup shora dolů není příliš snadné přizpůsobit uměle návrh,
aby při hodnocení bylo dosaženo výsledků dle přání řešitele
nevýhody metodu lze užít jen pro strukturovaný návrh
![Page 20: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/20.jpg)
Rozklad na přehledně mnoho dílčích položek (například 7). Rozklad lze provádět selekcí, sekvencí, iterací atd. Návrh se jeví jako orientovaný graf, který je orientovaný strom. Má vrchol – kořen (řešený program), listy (akce, příkazy programovacího jazyka) a další dílčí celky. U každého uzlu máme k dispoz. údaje na základě kterých můžeme stanovit příspěvek daného uzlu ke složitosti:
a) Hloubka vnoření (počet hran od kořene k uzlu) b) Typ uzlu (selekce, iterace, sekvence) c) exekutivní složitost zpracování daného příkazu d) Složitost předávaných dat, jejich objem a strukturu Součet složitostí a,b,c,d nám udává příspěvek tohoto vrcholu
k celkové složitosti. Sečtením hodnot pro vš. vrcholy stromu dostaneme celkovou složitost návrhu daného modulu
![Page 21: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/21.jpg)
SLOŽITOST PROJEKTOVÁNÍ VE VELKÉM Složitost spolupráce modulů je tím jednodušší, čím
se podaří dodržet následující zásady Soudržnost modulů – každý modul řeší pouze
vzájemně svázané úkoly, které spolu úzce souvisejí (jediná metrika v ordinální stupnici)
Funkční soudržnost Sekvenční soudržnost Komunikační soudržnost Procedurální soudržnost Logická soudržnost Náhodná soudržnost
![Page 22: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/22.jpg)
![Page 23: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/23.jpg)
Spřaženost modulů – dva různé moduly spolu spolupracují jednoduchým a snadno srozumitelným způsobem. Hodnocení pomocí fentonových stupnic:
Prvá – hodnotí typ komunikace (1-nespoluprac. až 7 –zasahují si do programových kódů)
Druhá – hodnotí objem komunikace, jako přirozené č. N – počet předávaných či sdílených objektů.
![Page 24: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/24.jpg)
SLOŽITOST V OBJEKTOVÉM PROSTŘEDÍ Chidamver a Kemerer navrhli metriku, která
řeší jen programování ve velkém. Intramodulární složitost je třeba stanovit klasickými metrikami pro programování v malém
![Page 25: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/25.jpg)
metriky: Váha metod pro třídu WMC – součet složitosti cj
všech metod třídy C. Hloubka stromu dědičnosti DIT – max délka cesty
od kořene stromu k uzlu, který odpovídá dané třídě
Počet synů NOC – počet přímých potomků uzlu, který ve stromu dědičnosti představuje třídu C
Spřažení mezi třídami CBO – udává počet tříd, na nichž závisí třída C tím, že volá jejich metody
Odezva třídy RFC – počet metod které třída C volá(vlastní i z jiné třídy)
Nedostatečná soudržnost tříd v metodách – LCOM
![Page 26: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/26.jpg)
SLOŽITOST V ETAPĚ IMPLEMENTACE A PROVOZU Po implementaci programového produktu či
IS. Délka programu – metriky typu LOC – počet
řádků zdroj. kódu Halsteadovy metriky – složitost na zákl. počtu
elementárních binárních rozhodnutí, ke kterým dojde při sestavování textu programu.
![Page 27: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/27.jpg)
ODHADY PRACNOSTI IS V RŮZNÝCH ETAPÁCH ŽIVOTNÍHO CYKLU Na začátku (specifikace) – použití funkčních
jednic V průběhu programování – graf řízení,
hierarchický rozklad atd., objektová složitost Po dokončení – metody založené na počtu
řádků kódu atd.
![Page 28: Složitost IS](https://reader035.vdocuments.mx/reader035/viewer/2022062501/5681662c550346895dd98f6f/html5/thumbnails/28.jpg)
Pro další úvahy bereme složitost jako počet řádků. Vliv větvení atd. je zohleděn vynásobením vhodnou konstantou.
Do návrhů na pracnost zahrnujeme i dokumentaci. Údržba, rozšiřování funkcí a školení uživatelů se musí zahrnout zvlášť, dle konkrétní situace.
Při posuzování pracovní náročnosti musíme brát v úvahu, že části programů nelze dělit na nekonečné množství samostatně vypracovávaných částí. (Příklad se zedníkama a zdí)
Pracnost v závislosti na objemu software roste superaditivně. tzn. Rychleji než lineárně, což vede ke krizi software a řešením je právě objektové programování.