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

Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Embed Size (px)

Citation preview

Page 1: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Verzióköveto rendszerek használata aszoftverfejlesztésben

Dezso BalázsSzakszeminárium vezeto: Molnár Bálint

Budapesti Corvinus Egyetem

Budapest, 2009. június 24.

1 Bevezetés2 Verziókövetorendszerek alapjai3 Szoftverfolyamat támogatása4 Összefoglalás

Page 2: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Verzióköveto rendszerek

A verziókövetés a szoftverfejlesztés során fellépo fontosproblémára ad megoldást, mégpedig arra, hogy hogyantartsuk nyilván egy szoftverrendszert alkotó forráskódokkülönbözo változatait.

Fejlesztés során létrejövo változatokSzoftver kiadásokhoz tartozó változatokTestreszabás során létrejött változatokTesztelésre-kísérletezésre készített változatok

Ezen a funkción túl azonban a verzióköveto rendszerektovábbi lényeges szolgáltatásokat nyújtanak, ami alapjánegyre inkább elengedhetetlen eszközei a csoportosszoftverfejlesztéseknek.

Page 3: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Legfontosabb funkciók

A verzióköveto 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, ellenorzés segítése

Projekt publikálása

Adatmentés, archiválás

Page 4: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Adattárház – Munkamásolat

Adattárház

A verzióköveto rendszer adatbázisa

Állományok története

Változatok struktúrája

Kiegészíto információk

Fájlonként/rendszer színtu

Különbségek tárolása

Munkamásolat

Egy példánya a tárolt állományoknak

Szabadon módosítható

Egy egyszeru munkafolyamat

Page 5: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Adattárház – Munkamásolat

Adattárház

Munkamásolat

Egy példánya a tárolt állományoknak

Szabadon módosítható

Egy egyszeru munkafolyamat

Munkamásolat készítése egy adattárházból (check out)

Módosítások tetszoleges szerkeszto programmal

Változtatások publikálása (commit)

Page 6: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Munkafolyamat modellek

Zárolás alapú modell

A párhuzamos módosításokat nem engedjük meg, csak zároltfá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

Page 7: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

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ébetá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

Korszerusítés (update)

Változások publikálása (commit)

Fejlesztési ág alapú modell

Osztott fejlesztési modell

Page 8: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

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 aszerkesztéshez

Összefésülés a fo ággal

Osztott fejlesztési modell

Page 9: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

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 foá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 foágba (push)

Page 10: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Párhuzamos módosítások

Párhuzamos módosítások kezelése

Ha egy adott állomány különbözo területeit érintik aváltoztatások, akkor automatikusan összefésülhetoek.

Három bemenetes összefésülésSpeciális összefésülési eljárások

Konfliktus esetén manuális összefésülésKonfliktus: Ugyanazt az állományt ugyanazon a helyenpárhuzamosan két fejleszto is szeretné módosítani.Mindkét verzió bekerül az állományba és jelezzük akonfliktusos állapototCélszoftverek alkalmazása (KDiff3, ClearCase Diff, . . . )

Page 11: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Architektúrák

Lokális architektúra

Az adattárház és a munkamásolat ugyanazon a gépentalálható

Általában nem szükséges a konfliktus kezelés

Egy fejlesztonek 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 azadattárházak között lehet szinkronizálni

Zárolás, párhuzamos módosítás, fejlesztési ág alapú vagyosztott modell

Page 12: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Együttmuködés más eszközökkel

Fejleszto eszközök támogatása

Integrált fejleszto eszközök

Egyéb szerkeszto programok

Operációs rendszerbe integrálás

Parancssori alkalmazások

Ellenorzés és tesztelés

Dokumentáció generálás

Fordítási rendszerek

Hiba- és feladat kezelo rendszerek

Page 13: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Együttmuködés más eszközökkel

Fejleszto eszközök támogatása

Ellenorzés és tesztelés

Tesztelések automatikus futtatása

Statikus ellenorzés

Átvizsgálás

Dokumentáció generálás

Fordítási rendszerek

Hiba- és feladat kezelo rendszerek

Page 14: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Együttmuködés más eszközökkel

Fejleszto eszközök támogatása

Ellenorzés és tesztelés

Dokumentáció generálás

Dokumentáció automatikus generálása

Dokumentáció ellenorzése

Fordítási rendszerek

Hiba- és feladat kezelo rendszerek

Page 15: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Együttmuködés más eszközökkel

Fejleszto eszközök támogatása

Ellenorzés és tesztelés

Dokumentáció generálás

Fordítási rendszerek

Fordítás támogatása

Rendszer szintu gyorsítótár lefordított állományoknak

Kódgenerálás

Hiba- és feladat kezelo rendszerek

Page 16: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Együttmuködés más eszközökkel

Fejleszto eszközök támogatása

Ellenorzés és tesztelés

Dokumentáció generálás

Fordítási rendszerek

Hiba- és feladat kezelo rendszerek

Hibák, javaslatok nyilvántartása

Egyéb adatok tárolása (felelos, tervezett megoldás, . . . )

Kommunikáció támogatása

Érintett verziók

Page 17: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Szoftverfolyamat lépései

Fázis LeírásKövetelmény analízis A szoftverrel kapcsolatos követelmé-

nyek felderítése, rendszerezése, infor-mációk gyujtése.

Tervezés A követelményeknek megfelelo prog-ram felépítésének megtervezése.

Implementáció A program rendszer megvalósítása, aprogramkód elkészítése.

