složitost is

28
SLOŽITOST IS

Upload: brina

Post on 24-Feb-2016

36 views

Category:

Documents


0 download

DESCRIPTION

Složitost IS. pojmy. Stupnice: A bsolutní – 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í - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Složitost IS

SLOŽITOST IS

Page 2: Složitost IS

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

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

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

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

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

Úč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

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

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

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

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

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
Page 14: Složitost IS

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

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

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

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

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

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

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

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
Page 23: Složitost IS

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

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

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

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

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

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í.