Složitost IS.

Slides:



Advertisements
Podobné prezentace
LOGISTICKÉ SYSTÉMY 14/15.
Advertisements

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STAVEBNÍ ÚSTAV GEODÉZIE
O DHAD NÁKLADŮ NA TVORBU INFORMAČNÍHO SYSTÉMU A MINIMÁLNÍ DOBY JEHO REALIZACE.
Stavový prostor. • Existují úlohy, pro které není k dispozici univerzální algoritmus řešení • různé hry • problém batohu, problém obchodního cestujícího.
Projektové řízení Modul č.1.
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Rekonstrukce povrchu objektů z řezů Obhajoba rigorózní práce 25. června 2003 Radek Sviták
D YNAMIKA VÝVOJE. Na počátku nemá obvykle smysl, aby se návrhu účastnilo mnoho řešitelů. Často stačí jediný. V etapě programování ve velkém (dekompozice.
ALGO – Algoritmizace 1. cvičení
Bezpečnost strojních zařízení Bezpečnost částí ovládacích systémů Část 1: Všeobecné zásady pro konstrukci ČSN EN ISO
Diagnostika vnitřních podmínek výuky
Vypracoval: Ladislav Navrátil, EI-4 Umělá inteligence Zaměření Expertní systémy.
ROZHODOVACÍ PROCESY PRO VÍCECESTNÉ TELEMATICKÉ APLIKACE Filip Ekl
Varianty Turingova stroje Výpočet funkcí pomocí TS
FORMALIZACE PROJEKTU DO SÍŤOVÉHO GRAFU
Definování prostředí pro provozování aplikace dosud jsme řešili projekt v obecné rovině aplikace bude ovšem provozována v konkrétním technickém a programovém.
ÚČEL AUTOMATIZACE (c) Tralvex Yeap. All Rights Reserved.
Činnost veřejné správy
SÍŤOVÁ ANALÝZA.
Seminář – Základy programování
Geo-informační systémy
Analýza informačního systému
D ATOVÉ MODELY Ing. Jiří Šilhán. D ATABÁZOVÉ SYSTÉMY Patří vedle textových editorů a tabulkových kalkulátorů k nejrozšířenějším představitelům programového.
Shluková analýza.
STANOVENÍ NEJISTOT PŘI VÝPOŠTU KONTAMINACE ZASAŽENÉHO ÚZEMÍ
Algoritmizace a základy programování
KEG Použití vzorů při vyhledávání na webu Václav Snášel.
Systémy pro podporu managementu 2
Luděk Novák dubna 2006 Proč a jak řídit informační rizika ve veřejné správě.
Informatika pro ekonomy II přednáška 10
Informačnípodpora řízení kvality ve firmě Informační podpora řízení kvality ve firmě CRM Ekonomický systém Personalistika Datová pumpa Akord Software Datový.
Modelování a simulace MAS_02
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
Od zadání úlohy k programu Výpočetní systémy I 8. přednáška.
Dokumentace informačního systému
Systémy pro podporu managementu 2 Inteligentní systémy pro podporu rozhodování 1 (DSS a znalostní systémy)
MANAŽERSKÉ ÚČETNICTVÍ
DATABÁZOVÉ SYSTÉMY. 2 DATABÁZOVÝ SYSTÉM SYSTÉM ŘÍZENÍ BÁZE DAT (SŘBD) PROGRAM KTERÝ ORGANIZUJE A UDRŽUJE NASHROMÁŽDĚNÉ INFORMACE DATABÁZOVÁ APLIKACE PROGRAM.
Jedno-indexový model a určení podílů cenných papírů v portfoliu
Databázové modelování
Experimentální fyzika I. 2
Databázové systémy Informatika pro ekonomy, př. 18.
Automatizovaná podpora výběru nástroje pro dobývání znalostí Jakub Štochl.
Metrologie   Přednáška č. 5 Nejistoty měření.
 Zkoumáním fyzikálních objektů (např. polí, těles) zjišťujeme že:  zkoumané objekty mají dané vlastnosti,  nacházejí se v určitých stavech,  na nich.
Analýza informačního systému. Podrobně zdokumentovaný cílový stav Paramentry spojené s provozem systému – Cena – Přínosy – Náklady a úspory – …
Kalkulační systém a jeho využití v řízení
1 Řízení implementace IS a SS* Šablony. 2 Vzorové postupy.
9 Hodnocení udržovatelnosti strojů a zařízení
11/2003Přednáška č. 41 Regulace výpočtu modelu Předmět: Modelování v řízení MR 11 (Počítačová podpora) Obor C, Modul M8 ZS, 2003, K126 EKO Předn./Cvič.:
Základní pojmy Standard sítě Důvod vzniku standardů
MANAŽERSKÉ ÚČETNICTVÍ
METODY STŘEDNĚDOBÉHO PROGNÓZOVÁNÍ SURO jaro 2010.
Databázové systémy Úvod, Základní pojmy. Úvod S rozvojem lidského poznání roste prudce množství informací. Jsou kladeny vysoké požadavky na ukládání,
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 2: Základní pojmy Bc. Radek Libovický.
Ověření modelů a modelování Kateřina Růžičková. Posouzení kvality modelu Ověření (verifikace) ● kvalitativní hodnocení správnosti modelu ● zda model přijatelně.
Návrh uživatelského rozhraní. Volba akcí uživatele – Systém menu Formát ukládání a modifikace dat – Vstupní formuláře Způsob formulování dotazů – SQL,
SOFTWAROVÁ PODPORA PRO VYTVÁŘENÍ FUZZY MODELŮ Knihovna fuzzy procedur Ing. Petr Želasko, VŠB-TU Ostrava.
Didaktické prostředky
Vnější a vnitřní kontrola
PROJEKT: Hodnocení průmyslových rizik
Kalkulační systém a jeho využití v řízení
Co se dá změřit v psychologii a pedagogice?
Tradiční metodiky vývoje softwaru
Informatika pro ekonomy přednáška 8
1. ročník oboru Mechanik opravář motorových vozidel
Tradiční metody vývoje softwaru
Kalkulační systém a jeho využití v řízení
ANALÝZA A KLASIFIKACE DAT
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

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ů

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

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

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

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

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

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

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

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)

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.

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.

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.

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

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

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

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

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

Rozklad na přehledně mnoho dílčích položek (například 7) 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

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

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

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

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

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.

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.

Pro další úvahy bereme složitost jako počet řádků. Vliv větvení atd 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í.