Szoftver újrafelhasználás

Hasonló dokumentumok
Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

Komponens alapú fejlesztés

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

A szoftverfejlesztés eszközei

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

A szoftverfejlesztés eszközei

Szoftver architektúra, Architektúrális tervezés

S01-8 Komponens alapú szoftverfejlesztés 2

Szoftver-technológia II. Architektúrák dokumentálása UML-lel. Irodalom. Szoftver-technológia II.

Szoftverminőségbiztosítás

Kód átvizsgálás. Irodalom. (Code review) code review,smart Bear Inc., ! Jason Cohen: Best kept secrets of peer

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Hatékony iteratív fejlesztési módszertan a gyakorlatban a RUP fejlesztési módszertanra építve

Szoftverminőségbiztosítás

A SZOFTVERTECHNOLÓGIA ALAPJAI

Szoftverminőségbiztosítás

Elosztott rendszer architektúrák

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Web-fejlesztés NGM_IN002_1

Szoftver-mérés. Szoftver metrikák. Szoftver mérés

Szoftver-technológia I.

Szolgáltatás Orientált Architektúra a MAVIR-nál

Nagy bonyolultságú rendszerek fejlesztőeszközei

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás

Tartalom. Konfiguráció menedzsment bevezetési tapasztalatok. Bevezetés. Tipikus konfigurációs adatbázis kialakítási projekt. Adatbázis szerkezet

ALKALMAZÁS KERETRENDSZER

Szoftver-technológia II. Modulok és OOP. Irodalom

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Szoftver követelmények meghatározása

Formális módszerek GM_IN003_1 Bevezetés

Szoftvertechnológia ellenőrző kérdések 2005

Szoftverminőségbiztosítás

iphone és Android két jó barát...

A BIZTONSÁGINTEGRITÁS ÉS A BIZTONSÁGORIENTÁLT ALKALMAZÁSI FELTÉTELEK TELJESÍTÉSE A VASÚTI BIZTOSÍTÓBERENDEZÉSEK TERVEZÉSE ÉS LÉTREHOZÁSA SORÁN

stratégiai kutatási terve

Szoftver tervezés és design

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

IRÁNYTŰ A SZABÁLYTENGERBEN

S01-7 Komponens alapú szoftverfejlesztés 1

Objektum Vezérelt Szoftverek Analízise

Intelligens eszközök fejlesztése az ipari automatizálásban Evosoft Hungary kft., Evosoft Hungary Kft.

TOGAF elemei a gyakorlatban

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

Tartalom Platform-független modellezés Alkalmazás-modellezés A DECOS hardver platform Platform modellezés Hardver-szoftver integráció Implementáció 2

Programrendszerek tanúsítása szoftverminőség mérése

Crossplatform mobil fejlesztőkörnyezet kiválasztását támogató kutatás

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Bevezetés. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Szendrei Rudolf. Bevezetés. Szoftvertechnológia

Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert

1. Bevezetés a szoftvertechnológiába

Dr. Topár József (BME)

IBM felhő menedzsment

Programozási Technológia előadás bevezetés. Előadó: Lengyel Zsolt

Szoftver követelmények meghatározása

Objektumorientált paradigma és a programfejlesztés

Smart Strategic Planner

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

ARM Cortex magú mikrovezérlők. mbed

Novell és Oracle: a csúcsteljesítményű, költséghatékony adatközpont megoldás. Sárecz Lajos Értékesítési konzultáns

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Járműinformatika A járműinformatikai fejlesztés

Utolsó módosítás:

Fejlesztés, működtetés, felügyelet Hatékony infrastruktúra IBM szoftverekkel

OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

Bevezetés. Adatvédelmi célok

Együttműködésben a külvilággal, együttműködésben a piaccal

Üzleti folyamatok rugalmasabb IT támogatása. Nick Gábor András szeptember 10.

Szoftvertermékek csoportjai. A szoftver. Bemutatkozás és követelmények

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Előadók: Angyal Gergely (Raiffeisen), tesztelési csoportvezető Kováts Márton (KFKI), szenior rendszermérnök

Integrációs mellékhatások és gyógymódok a felhőben. Géczy Viktor Üzletfejlesztési igazgató

Új komponens a Talend Palettán: Starschema SAP Connector. Csillag Péter, Földi Tamás Starschema Kft.

Logisztikai. ellátási lánc teljes integrálására. Logisztikai szolgáltatók integrációja. B2B hálózatokhoz a FLUID-WIN projektben.

Üzleti architektúra menedzsment, a digitális integrált irányítási rendszer

Objektum orientált programozás Bevezetés

Bevezetés. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr. Szendrei Rudolf. Információk.

01. gyakorlat - Projektalapítás

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

Informatika Rendszerek Alapjai

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E

A cloud szolgáltatási modell a közigazgatásban

Szombathely Város Vezetõi Döntéstámogató Rendszere VDIR-STAT.

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor

Bevezetés a programozásba

Modell alapú tesztelés mobil környezetben

Bevezetés Mi a szoftver? Általános termékek: Mi a szoftvertervezés?

DW 9. előadás DW tervezése, DW-projekt

Autóipari beágyazott rendszerek Dr. Balogh, András

Információtartalom vázlata

Felhőszolgáltatások megvalósítása PureSystems eszközökön

Használhatósági problémák Neptun.NET

Informatikai alkalmazásfejlesztő Információrendszer-elemző és - tervező

A TESZTELÉS ALAPJAI MIÉRT SZÜKSÉGES A TESZTELÉS? MI A TESZTELÉS? ÁLTALÁNOS TESZTELÉSI ALAPELVEK

A felsoktatásban oktatók minségfejlesztéssel kapcsolatos attitdje

Verifikáció és validáció Általános bevezető

UML (Unified Modelling Language)

SOA modell: Ez az interfész definiálja az elérhető adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni.

Átírás:

Szoftver újrafelhasználás 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 Környezet 1 Rendszer 1 Újrafelhasználás Rendszer 2 Portolás Környezet 2 Rendszer 1 3 É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

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

Ú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 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 Konkrét megvalósított rendszerek Pattern language Tervezési minták 8

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

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

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 Rendszer infrastruktúra keret Alkalmazás Alkalmazás Fv. könyvtár Keretrendszer Op. rendszer Hardver 14

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

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

Meglév! rendszerek Szoftver termékvonalak Platform fejlesztés Visszacsatolás Domén 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 Új követelmény Specifikus rendszer tervezés Specifikus komponens létrehozás Specifikus komponens adaptálás Specifikus komponens integrálás Specifikus rendszer verifikálás Specifikus termékek fejlesztése 19 Szoftverek fejl!dése

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

Hibaszám alakulása Hibaszám változtatások valódi ideális Id! 25 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

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 18% 64% 18% Javító Adaptív Kib!vít! 28

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 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 Változtatási igény Hatás elemzés Tervezés Változtatás implementálás Kibocsátás Hiba javítás Adaptáció Kib!vítés 31 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

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 Ö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 Érthet!ség Dokumentáció Adatok szerkezete Teljesítmény Programozási nyelv Konfiguráció kezelés Tesztadatok Rendelkezésre álló szaktudás 35