Verziókövető rendszerek használata a szoftverfejlesztésben



Hasonló dokumentumok
A CMMI alapú szoftverfejlesztési folyamat

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

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

A CMMI alapú szoftverfejlesztési si folyamat

30 MB INFORMATIKAI PROJEKTELLENŐR

V. Félév Információs rendszerek tervezése Komplex információs rendszerek tervezése dr. Illyés László - adjunktus

Mi a folyamat? Folyamatokkal kapcsolatos teendőink. Folyamatok azonosítása Folyamatok szabályozása Folyamatok folyamatos fejlesztése

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

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

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

Bevezetés a programozásba

Nagy bonyolultságú rendszerek fejlesztőeszközei

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

A szoftverfejlesztés eszközei

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

Szoftver technológia. Projektmenedzsment eszközök. Cserép Máté ELTE Informatikai Kar 2019.

01. gyakorlat - Projektalapítás

Rendszerszemlélet let az informáci. cióbiztonsági rendszer bevezetésekor. Dr. Horváth Zsolt INFOBIZ Kft.

IV.4. FELHŐ ALAPÚ BIZTONSÁGOS ADATTÁROLÁSI MÓDSZER ÉS TESZTKÖRNYEZET KIDOLGOZÁSA

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

Szoftverminőségbiztosítás

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

Térinformatikai és távérzékelési alkalmazások fejlesztése. A szoftverfejlesztés technikai támogatása

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

IT Szolgáltatás Menedzsment az oktatási szektorban - 90 nap alatt költséghatékonyan

A DevOps-kultúra eszközei

Konfigurációmenedzsment

Szoftver-technológia I.

(Teszt)automatizálás. Bevezető

Beszállítók integrálása és szolgáltatások optimalizálása ITIL szemüvegen keresztül

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

Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban

A TANTÁRGY ADATLAPJA

Software Engineering Babeş-Bolyai Tudományegyetem Kolozsvár

Informatikai projektellenőr szerepe/feladatai Informatika / Az informatika térhódítása Függőség az információtól / informatikától Információs

A CMMI MODELL RÖVID TÁJÉKOZTATÓ LEÍRÁS

NETinv. Új generációs informatikai és kommunikációs megoldások

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

Intervenciós röntgen berendezés teljesítményszabályozójának automatizált tesztelése

BIM RENDSZER KIALAKÍTÁSA A KORMÁNYABLAK PROJEKT LEBONYOLÍTÁSÁBAN

Név: Neptun kód: Pontszám:

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

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

MINDSOFT A MindSoft története

Fogalomtár Etikus hackelés tárgyban Azonosító: S2_Fogalomtar_v1 Silent Signal Kft. Web:

Szoftver újrafelhasználás

Bánsághi Anna 1 of 49

Információs rendszerek Információsrendszer-fejlesztés

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

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

Életciklus modellek a rendszer és szoftverrendszer-fejlesztésben. SDLC System Development Life Cycle Software Development Life Cycle

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

Alkalmazások architektúrája

Cégprofil publikus CÉGPROFIL 1

Prolan Zrt. fejlesztéseiben. Petri Dániel

Programfejlesztési Modellek

Szoftver karbantartási lépések ellenőrzése

IBM felhő menedzsment

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

Üzletmenet-folytonosság és katasztrófa helyzet kezelés (Honnan indultunk, miért változtunk, hova tartunk?)

AZ INTEGRÁLT NYOMONKÖVETŐ RENDSZER BEMUTATÁSA (TÁMOP B) Kern Zoltán Közoktatási szakértő

ESZKÖZTÁMOGATÁS A TESZTELÉSBEN

TOGAF elemei a gyakorlatban

KnowledgeTree dokumentumkezelő rendszer

4. A szoftvergyártás folyamata

evosoft Hungary Kft.

Ami a vízesésen túl van

Gara Péter, senior technikai tanácsadó. Identity Management rendszerek

IRÁNYTŰ A SZABÁLYTENGERBEN

S01-7 Komponens alapú szoftverfejlesztés 1

Szoftver min ség és menedzsment

Infor PM10 Üzleti intelligencia megoldás

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

Együttműködés, tudásmegosztás és feladatmenedzsment. avagy Microsoft eszközrendszer a vállalati folyamatok szolgálatában

(5. számú módosítás) MFB Zrt évi Közbeszerzési Terv. Uniós értékhatárt elérő értékű közbeszerzés

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

GDi Esri Magyarország Felhasználói Konferencia Timár Gábor: Konkurens adatfeldolgozás ArcGIS rendszerben

Út az ITIL-e00n át az ISO/IEC ig Fujitsu Siemens Computers Kft.

MIÉRT KELL TESZTELNI?

Iványi László ARM programozás. Szabó Béla 1. Óra Verziókövetés

