Szoftverhálózatok Kovács Attila
Tartalom A szoftverhálózat fogalma, vizsgálatuk szükségessége A szoftverhálózat fogalma, vizsgálatuk szükségessége A szoftverhálózatok legfontosabb tulajdonságai A szoftverhálózatok legfontosabb tulajdonságai Hálózatok és architektúrák Hálózatok és architektúrák Gyakorlati alkalmazás: döntéstámogatás a fejlesztések során Gyakorlati alkalmazás: döntéstámogatás a fejlesztések során
Adatok és kapcsolatok Adatlavina: egyre több hálózat és egyre nagyobbak Adatlavina: egyre több hálózat és egyre nagyobbak Technológiai fejlődésTechnológiai fejlődés pl. Internet, Web pl. Internet, Web Gyűjtjük és tároljuk azGyűjtjük és tároljuk az adatokat, amelyek strukturálisan egyre komplexebbek Több százezer, millió Több százezer, milliócsomópont A vizualizáció nehézA vizualizáció nehéz
Hálózatok típusai Szociális hálózatok Szociális hálózatok Az élek szociális kapcsolatok (kollaboráció, telefonhívások, ek, honlap/blog, barátságok, stb.)Az élek szociális kapcsolatok (kollaboráció, telefonhívások, ek, honlap/blog, barátságok, stb.) Technológiai hálózatok Technológiai hálózatok Az élek technológiai entitások (internet, elektromos, repülési, telefon, szállítmányozási hálózatok, stb.)Az élek technológiai entitások (internet, elektromos, repülési, telefon, szállítmányozási hálózatok, stb.) Biológiai hálózatok Biológiai hálózatok Az élek biológiai entitások (protein-protein interakció, metabolikus útvonalak, táplálkozási kapcsolatok, neuronhálók, stb.)Az élek biológiai entitások (protein-protein interakció, metabolikus útvonalak, táplálkozási kapcsolatok, neuronhálók, stb.) Információs hálózatok Információs hálózatok Az élek információs kapcsolatok (idézettség, web, peer- to-peer halózatok, bizalmi hálózatok, szoftverhálózatok)Az élek információs kapcsolatok (idézettség, web, peer- to-peer halózatok, bizalmi hálózatok, szoftverhálózatok)
Szoftverhálózatok A csomópontok szoftverek funkcionális entitásai (alrendszer, modul/osztály, függvény) Feltérképezése: Software Reverse Engineering (hívási gráf, include-ok, elérési gráfok) A csomópontok szoftverek funkcionális entitásai (alrendszer, modul/osztály, függvény) Feltérképezése: Software Reverse Engineering (hívási gráf, include-ok, elérési gráfok)
Szoftver kódsorok száma 40% új fejl. 45% bővítés, 15% karbantartás (2020: 30%, 55%, 15%)
Szoftver és bonyolultság Higher technical complexity - Embedded, real-time, distributed, fault-tolerant - Custom, unprecedented, architecture reengineering - High performance Lower technical complexity - Mostly 4GL, or component-based - Application reengineering - Interactive performance Higher management complexity - Large scale - Contractual - Many stake holders - “Projects” Lower management complexity - Small scale - Informal - Single stakeholder - “Products” Defense MIS System Defense Weapon System Telecom Switch CASE Tool National Air Traffic Control System Enterprise IS (Family of IS Applications) Commercial Compiler Business Spreadsheet IS Application Distributed Objects (Order Entry) Small Scientific Simulation Large-Scale Organization/Entity Simulation An average software project people month duration external interfaces - Some unknowns & risks Embedded Automotive Software IS Application GUI/RDB (Order Entry)
Szoftverhálózatok tulajdonságai Ia. Méret Méret Példaként vizsgált termékek: Példaként vizsgált termékek: AXD 301 Telekom SwitchAXD 301 Telekom Switch BIRT Charting and Reporting ToolBIRT Charting and Reporting Tool Mindkettő 1.35M SLOC Modul Függvény Modul Függvény VE V E VE V EAXDBIRT
Szoftverhálózatok tulajdonságai Ib. Erős komponensek Erős komponensek WEB CORE: 27% IN: 21% OUT: 22% Tendrils+Tubes: 22% DISCONN: 8%
Szoftverhálózatok tulajdonságai Ic. AXD (konkurrens működésű, funkcionális alapú telekom. Switch, Erlang/OTP nyelven) AXD (konkurrens működésű, funkcionális alapú telekom. Switch, Erlang/OTP nyelven) BIRT (Java) BIRT (Java)
Szoftverhálózatok tulajdonságai Id. A nyakkendőfelbontás a szoftverek függvény szintű felbontása esetén a hierarchikus rendszertervezés miatt nem értelmes, lényegében nincs CORE (ellentétben a web-bel). A nyakkendőfelbontás a szoftverek függvény szintű felbontása esetén a hierarchikus rendszertervezés miatt nem értelmes, lényegében nincs CORE (ellentétben a web-bel).
Szoftverhálózatok tulajdonságai IIa. Skálafüggetlenség (befok) Skálafüggetlenség (befok) WEB: 2.1, AXDR12b-Fv: 1.17±0.05, BIRT-fv: 1.25±0.05
Szoftverhálózatok tulajdonságai IIb. Kifok Kifok WEB: power-low 2.7, AXDR12b-fv y=c 0.86 x :, BIRT-fv: y=c 0.93 x
Szoftverhálózatok tulajdonságai IIc. Pontok közötti távolságok Pontok közötti távolságokAXD Átlagos távolság: 9.23 Átmérő: 40 BIRT Átlagos távolság: 6.65 Átmérő: 35 Kis világ hálózatok
Szoftverhálózatok és szoftverarchitektúrák I. A szoftvergráfok jellemzik az architektúrát A szoftvergráfok jellemzik az architektúrát Adatáram alapú rendszerekAdatáram alapú rendszerek Kötegelt Kötegelt Csövek és szűrők Csövek és szűrők Hívás-visszatérésHívás-visszatérés Főprogram és szubrutinok Főprogram és szubrutinok OO rendszerek OO rendszerek Hierarchikus szintek Hierarchikus szintek Elosztott rendszerekElosztott rendszerek Kommunikáló szálak Kommunikáló szálak Esemény alapú rendszerek Esemény alapú rendszerek Virtuális gépVirtuális gép Interpreterek Interpreterek Szabály-alapú rendszerek Szabály-alapú rendszerek Adat-központú rendszerekAdat-központú rendszerek Adatbázisok Adatbázisok Hypertext rendszerek Hypertext rendszerek Központi tárház Központi tárház
Szoftverhálózatok és szoftverarchitektúrák I. A szoftvergráfok jellemzik az architektúrát A szoftvergráfok jellemzik az architektúrát Adatáram alapú rendszerekAdatáram alapú rendszerek Kötegelt Kötegelt Csövek és szűrők Csövek és szűrők Hívás-visszatérésHívás-visszatérés Főprogram és szubrutinok Főprogram és szubrutinok OO rendszerek OO rendszerek Hierarchikus szintek Hierarchikus szintek Elosztott rendszerekElosztott rendszerek Kommunikáló szálak Kommunikáló szálak Esemény alapú rendszerek Esemény alapú rendszerek Virtuális gépVirtuális gép Interpreterek Interpreterek Szabály-alapú rendszerek Szabály-alapú rendszerek Adat-központú rendszerekAdat-központú rendszerek Adatbázisok Adatbázisok Hypertext rendszerek Hypertext rendszerek Központi tárház Központi tárház 10 GB nyílt forráskódot szeretnénk megvizsgálni
Szoftverhálózatok és szoftverarchitektúrák II. Szoftverhálózatok előállítása Amit tudunk: Amit tudunk: JavaJava ErlangErlang C Amit részben tudunk: C++ Amit részben tudunk: C++ Ami könnyű: C# Ami könnyű: C# Az Erlang/OTP moduláris gráfja
Szoftverhálózatok és szoftverarchitektúrák III. Architektúra és fejlesztés 100% Project Schedule Waterfall Project Profile Modern Project Profile Development Progress (% Coded)
Szoftverhálózatok és szoftverarchitektúrák IV. Architektúra és kockázat Risk Time Risk resolution Controlled risk management Iterative Waterfall Risk
Szoftverhálózatok és szoftverarchitektúrák V. Mesterséges intelligencia Mesterséges intelligencia Üzleti Üzleti Elosztott Elosztott Multimédia Multimédia Fejlesztői Fejlesztői Eszközmeghajtók Eszközmeghajtók Szórakoztatás, sport Szórakoztatás, sport Pénzügy Pénzügy Játék Játék Ipari beágyazott Ipari beágyazott Jogi Jogi Orvosi Orvosi Hadiipari Hadiipari Operációs rendszer Operációs rendszer Platform Platform Tudományos Tudományos Szállítmányozás Szállítmányozás Segédprogramok Segédprogramok Kapcsolatot keresünk a gráfok és a szoftverrendszerekre jellemző architekturális jellemzők között.
Szoftverhálózatok és szoftverarchitektúrák VI. Vizsgálandó kérdések: Meddig érdemes egy szoftvert bővíteni? Hol az a pont, ahol olcsóbb újratervezni (mert az architektúra szétesett és a rendszer tesztelhetetlen)? Meddig érdemes egy szoftvert bővíteni? Hol az a pont, ahol olcsóbb újratervezni (mert az architektúra szétesett és a rendszer tesztelhetetlen)? Adjunk mérőszámokat az új kibocsátások (release) erőforrásigényéhez, a tesztelés tervezéséhez (ranking). Adjunk mérőszámokat az új kibocsátások (release) erőforrásigényéhez, a tesztelés tervezéséhez (ranking). Vizsgálni kell a hálózat elemeinek bonyolultságát (vezérlés+adatáramlás)
Szoftverhálózatok és szoftverarchitektúrák VII. További feladatok: Adott architektúrához becsüljük meg a karbantarthatóság költségét. Adott architektúrához becsüljük meg a karbantarthatóság költségét. Használati profile-ok segítségével rendeljünk valószínűségeket a szoftvergráfok éleihez Használati profile-ok segítségével rendeljünk valószínűségeket a szoftvergráfok éleihez hálózati dinamika vizsgálata
Köszönöm a figyelmet.