Szoftver-technológia II.
Szoftver újrafelhasználás (Software reuse)
Szoftver-technológia II.
Irodalom
• Ian Sommerville: Software
Engineering, 7th e. chapter 18.
• Roger S. Pressman: Software
Engineering, 5th e. chapter 27.
2
Szoftver-technológia II.
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
3
Szoftver újrafelhasználás vs. portolás
Szoftver-technológia II.
Környezet 1 Rendszer 1
Újrafelhasználás
Rendszer 2
Portolás Környezet 2 Rendszer 1
4
Szoftver-technológia II.
Életciklus objektumok újrafelhasználása
• Újrafelhasználási szintek • Alkalmazás rendszer • testreszabható alkalmazások • Komponens újrafelhasználás • Osztály, függvény újrafelhasználás 5
Szoftver-technológia II.
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 6
Szoftver-technológia II.
Ú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
7
Szoftver-technológia II.
Ú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 8
Szoftver-technológia II.
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
9
Szoftver-technológia II.
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 10
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
Szoftver-technológia II.
Alk. leírás, modellek
Alkalmazás generátor
Generált alkalmazás
Tervezé si minták
11
Szoftver-technológia II.
Alkalmazás generátor (pl.)
Windev RAD
OlivaNova 12
Parszer generátor (pl.)
Szoftver-technológia II.
13
Kódgenerátor (pl.)
Szoftver-technológia II.
• JUDE (Java UML Development Environment)
14
Aspektus orientált fejlesztés
Szoftver-technológia II.
• Érdekeltségek szeparálása • Átfed! érdekeltségek problémája • Aspektusok létrehozása és beszövése a generált kódba
15
Szoftver-technológia II.
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
16
Szoftver-technológia II.
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 17
Szoftver-technológia II.
Rendszer infrastruktúra keret Alkalmazás
Alkalmazás
Fv. könyvtár Keretrendszer Op. rendszer Hardver
18
Szoftver-technológia II.
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ékvonalak 19
COTS specializálás
Szoftver-technológia II.
• 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
20
COTS integrálás
Szoftver-technológia II.
• 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 21
COTS integrálás middleware-rel
Szoftver-technológia II.
• Transzparens összeköttetés • •
különböz! architektúrák, protokollok között Üzleti folyamatok automatizálása Middleware kategóriák alkalmazás middleware információ cserél! middleware management és támogató middleware
• • •
22
COTS integrálás middleware-rel (folyt.)
Szoftver-technológia II.
• Middleware típusok • adatbázis middleware • alkalmazásszerver middleware • üzenet orientált middleware • tranzakciófeldolgozó middleware • web middleware 23
Felhasználói COTS integrálási (pl.)
Szoftver-technológia II.
• alkalmazás kiterjeszt! nyelvek • inter application communication • vbscript (COM), DDE, OLE • rendszer szint" szript nyelv • küls! szkript nyelv, alkalmazások vezérlésére • Apple OSA (AppleScript, Frontier), Automator • UNIX shell scriptek, pipe-ok 24
Szoftver termékvonalak
Szoftver-technológia II.
• 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 25
Szoftver-technológia II. Meglév! rendszerek
Domén
Szoftver termékvonalak
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
26