Szoftverminőségbiztosítás

IV.4. FELHŐ ALAPÚ BIZTONSÁGOS ADATTÁROLÁSI MÓDSZER ÉS TESZTKÖRNYEZET KIDOLGOZÁSA

WebCenter. Online jóváhagyás és együttműködés. Gönczi Zsolt Október

Fejlesztési projektek menedzselése IBM Rational CLM termékekkel. Ker-Soft Kft. Kaszás Orsolya - üzleti tanácsadó

Szoftver min ség és menedzsment -5. Tartalom. Érettségi modellek 2002 /

Minőségi téradat-szolgáltatások. fejlesztése és. és üzemeltetése

Folyamatok rugalmas irányítása. FourCorm Kft.

Vezetői információs rendszerek

Intelligens partner rendszer virtuális kórházi osztály megvalósításához

Bevezetés a hálózatok világába Forgalomirányítási és kapcsolási alapok Hálózatok méretezése Connecting Networks

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

Üzleti folyamatmenedzsment: - káoszból rendet!

Szoftverminőségbiztosítás

2023 ban visszakeresné 2002 es leveleit? l Barracuda Message Archiver. Tóth Imre Kereskedelmi Igazgató Avisys Kft Barracuda Certified Diamond Partner

Szoftverfejlesztő képzés tematika oktatott modulok

Szoftverminőségbiztosítás

Hát én immár mit válasszak?

Félévi követelmények. Gyakorlatvezetők

Szoftver értékelés és karbantartás

Félévi követelmények Bemutatkozás és követelmények

Átírás:

Verziókövető rendszerek használata a szoftverfejlesztésben Dezső Balázs Szakszeminárium vezető: Molnár Bálint Budapesti Corvinus Egyetem Budapest, 2009. június 24. 1 Bevezetés 2 Verziókövetőrendszerek alapjai 3 Szoftverfolyamat támogatása 4 Összefoglalás

Verziókövető rendszerek A verziókövetés a szoftverfejlesztés során fellépő fontos problémára ad megoldást, mégpedig arra, hogy hogyan tartsuk nyilván egy szoftverrendszert alkotó forráskódok különböző változatait. Fejlesztés során létrejövő változatok Szoftver kiadásokhoz tartozó változatok Testreszabás során létrejött változatok Tesztelésre-kísérletezésre készített változatok Ezen a funkción túl azonban a verziókövető rendszerek további lényeges szolgáltatásokat nyújtanak, ami alapján egyre inkább elengedhetetlen eszközei a csoportos szoftverfejlesztéseknek.

Legfontosabb funkciók A verziókövető rendszerek legfontosabb funkciói Változatok áttekintése Változtatások áttekintése Ágak, címkék használata Csoportmunka segítése Jogosultságok kezelése Tervezés segítsége Tesztelés, ellenőrzés segítése Projekt publikálása Adatmentés, archiválás

Adattárház Munkamásolat Adattárház A verziókövető rendszer adatbázisa Állományok története Változatok struktúrája Kiegészítő információk Fájlonként/rendszer színtű Különbségek tárolása Munkamásolat Egy példánya a tárolt állományoknak Szabadon módosítható Egy egyszerű munkafolyamat

Adattárház Munkamásolat Adattárház Munkamásolat Egy példánya a tárolt állományoknak Szabadon módosítható Egy egyszerű munkafolyamat Munkamásolat készítése egy adattárházból (check out) Módosítások tetszőleges szerkesztő programmal Változtatások publikálása (commit)

Munkafolyamat modellek Zárolás alapú modell A párhuzamos módosításokat nem engedjük meg, csak zárolt fájlokat szabad módosítani. Adott fájl zárolása (check out) A fájl saját példányának a módosítása A változás publikálása és a zárolás feloldása (check in) Párhuzamos módosítás modellje Fejlesztési ág alapú modell Osztott fejlesztési modell

Munkafolyamat modellek Zárolás alapú modell Párhuzamos módosítás modellje Engedélyezzük a párhuzamos módosításokat, de cserébe támogatni kell az állományok közötti összefésülést. Munkamásolat készítése (check out) Saját verzió szerkesztése Korszerűsítés (update) Változások publikálása (commit) Fejlesztési ág alapú modell Osztott fejlesztési modell

Munkafolyamat modellek Zárolás alapú modell Párhuzamos módosítás modellje Fejlesztési ág alapú modell Minden fejlesztést külön fejlesztési ágon végezünk el. Saját ág létrehozása Saját ág szerkesztése Publikálás a saját ágba Ha nincs még készen a fejlesztés, akkor vissza a szerkesztéshez Összefésülés a fő ággal Osztott fejlesztési modell

