UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
Programrendszerek tanúsítása – szoftverminőség mérése Dr. Gyimóthy Tibor Dr. Ferenc Rudolf
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
Szoftverminőség biztosítás Fő cél: az üzemelő IT rendszerekben csökkenteni a hibák számát Az éles működés alatt jelentkező hibák nagyon veszélyesek
2008. 05. 21.
■ Rontják a cég presztízsét ■ Nagyon költséges a javításuk ■ Egy ilyen hiba sokmillió forintos kárt okozhat ■ Az IT rendszerek kritikus mértékű lassulását is hibának tekintjük NESSI-HU: Programrendszerek tanúsítása - szoftverminőség mérése
2
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
Szoftverminőség biztosítás Szoftverminőség javítás ■ Folyamatos romlás megállítása ■ Kevesebb hiba lesz a rendszerekben
Tesztelési hatékonyság növelés ■ Üzembe helyezés előtt kell minél több hibát megtalálni
IT üzemeltetés hatékonyság növelés
2008. 05. 21.
■ Követhetőbb és optimálisabb üzemeltetési folyamatok NESSI-HU: Programrendszerek tanúsítása - szoftverminőség mérése
3
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
Szoftverminőség romlása Törvényszerű: A szoftver változtatások növelik a hibák számát
2008. 05. 21.
NESSI-HU: Programrendszerek tanúsítása - szoftverminőség mérése
4
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
Mi a szoftver minőség? ISO 9126 szerint: • Funkcionalitás • Megbízhatóság • Használhatóság
„Külső metrikák” = a (szoftvert tartalmazó) rendszer és használatának jellemzői ! Nehéz közvetlenül mérni őket, túl absztraktak !
Példa alábontásra:
• Hatékonyság
•
Elemezhetőség
• Karbantarthatóság
•
Módosíthatóság •
• Hordozhatóság •
Tesztelhetőség
2008.05.21.
2008. 05. 21.
Stabilitás
5
NESSI-HU: Programrendszerek tanúsítása - szoftverminőség mérése
5
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
Mi a szoftver minőség? (folyt.)
2008. 05. 21.
NESSI-HU: Programrendszerek tanúsítása - szoftverminőség mérése
6
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
Mi a szoftver minőség? (folyt.)
2008. 05. 21.
NESSI-HU: Programrendszerek tanúsítása - szoftverminőség mérése
7
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
Szoftverminőség javítás Columbus módszertan és eszközök Folyamatos mérés és auditálás ■ ■ ■ ■
Termékmetrikák Kódolási szabálysértések Kód duplikáció (copy & paste) Tervezési hiányosságok (bad smells)
Folyamatos monitorozás ■ Baseline-ok ■ Automatikus riasztás ■ Automatikusan generált riportok
Támogatott platformok
2008. 05. 21.
■ Java, C#, C/C++, SQL, Forrás SQL
NESSI-HU: Programrendszerek tanúsítása - szoftverminőség mérése
8
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
Tesztelési hatékonyság növelés Fő cél: a program változtatások és hatásaik minél teljesebb körű tesztelése
2008. 05. 21.
■ Tesztkeretek, tesztesetek kezelése ■ Tesztlefedettség mérése ■ Tesztesetek szelekciója, prioritizálása ■ Hatásanalízis ■ Szükség van folyamat leírásokra és szoftver architektúrára
NESSI-HU: Programrendszerek tanúsítása - szoftverminőség mérése
9
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
IT üzemeltetés hatékonyság növelés Rendszerfejlesztési Életciklus Módszertan (RÉM)
2008. 05. 21.
Forráskód analizálók
Folyamatok (EPC, BPEL) Monitorozás
Teszt menedzser
Üzemeltetés Performancia Architektúra rekonstrukció
■ Csak azt a folyamatot tudjuk irányítani, amelyről megfelelő mérési adatokkal (metrikák) rendelkezünk NESSI-HU: Programrendszerek tanúsítása - szoftverminőség mérése
10
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
SOA minőségbiztosítás Szolgáltatás orientált architektúrák (SOA) esetében új kihívásokkal is szembe kell néznie a minőségbiztosításnak
2008. 05. 21.
■ Hagyományos (monolit vagy kliens/szerver) rendszer átültetése SOA világba ■ Hibakeresés és költségbecslés SOA rendszerben ■ SOA rendszer tesztelése, tesztelési hatékonyság mérése ■ Mérés, auditálás és monitorozás NESSI-HU: Programrendszerek tanúsítása - szoftverminőség mérése
11
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
Régi rendszer átültetése SOA-ba A Gartner előrejelzése szerint 2008-ban ■ a SOA-alapú lesz a szoftverfejlesztés domináns hányada és ■ az új SOA-alapú rendszerek legalább 65%-a régi rendszerek átültetéséből fog előállni – adaptálás (wrapping) útján
Tipikus esetek (monolit, kliens/szerver) ■ Közigazgatásban használt régi rendszerek ■ Levéltári szoftverek
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
Régi rendszer átültetése (folyt.) Funkcionalitás azonosítása és kiemelése Web szolgáltatásba (WS) ■ Architektúra feltárás ■ Komponens beazonosítás ■ Programmegértés
Az új WS-t kívülről hívják
2008. 05. 21.
■ Minden előfeltétel adott? ■ Hatásanalízis ■ Párhuzamosan több példánya is futhat ■ GUI használat? NESSI-HU: Programrendszerek tanúsítása - szoftverminőség mérése
13
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
Hibakeresés és költségbecslés Egy hiba okának a felderítése nehezebb
2008. 05. 21.
■ Nincs klasszikus debugger SOA-ra ■ Elosztott rendszer, párhuzamos futtatás ■ Forráskód néha nem áll rendelkezésre ■ A hiba akár a WSDL dokumentum tartalmában és/vagy formátumában is lehet
NESSI-HU: Programrendszerek tanúsítása - szoftverminőség mérése
14
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
Hibakeresés (folyt.) SOA függőségi gráf felépítése szükséges ■ A SOA dinamikus természete miatt bizonyos esetekben nem lehetséges – Ilyenkor ez üzemeltetési kockázatot is jelent
■ WSDL és BPEL elemzése is szükséges
Hatásanalízis ■ Hibakeresés – mely WS-ektől függ a hiba megjelenési helye?
■ Költségbecslés – mely WS-ek függnek a módosítandó WS-től?
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
Tesztelés, tesztelési hatékonyság A tesztelés jár a szoftver változtatásakor a legnagyobb költséggel ■ Rossz minőségű szoftver tesztelése drágább
SOA: Teszteset generálás BPEL alapján Tesztlefedettség mérés Tesztesetek szelekciója ■ Változások és hatásaik (hatásanalízis)
Tesztesetek generálása Performancia teszt hangsúlyosabb
2008. 05. 21.
NESSI-HU: Programrendszerek tanúsítása - szoftverminőség mérése
16
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
Tesztelés (folyt.) Nehézségek
2008. 05. 21.
■ Osztott rendszer lévén nehéz követni a teszt menetét (futásnaplót készíteni) ■ Külső WS-ek esetében sokszor nem áll rendelkezésre a forráskód ■ A WS-ek közül futás közben akár választani is lehet – Nehéz megismételhető teszteket készíteni
NESSI-HU: Programrendszerek tanúsítása - szoftverminőség mérése
17
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
Mérés, auditálás és monitorozás Hagyományos forráskód analízis kiegészül WSDL és BPEL analízissel ■ Teljes SOA rendszer részletes szerkezeti és függőségi gráfja szükséges
Minőségi jellemzők (metrikák) mérése ■ Csatolási mérték (coupling) hangsúlyosabb
Szabálysértések auditálása ■ pl. kommunikál-e két WS a BPEL-ben leírt üzleti folyamattól függetlenül?
Metrikák és szabálysértések folyamatos monitorozása szükséges Csak azt a folyamatot tudjuk irányítani, amelyről megfelelő mérési adatokkal rendelkezünk
2008. 05. 21.
NESSI-HU: Programrendszerek tanúsítása - szoftverminőség mérése
18
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SZEGEDI TUDOMÁNYEGYETEM Szoftverfejlesztés Tanszék
Kapcsolat
2008. 05. 21.
www.sed.hu
www.frontendart.hu
NESSI-HU: Programrendszerek tanúsítása - szoftverminőség mérése
19