1 / 16

Szoftver bonyolultsági mértékek alkalmazási területei

Szoftver bonyolultsági mértékek alkalmazási területei. Király Roland 2011. 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.

loring
Download Presentation

Szoftver bonyolultsági mértékek alkalmazási területei

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 • 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

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

  9. 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!

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

  11. Szoftver bonyolultságot lekérdező nyelv show number_of_funformodule (a) show line_of_code, number_of_messpassformodule (a,b,c) show average_sizeformfunction (a,f,1) show average_sizeformfunction (a,f,1) a withmax, min, avg

  12. Automatikus hibadetektálás előre definiált értékekkel, és modularizálás

  13. „Metrika” alapú, automatikus hibajavítás A RefactorErl rendszerben a mérhető bonyolultsági mértékek alapján alapértelmezett szkriptekelloptimalizálható a forrásszöveg A lekérdező nyelv kiterjesztésével új optimalizáló szkripteket készíthetünk...

  14. Köszönöm megtisztelő figyelmüket! Támogatók: EKF TTK ELTE IK KMOP-1.1.2-08/1-2008-0002 Ericsson Hungary

More Related