Ellenorzések A program rendszer verifikációja és va-lidációja.

Karbantartás A programmal kapcsolatos utólagosmunkák elvégzése, hibajavítások, újigények megvalósítása.

Page 18: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Életciklus modellek

Vízesés modell

Lineáris fejlesztési modell

A kezdeti tervezésre helyezi a hangsúlyt, nem épít avá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

Page 19: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Életciklus modellek

Vízesés modell

Inkrementális fejlesztési modell

Gyorsan elkészítheto kiindulási rendszer

Kezelheto méretu egységeket adunk a rendszerhez

Folyamatos integráció

Verziókövetés elengedhetetlen

Evolúciós fejlesztés

Spirál modell

Page 20: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

É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

Page 21: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Életciklus modellek

Evolúciós fejlesztés

Spirál modell

Iteratív fejlesztés

Nagy méretu 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

Page 22: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejleszté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öveto rendszerekben

Külso hivatkozások

Gyors programfejlesztés

Page 23: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejleszté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

Megrendelo bevonása

Eszközök használata

Verzióköveto rendszerek intenzív használata

Page 24: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Folyamatok intézményesítése

A szoftverfolyamat szabályozásával jobban elorejelezheto aprojekt sikeressége.

Projekt teljesítmény

Költség

Ido

Minoség (nehezen mérheto)

Nem elegendo a folyamatok eseti használata, a bevált folyamatokintézményesíteni érdemes.

Intézményesítés eszközei

Informális eszközök

Vállalati kultúra

Szabályzatok

Ellenorzés, mérés

Page 25: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

ISO/IEC 12207

ÉletciklusElsodleges

BeszerzésÉrtékesítés

FejlesztésÜzemeltetés

Karbantartás

TámogatóDokumentáció

Konfiguráció menedzsmentMinoség biztosítás

VerifikációValidáció

Együttes átvizsgálásAuditálás

Probléma feloldás

SzervezetiMenedzsment

InfrastruktúraFejlodés

Képzés

Testreszabás

Page 26: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

CMMI folyamat területei

Kategória FolyamatterületekFolyamatkezelés Szervezeti folyamatok meghatározása

Szervezeti folyamat kijelöléseSzervezeti képzésSzervezeti folyamat hatékonyságaSzervezeti innováció és bevezetés

Projektmenedzsment ProjekttervezésProjekt követése és irányításaBeszállítói megállapodások kezeléseIntegrált projekt menedzsmentKockázatkezelésIntegrált csapatmunkaKvantitatív projektmenedzsment

Fejlesztés KövetelménykezelésKövetelményfejlesztésTechnikai megoldásokVerifikációValidációTermék integrálás

Támogatás KonfigurációkezelésFolyamat és termék minoségkezelésMérés és elemzésDöntéselemzés és döntésIntegrációs szervezeti környezetOkelemzés és döntés

Page 27: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

CMMI fejlettségi szintek

Diszkrét FolytonosHiányos

Alap VégrehajtottMenedzselt MenedzseltDefiniált DefiniáltKvantitatívan menedzselt Kvantitatívan menedzseltOptimalizált Optimalizált

Page 28: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Projekt menedzsment

A projekt során a tervezést, a változás kezelést és a projektelorehaladásának mérését is támogatja a feladatkezelo ésverzióköveto rendszerek.

Támogatás

Feladatkezelo eszközökProjekt feladatok meghatározásaHierarchikus részekre bontásFüggoségek leírásaElorehaladás jelzéseFeladatok lezárása

Verzióköveto rendszerProjekt során készülo összes dokumentumot verziókövetésalatt tartjukEgyértelmuvé válik, hogy egy feladatot ki, mikor és milyenformában teljesítettKözvetlen integráció a feladatkezelo rendszerrel

Page 29: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Konfiguráció menedzsment

Konfiguráció menedzsment feladatok PRINCE alapján

Kiadási vonalak létrehozásaA kiadáshoz szükséges elemek azonosításaKonfiguráció menedzsment rendszer kialakításaKiadások létrehozása

Változások nyilvántartása és felügyeleteVáltozás igény nyilvántartásKonfiguráció menedzsment alatt lévo elemek felügyelete

Integritás létrehozásaKiadáshoz tartozó adatok nyilvántartásaKonfiguráció menedzsment auditálás

Page 30: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

Eredmények

Verzióköveto rendszerek hatása

Hatékonyabb és átláthatóbb szoftverfejlesztés

Modern verzióköveto rendszerekkel adaptívabban alakíthatjuka fejlesztési folyamatot (osztott rendszerek használata)

A fejlesztés során nagyobb hangsúlyt kap az inkrementálisfejlesztés

A verzióköveto rendszerek segítik kikényszeríteni a szoftverfolyamatokat

Érdemes minél szélesebb körben alkalmazni a verziókövetésta fejlesztés során létrejövo dokumentumokra

Érdemes automatizált eszközöket használni tesztelésre ésellenorzésre

Projekt menedzsment megbízhatóbb információkat kaphat afejlesztés állapotáról

Page 31: Verzióköveto rendszerek használata a˝ szoftverfejlesztésbendeba.web.elte.hu/dezso_balazs_kozgazdasz_2009jun.pdfVerzióköveto rendszerek˝ A verziókövetés a szoftverfejlesztés

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 SystemConfiguration Management, pages 98–107, London, UK,1997. Springer-Verlag.

SCAMPI update team, Carnegie Mellon University, SoftwareEngineering 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.