Munkafolyamat modellek Zárolás alapú modell Párhuzamos módosítás modellje Fejlesztési ág alapú modell Osztott fejlesztési modell A fejlesztési és a főágat nem különböztetjük meg. Másik adattárházból adatok lekérése (pull) Összefésülés a másik ággal (merge) Saját ág szerkesztése Publikálás a saját ágba (commit) Ha nincs még készen a fejlesztés, akkor vissza a lekéréshez Feltöltés a főágba (push)

Párhuzamos módosítások Párhuzamos módosítások kezelése Ha egy adott állomány különböző területeit érintik a változtatások, akkor automatikusan összefésülhetőek. Három bemenetes összefésülés Speciális összefésülési eljárások Konfliktus esetén manuális összefésülés Konfliktus: Ugyanazt az állományt ugyanazon a helyen párhuzamosan két fejlesztő is szeretné módosítani. Mindkét verzió bekerül az állományba és jelezzük a konfliktusos állapotot Célszoftverek alkalmazása (KDiff3, ClearCase Diff,... )

Architektúrák Lokális architektúra Az adattárház és a munkamásolat ugyanazon a gépen található Általában nem szükséges a konfliktus kezelés Egy fejlesztőnek kényelmes Kliens-szerver architektúra Szerver adattárház, kliens munkamásolat Zárolás, párhuzamos módosítás vagy fejlesztési ág alapú modell Osztott architektúra Adattárház és munkamásolat ugyanazon a gépen, de az adattárházak között lehet szinkronizálni Zárolás, párhuzamos módosítás, fejlesztési ág alapú vagy osztott modell

Együttműködés más eszközökkel Fejlesztő eszközök támogatása Integrált fejlesztő eszközök Egyéb szerkesztő programok Operációs rendszerbe integrálás Parancssori alkalmazások Ellenőrzés és tesztelés Dokumentáció generálás Fordítási rendszerek Hiba- és feladat kezelő rendszerek

Együttműködés más eszközökkel Fejlesztő eszközök támogatása Ellenőrzés és tesztelés Tesztelések automatikus futtatása Statikus ellenőrzés Átvizsgálás Dokumentáció generálás Fordítási rendszerek Hiba- és feladat kezelő rendszerek

Együttműködés más eszközökkel Fejlesztő eszközök támogatása Ellenőrzés és tesztelés Dokumentáció generálás Dokumentáció automatikus generálása Dokumentáció ellenőrzése Fordítási rendszerek Hiba- és feladat kezelő rendszerek

Együttműködés más eszközökkel Fejlesztő eszközök támogatása Ellenőrzés és tesztelés Dokumentáció generálás Fordítási rendszerek Fordítás támogatása Rendszer szintű gyorsítótár lefordított állományoknak Kódgenerálás Hiba- és feladat kezelő rendszerek

Együttműködés más eszközökkel Fejlesztő eszközök támogatása Ellenőrzés és tesztelés Dokumentáció generálás Fordítási rendszerek Hiba- és feladat kezelő rendszerek Hibák, javaslatok nyilvántartása Egyéb adatok tárolása (felelős, tervezett megoldás,... ) Kommunikáció támogatása Érintett verziók

Szoftverfolyamat lépései Fázis Leírás Követelmény analízis A szoftverrel kapcsolatos követelmények felderítése, rendszerezése, információk gyűjtése. Tervezés A követelményeknek megfelelő program felépítésének megtervezése. Implementáció A program rendszer megvalósítása, a programkód elkészítése. Ellenőrzések A program rendszer verifikációja és validációja. Karbantartás A programmal kapcsolatos utólagos munkák elvégzése, hibajavítások, új igények megvalósítása.

Életciklus modellek Vízesés modell Lineáris fejlesztési modell A kezdeti tervezésre helyezi a hangsúlyt, nem épít a változásra Nem használja ki a verziókövetés funkcióit Inkrementális fejlesztési modell Evolúciós fejlesztés Spirál modell

Életciklus modellek Vízesés modell Inkrementális fejlesztési modell Gyorsan elkészíthető kiindulási rendszer Kezelhető méretű egységeket adunk a rendszerhez Folyamatos integráció Verziókövetés elengedhetetlen Evolúciós fejlesztés Spirál modell

Életciklus modellek Inkrementális fejlesztési modell Evolúciós fejlesztés Inkrementális fejlesztés Minimalizáljuk a tervezést Általános programszerkezetek Spirál modell Komponens alapú modell

Életciklus modellek Evolúciós fejlesztés Spirál modell Iteratív fejlesztés Nagy méretű rendszerek tervezése és létrehozása Fázisok alkalmazása Cél a kockázatok csökkentése Prototípus készítés Komponens alapú modell Gyors programfejlesztés

