Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaLídia Katonané Megváltozta több, mint 10 éve
1
Szoftver bonyolultsági mértékek alkalmazási területei Király Roland 2011
2
Tartalom Funkcionális nyelvek, Erlang A funkcionális nyelvek ipari felhasználása Szoftver bonyolultsági mértékek Automatikus hibadetektálás Automatikus hibajavítás bonyolultsági mértékek alapján
3
Az Erlang nyelv jellemzői Függvénykonstrukciók használata Üzenetküldések közös memória használat nélkül Hatékony elosztott rendszer, és hálózati modell Nagy hibatűrő képesség az elosztott programok területén Open Telecom Platform
4
Szoftverek bonyolultsága (Thomas J. McCabe) Hogyan lehet a szoftverrendszereket úgy modularizálni, hogy tesztelhetőek legyenek? A szoftverre költött pénz legnagyobb része a karbantartásra folyik el… A fejlesztésre szánt idő fele a teszteléssel és javítással telik… Egy 50 soros Fortran program 25 IF THEN ELSE konstrukcióval 33.5 millió eltérő végrehajtási ágat eredményez…
5
Ciklomatikus szám nep GV(G) Az n csomóponttal, e éllel, és p komponenssel rendelkező G gráf V(G) ciklomatikus száma V(G) = e – n+ 2p Az adott programhoz hozzárendelünk egy olyan irányított gráfot (1 belépési és 1 kilépési ponttal). A csomópontok a szekvenciális blokkok. Az ábra alapján: V (G) = e - n + 2p = 9 - 6 + 2 = 5 Az átlag programozó 3, és 7 közé eső „ciklomatikus számot” produkál…
6
Funkcionális nyelvek bonyolultsága Nem hagyományos program konstrukciókból állnak Többféle mértéket kell vizsgálni, és együttesen mérni segítségükkel a programot Mérni kell az üzenetküldések, az elosztott programok és a különleges nyelvi elemek bonyolultságát Jelezni kell az eltéréseket!
7
Forrásszöveg bonyolultsága Forráskód statikus analízisével létrehozzuk a program szintaxis fáját A szintaxis fát kiegészítjük a statikus analízissel felderíthető szemantikus információkkal, függvény hívási gráffal, és adatfolyam gráffal A kapott szemantikus gráfon mérjük a bonyolultsági mértékeket
9
RefactorErl Lehetőséget ad a forráskód transzformációjára Segítségével javítani lehet a forrásszövegek minőségét A forráskód változtatása során a program jelentése nem változik meg Hatékony eszköz „nem magasan képzett” programozók kezében is
10
A RefactorErl-ben mérhető bonyolultsági mértékek Minden mérték a program egy kijelölt tulajdonságát méri A mértékek alapján javítani lehet a forráskódot Minden mérték javításához rendelkezésre állnak transzformációs lépések!
11
Bonyolultsági mértékek alkalmazása A mértékek mérése segít a fejlesztés irányának a meghatározásában (és a célok betartásában) Lehetőséget tudunk biztosítani az automatikus és fél-automatikus program transzformációkra Ipari méretű szoftverrendszerek javítása is lehetségessé válik
12
Szoftver bonyolultságot lekérdező nyelv show number_of_fun for module (a) show line_of_code, number_of_messpass for module (a,b,c) show average_size form function (a,f,1) show average_size form function (a,f,1) a with max, min, avg
14
Automatikus hibadetektálás előre definiált értékekkel, és modularizálás
15
„Metrika” alapú, automatikus hibajavítás A RefactorErl rendszerben a mérhető bonyolultsági mértékek alapján alapértelmezett szkriptekell optimalizálható a forrásszöveg A lekérdező nyelv kiterjesztésével új optimalizáló szkripteket készíthetünk...
16
Köszönöm megtisztelő figyelmüket! Támogatók: EKF TTK ELTE IK KMOP-1.1.2-08/1-2008-0002 Ericsson Hungary
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.