Szoftver újrafelhasználás
Szoftver-technológia I.
Szoftver-technológia I.
Szoftver újrafelhasználás
• Szoftver fejlesztésekor korábbi fejlesztésekkor létrehozott
• kód felhasználása • architektúra felhasználása • tudás felhasználása
• Nem azonos a portolással
2
Szoftver újrafelhasználás vs. portolás
Szoftver-technológia I.
Környezet 1 Rendszer 1
Újrafelhasználás
Rendszer 2
Portolás Környezet 2 Rendszer 1
3
Szoftver-technológia I.
Életciklus objektumok újrafelhasználása
• Újrafelhasználási szintek • Alkalmazás rendszer • testreszabható alkalmazások • Komponens újrafelhasználás • Osztály, függvény újrafelhsználás 4
Szoftver-technológia I.
Az újrafelhasználás el!nyei
• Nagyobb megbizhatóság • Csökkentett fejlesztési kockázat • Specialisták, domén szakért!k hatékonyabb kihasználása
• Szabványos megoldások • Gyorsabb fejlesztés 5
Szoftver-technológia I.
Újrafelhasználási problémák
• Karbantartási költségek n!hetnek • újrafelhasznált részek kevésbé hozzáférhet!k • Nem minden fejleszt! eszköz támogatja az újrafelhasználást • Nem mi fejlesztettük szindróma • Komponens könyvtárak kezelése költséges • Megfelel! újrafelhasználható komponensek megtalálása, megértése, adaptálása er!forrás igényes
6
Szoftver-technológia I.
Újrafelhasználási megközelítések
• Tervezési minták • Komponens alapú fejlesztés • Alkalmazás keretrendszerek • Örökölt rendszerek becsomagolása • Szolgáltatás orientált rendszerek • Szoftver termékvonalak, családok • COTS integrálás • Testreszabható vertikális alkalmazások • Programgenerátorok • Aspektus orientált programozás 7
Szoftver-technológia I.
Tervezési minták
• Probléma és a megoldás lényegének leírása
• tervezési szótár (pattern language) • azonosított minták • struktúrált • invariáns értékek • formális dokumentáció Tervezési alapelvek, keretrendszerek
Tervezési ajánlások
Pattern language
Tervezési minták
Konkrét megvalósított rendszerek
8
Szoftver-technológia I.
Generátor alapú újrafelhasználás
• Program generálás standardizált minták és algoritmusok alapján
• Domén absztrakciók rögzítése • modellek, szabályok • Generálási paraméterek 9
Szoftver-technológia I.
Generátor típusok
• Alkalmazás generátorok • üzleti alkalmazások, adatbázisok • Parszer generátorok • pl. yacc • CASE eszközök kódgenerátorai • UML -> Java Alk. leírás, modellek
Alkalmazás generátor
Generált alkalmazás
Tervezé si minták
10
Szoftver-technológia I.
Aspektus orientált fejlesztés
• Érdekeltségek szeparálása • Átfed! érdekeltségek problémája • Aspektusok létrehozása és beszövése a generált kódba
11
Szoftver-technológia I.
Alkalmazás keretrendszerek
• Absztrakt és konkrét osztályok és interfészek gy"jtményei
• Alrendszerek létrehozása
leszármaztatással és instanciálással
12
Szoftver-technológia I.
Keretrendszer típusok
• Rendszer infrastruktúra keret • rendszer szolgáltatások, felh. felület
• Middleware integrációs keret • komponens kommunikáció, információ csere
• Vállalati alkalmazás keret 13
Szoftver-technológia I.
Rendszer infrastruktúra keret Alkalmazás
Alkalmazás
Fv. könyvtár Keretrendszer Op. rendszer Hardver
14
Szoftver-technológia I.
Alkalmazás újrafelhasználás
• Teljes alkalmazás újrafelhasználása • Testreszabható alkalmazások (COTS specializálás)
• COTS (Commercial O#-the-Shelf) szoftverek integrációja
• Szoftver termék vonalak 15
Szoftver-technológia I.
COTS specializálás
• Komplett alkalmazás, spec. API-val • Specializálás • platform specializálás • környezeti specializálás • funkcionális specializálás • folyamat specializálás • Telepítés utáni konfigurálás, testreszabás
16
Szoftver-technológia I.
COTS integrálás
• Rendszer integrálás • adapterek, middleware • Integrációs problémák • nincs funkcionalitási és teljesítmény kontrol • nem irányítható a termék fejlesztése • támogatási nehézségek 17
Szoftver-technológia I.
Szoftver termékvonalak
• Alkalmazáscsaládok generikus funkcionalitással, specifikus felhasználásokhoz adaptálva, konfigurálva
• Adaptációs területek • komponensek konfigurálása • új komponensek hozzáadása • komponensek módosítása 18
Szoftver termékvonalak
Szoftver-technológia I.
Meglév! rendszerek
Domén
Visszacsatolás
Platform fejlesztés
Domén követelmény elemzés
Domén architektúra elemzés
Platform komponensek létrehozás
Platform komponensek verifikálás
Domén szakértelem
Referencia követelmények
Referencia architektúra
Platform komponensek
Platform er!források
Specifikus követelmény elemzés
Specifikus rendszer tervezés
Specifikus komponens létrehozás
Specifikus komponens integrálás
Specifikus rendszer verifikálás
Specifikus komponens adaptálás
Új követelmény Specifikus termékek fejlesztése
Szoftverek fejl!dése
Szoftver-technológia I.
19
Szoftver-technológia I.
Szoftverváltozások
• A szoftverek változtatása elkerülhetetlen
• Új követelmények megjelenése • Alkalmazási környezet változása • Hibajavítások • Számítási infrastruktúra cseréje 21
Szoftver-technológia I.
Lehman törvényei
• Folytonos változtatás igénye • Növekv! komplexitás • Nagy rendszerek változása • Szervezési stabilitás • Inkrementális változtathatóság • Növekv! méret • Csökken! min!ség • Visszacsatolás szükségessége 22
Szoftver-technológia I.
Szoftver karbantartás
• Használatbavett program módosítása
• A változtatás nem érinti a rendszer architektúráját
• Létez! komponensek módosítása, új komponensek hozzáadása
23
Szoftver-technológia I.
Karbantartástípusok
• Szoftverhibák javítása • korrekciók a követelményeknek megfelel!en
• Adaptációs karbantartás • megváltozott m"ködési
(infrastruktúrális) környezethez igazítás
• Funkcionalitás megváltoztatása, kiegészítése (b!vítés)
24
Szoftver-technológia I.
Hibaszám alakulása Hibaszám
valódi
változtatások
ideális Id! 25
Szoftver-technológia I.
Karbantartási költségek
• Magasabbak, mint a fejlesztési költségek
• A karbantartásokkal n!nek • Régi szoftverek magas támogatási költséggel járnak
26
Szoftver-technológia I.
Karbantartási költségek (folyt.)
• Meghatározó tényez!k • Fejleszt! csapat stabilitása • Szerz!déses kötöttségek • Karbantartók szakértelme • A program kora, szerkezete 27
Karbantartási költségek megoszlása
Szoftver-technológia I.
18%
64%
18%
Javító Adaptív Kib!vít!
28
Szoftver-technológia I.
Karbantartási becslések
• Karbantarthatóság • nehezen, drágán karbantartható részek meghatározása
• Karbantartási költségek becslése • id!beli eloszlás • Változtatási igények becslése 29
Szoftver-technológia I.
Változtatási igények
• Rendszer és környezetének kapcsolata • Meghatározó tényez!k • a rendszer interfészeinek száma és komplexitása • eredend!en változékony követelmények száma • a rendszert használó üzleti folyamatok száma
30
A változtatási folyamat
Szoftver-technológia I.
Változtatási igény
Hatás elemzés
Hiba javítás
Tervezés
Adaptáció
Változtatás implementálás
Kibocsátás
Kib!vítés
31
Szoftver-technológia I.
Rendszer újratervezés
• A rendszer egy részének újrafejlesztése
• Funkcionalitás nem változik • A karbantartás megkönnyítésére • El!nyök (a teljes új rendszer bevezetéséhez képest)
• kockázat csökkentése • költségek csökkentése 32
Szoftver-technológia I.
Az újratervezési folyamat Eredeti program
Eredeti adatok Visszafejtés
Forráskód transzláció
Dokumentáció
Újramodularizálás
Adat újratervezés
Struktúra elemzés
Modularizált program
Újratervezett adatok
Program struktúra
33
Szoftver-technológia I.
Örökölt (!s) rendszerek
• Örökölt rendszerek evolúciója • A rendszer eltávolítása az üzleti folyamatból
• A rendszer karbantartása • A rendszer újratevezése • A rendszer lecserélése
• A megoldás a rendszer min!ségét!l és üzleti értékét!l függ
34
Alkalmazás értékelési szempontok
Szoftver-technológia I.
• Érthet!ség • Dokumentáció • Adatok szerkezete • Teljesítmény • Programozási nyelv • Konfiguráció kezelés • Tesztadatok • Rendelkezésre álló szaktudás 35