Életciklus modellek Evolúciós fejlesztés Spirál modell Komponens alapú modell Komponensek beszerzése és implementációja Komponensek integrációja Komponensek különálló verziókövető rendszerekben Külső hivatkozások Gyors programfejlesztés

Életciklus modellek Evolúciós fejlesztés Spirál modell Komponens alapú modell Gyors programfejlesztés Inkrementális fejlesztés Párhuzamosan végzett feladatok Megrendelő bevonása Eszközök használata Verziókövető rendszerek intenzív használata

Folyamatok intézményesítése A szoftverfolyamat szabályozásával jobban előrejelezhető a projekt sikeressége. Projekt teljesítmény Költség Idő Minőség (nehezen mérhető) Nem elegendő a folyamatok eseti használata, a bevált folyamatok intézményesíteni érdemes. Intézményesítés eszközei Informális eszközök Vállalati kultúra Szabályzatok Ellenőrzés, mérés

ISO/IEC 12207 Életciklus Elsődleges Támogató Beszerzés Értékesítés Fejlesztés Üzemeltetés Karbantartás Dokumentáció Konfiguráció menedzsment Minőség biztosítás Verifikáció Validáció Együttes átvizsgálás Auditálás Probléma feloldás Szervezeti Menedzsment Infrastruktúra Fejlődés Képzés Testreszabás

CMMI folyamat területei Kategória Folyamatkezelés Projektmenedzsment Fejlesztés Támogatás Folyamatterületek Szervezeti folyamatok meghatározása Szervezeti folyamat kijelölése Szervezeti képzés Szervezeti folyamat hatékonysága Szervezeti innováció és bevezetés Projekttervezés Projekt követése és irányítása Beszállítói megállapodások kezelése Integrált projekt menedzsment Kockázatkezelés Integrált csapatmunka Kvantitatív projektmenedzsment Követelménykezelés Követelményfejlesztés Technikai megoldások Verifikáció Validáció Termék integrálás Konfigurációkezelés Folyamat és termék minőségkezelés Mérés és elemzés Döntéselemzés és döntés Integrációs szervezeti környezet Okelemzés és döntés

CMMI fejlettségi szintek Diszkrét Alap Menedzselt Definiált Kvantitatívan menedzselt Optimalizált Folytonos Hiányos Végrehajtott Menedzselt Definiált Kvantitatívan menedzselt Optimalizált

Projekt menedzsment A projekt során a tervezést, a változás kezelést és a projekt előrehaladásának mérését is támogatja a feladatkezelő és verziókövető rendszerek. Támogatás Feladatkezelő eszközök Projekt feladatok meghatározása Hierarchikus részekre bontás Függőségek leírása Előrehaladás jelzése Feladatok lezárása Verziókövető rendszer Projekt során készülő összes dokumentumot verziókövetés alatt tartjuk Egyértelművé válik, hogy egy feladatot ki, mikor és milyen formában teljesített Közvetlen integráció a feladatkezelő rendszerrel

Konfiguráció menedzsment Konfiguráció menedzsment feladatok PRINCE alapján Kiadási vonalak létrehozása A kiadáshoz szükséges elemek azonosítása Konfiguráció menedzsment rendszer kialakítása Kiadások létrehozása Változások nyilvántartása és felügyelete Változás igény nyilvántartás Konfiguráció menedzsment alatt lévő elemek felügyelete Integritás létrehozása Kiadáshoz tartozó adatok nyilvántartása Konfiguráció menedzsment auditálás

Eredmények Verziókövető rendszerek hatása Hatékonyabb és átláthatóbb szoftverfejlesztés Modern verziókövető rendszerekkel adaptívabban alakíthatjuk a fejlesztési folyamatot (osztott rendszerek használata) A fejlesztés során nagyobb hangsúlyt kap az inkrementális fejlesztés A verziókövető rendszerek segítik kikényszeríteni a szoftver folyamatokat Érdemes minél szélesebb körben alkalmazni a verziókövetést a fejlesztés során létrejövő dokumentumokra Érdemes automatizált eszközöket használni tesztelésre és ellenőrzésre Projekt menedzsment megbízhatóbb információkat kaphat a fejlesztés állapotáról

Köszönöm a figyelmet Philippe Kruchten. The Rational Unified Process: An Introduction. Addison-Wesley, 2003. Bartosz Milewski. Distributed source control system. In ICSE 97: Proceedings of the SCM-7 Workshop on System Configuration Management, pages 98 107, London, UK, 1997. Springer-Verlag. SCAMPI update team, Carnegie Mellon University, Software Engineering Institute. Standard CMMI c Appraisal Method for Process Improvement ( SCAMPISM) A, Version 1.2: Method Definition Document, 2006. Ian Sommerville. Szoftverrendszerek fejlesztése. Panem Könyvkiadó Kft., Budapest, 2007.