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

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

Programozási technológia 2.

Szoftvertechnológia 9. fejezet. Implementáció és verziókövetés. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Szoftver technológia. Verziókövető rendszerek. Cserép Máté ELTE Informatikai Kar 2019.

Szoftvertechnológia 1. előadás. A szoftverfejlesztési folyamat Giachetta Roberto groberto@inf.elte.hu

Szoftvertechnológia 12. előadás. Szoftverfejlesztési módszerek és modellek. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

A FEJLESZTÉS KIHÍVÁSAI

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

Source control systems. Horváth Ernő, Dr. Pozna Claudiu Radu

Programozási technológia 2.

Szoftvertechnológia 1. előadás. A szoftverfejlesztési folyamat. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

A fordítónak mindenhez lehet

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

In short, software is eating the world.

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

Szoftver technológia. Continuous integration & delivery. Cserép Máté ELTE Informatikai Kar 2019.

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

Code review és continous integration toolok BME-MIT

Bazaar ismertető. Timár András

A TANTÁRGY ADATLAPJA

Termék életciklus és a verziókezelés

Konfigurációmenedzsment

Mi is a git? Csapatban dolgozni Git pro eszközök. Git bevezető. Szabó Adrienn Adatbányászat és Webes Keresés Kutatócsoport

Dr. Mileff Péter SZOFTVERFEJLESZTÉS VERZIÓKÖVETÉS, VERZIÓKÖVETŐ RENDSZEREK. Miskolci Egyetem Általános Informatikai Tanszék

Tortoise SVN használata. Képes útmutató

Bevezetés a programozásba

Címkék és ágak kezelése i. Címkék és ágak kezelése

Közösség, projektek, IDE

Eseményvezérelt alkalmazások fejlesztése I 11. előadás. Szoftverek tesztelése

Szoftverminőségbiztosítás

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

Mobil Informatikai Rendszerek

Szakdolgozati, TDK témajavaslatok

A fejlesztéshez használható eszközök

Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás

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

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

OOP és UML Áttekintés

30 MB INFORMATIKAI PROJEKTELLENŐR

A DevOps-kultúra eszközei

Programozási technológia II 7. előadás. Verifikáció és validáció Giachetta Roberto

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Gyakorlat és házi feladat tájékoztató

MIÉRT KELL TESZTELNI?

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

Nyílt forráskódú online térképi szolgáltatások fejlesztése a FÖMI-ben

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

Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting

Git verziókövető rendszer alkalmazása a projektek nyomon követésére

Automatizált Java Build. ApacheAnt használatával

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

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

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

Webes alkalmazások fejlesztése 10. előadás. Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté

Git verziókezelő. Készítette: Hugyák Tamás. Pannon Egyetem Műszaki Informatikai Kar v1.0

Git verziókezelő. Készítette: Hugyák Tamás. Pannon Egyetem Műszaki Informatikai Kar v1.1

Feltörekvő technológiák: seam, drools, richfaces és társai a JBossban

A NetBeans IDE Ubuntu Linux operációs rendszeren

Toolok a programozás féléves feladatokhoz

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

Programozási technológia 2.

(Teszt)automatizálás. Bevezető

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

Szakdolgozat. Csernai Csaba

IBM felhő menedzsment

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

Git verziókövető rendszer alkalmazása

Nagy bonyolultságú rendszerek fejlesztőeszközei

SUSE Linux Enterprise Server 12 Hargitai Zsolt

Miért érdemes váltani, mikor ezeket más szoftverek is tudják?

A szoftverfejlesztés eszközei

ANDROID ALKALMAZÁS FEJLESZTÉS

Információtartalom vázlata

Java I. A Java programozási nyelv

Készítette: Enisz Krisztián, Lugossy Balázs, Speiser Ferenc, Ughy Gergely

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

Visual Studio 2012 és MSDN. Csomagok és licencelés

Modell alapú tesztelés: célok és lehetőségek

01. gyakorlat - Projektalapítás

Viczián István IP Systems JUM XIX szeptember 18.

Gyakorlat és házi feladat tájékoztató

JavaScript Web AppBuilder használata

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

Szoftverfejlesztés teszteléssel

Unit Teszt. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Unit Teszt / 22

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

Angolul: Extreme Programming, röviden: XP Agilis módszertan. Más módszertanok bevált technikáinak extrém módú (nagyon jó) használata

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

Szoftverminőségbiztosítás

Műszaki dokumentációkezelés az ELO-ban Ajkai Elektronikai Kft. esettanulmánya

Párhuzamos és Grid rendszerek

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

Zimbra levelező rendszer

Internet alkamazások Készítette: Methos L. Müller Készült: 2010

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

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

Gyakorlati vizsgatevékenység A

Új technológiák az Ubuntuban. Új fejlesztések Amik egy éven belül jelenhetnek meg az Ubuntuban

S01-7 Komponens alapú szoftverfejlesztés 1

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

Átírás:

Eötvös Loránd Tudományegyetem Informatikai Kar Térinformatikai és távérzékelési alkalmazások fejlesztése A szoftverfejlesztés technikai támogatása 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

A szoftver életciklus Minden szoftver rendelkezik életciklussal, amely meghatározza létét a feladat kitűzésétől a program használatának befejeztéig Az életciklus általában négy fő fázisra bontható: 1. specifikáció: a szoftver funkcionalitásának és megszorításainak megadása 2. tervezés és implementáció: a specifikációnak megfelelő szoftver előállítása 3. verifikáció és validáció: a szoftver ellenőrzése a specifikációnak történő megfelelésre 4. evolúció: a szoftver továbbfejlesztése a változó elvárásoknak megfelelően ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 2

A szoftver életciklus feladat specifikáció tervezés és implementáció validáció evolúció kész szoftver ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 3

Szoftvereszközök A fejlesztőcsapat munkáját megfelelő szoftvereszközökkel kell alátámasztani projektmenedzsment eszközzel (project tracking system), amely támogatja a dokumentálást és a feladatok követését fejlett tervezőeszközzel (case tool), ahol a fejlesztés folyamata és a felelősség is nyomon követhető integrált fejlesztőkörnyezettel (IDE) verziókövető rendszerrel (revision control system), amely lehetővé teszi a programkód változásainak követését folytonos integrációs (continuous integration) rendszerrel, amely biztosítja a hibák korai kiszűrését ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 4

Projektmenedzsment eszközök lehetőségei A projektmenedzsment eszköz lehetőséget ad az alábbiakra: fejlesztés ütemtervének, kockázatainak meghatározása fejlesztés egyszerű és folyamatos dokumentálásának lehetősége és generálása feladatok, tevékenységek rögzítése, követése a tesztelés során előfordult hibák rögzítése, a javítási folyamat követése integrált verziókezelés és forráskód böngészés webes vagy grafikus felület, amely biztosítja a könnyű használatot, és bárhonnan való elérést ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 5

Ütemterv és időzítés A szoftver lehetőséget ad, hogy a projekt ütemtervét elkészítsük, és azt folyamatosan szem előtt tarthassuk definiálhatunk mérföldköveket, amelyre adott feladatokat el kell végezni a fejlesztők külön-külön láthatják a saját feladataikat, menedzselhetik annak előrehaladását beoszthatjuk a fejlesztési lépések erőforrásait definiálhatunk függőségeket a programrészek között kezelhetjük az egyes fejlesztési lépések időbeli lefolyását, előrevetíthetjük a tervezettől való eltérések hatásait az erőforrásokra, illetve a további fejlesztési időkre ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 6

Feladat és hibakövetés A rendszerek lehetőséget adnak a tervezők számára feladatok kitűzésére, valamint a tesztelők számára a programban fellelhető hibák jelzésére a feladatokat úgynevezett cédulák (ticket, issue) segítségével írhatóak ki jelölhetnek új funkcionalitást (feature), hibát (bug), egyéb fejlesztési feladatot (task), vagy dokumentációs feladatot (documentation) megadható a leírása, felelőse, határideje kommentálhatóak, lezárhatóak, újra kinyithatóak a cédulák biztosítják a fejlesztési és tesztelési folyamat naplózását ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 7

A Trac projektmenedzser ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 8

A Redmine projektmenedzser ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 9

Projektmenedzsment eszközök Az eszközök felületi része alkalmas webes technológiával, míg az adattárolás adatbázis-motor segítségével valósítják meg a legtöbb eszköz szabad forráskódú, és a projektvezetés ugyanazon eszközzel van menedzselve Néhány népszerű projektmenedzser: Trac: Python alapú, MySQL/SQLite/PostgreSQL adatbázis háttérrel Redmine: Ruby on Rails alapú, MySQL/SQLite/PostgreSQL adatbázis háttérrel Microsoft Team Fundation Server: ASP.NET, Exchange és MSSQL alapú, elsősorban Visual Studio számára ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 10

Projektvezető szolgáltatások A projektvezető szolgáltatások (project hosting services) általában rendelkezésre bocsátanak több projektfejlesztő eszközt projektmenedzsment, kód tárolás, kód megtekintés, verziókövetés, dokumentáció (Wiki), levelezési lista, adatbázis hozzáférés általában nyílt forráskódú szoftverek esetén ingyenes a szolgáltatás pl.: SourceForge, GitHub, CodePlex egyes szolgáltatások bizonyos programozási nyelvek, vagy témakör köré csoportosulnak (pl. mozdev, RubyForge) ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 11

Az integrált fejlesztőkörnyezet Az implementációhoz megfelelő integrált fejlesztőkörnyezet (IDE) szükséges (pl. Eclipse, Visual Studio, Xcode, NetBeans) nem csak az implementáció folyamatát, de a teljes szoftver életciklust (tervezés, tesztelés) támogatja a fejlesztést kód-kiemeléssel (syntax highlight), kódkiegészítésekkel (code-snippet, intelligent code completion), kódstílus követéssel, illetve kód-újratervezési eszközökkel támogatja a tesztelést nyomkövetéssel (debugging), egységtesztek (unit test), illetve teljesítményteszteléssel támogatja kapcsolatot biztosít (vagy integrálja) a verziókövetéshez és a projektmenedzsment eszközhöz ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 12

Csapatban történő implementáció A szoftverek általában csapatban készülnek az implementáció egy egységes kódolási stílus mentén történik, egységes eszköztárral minden fejlesztő csak a saját kódján dolgozik verziókövetés esetén általában külön fejlesztési ágban tevékenykedik amennyiben más kódjában hibát talál, hibajelzést tesz az általa biztosított interfészeket csak egyeztetés után módosítja dokumentálja (kommentezi), illetve teszteli a saját kódját (elkészíti a megfelelő egységteszteket) ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 13

Verziókövető rendszerek Mivel az implementáció több lépésben, és sokszor párhuzamosan zajlik, szükséges, hogy az egyes programállapotok, jól követhetőek legyenek, ezt a feladatot a verziókövető rendszerek (revision control system) látják el pl. CVS, Apache Subversion (SVN), Mercurial egy közös tárolóban (repository) tartják kódokat ezt a fejlesztők lemásolják egy helyi munkakönyvtárba, és amelyben dolgoznak (working copy) a módosításokat visszatöltik a központi tárolóba (commit) a munkakönyvtárakat az első létrehozás (checkout) után folyamatosan frissíteni kell (update) ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 14

Verziókövető rendszerek tároló (repository) verzió: 132 verzió: 133 frissítés (update) feltöltés (commit) letöltött másolat módosítás módosított másolat lokális másolat (working copy) ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 15

Verziókövető rendszerek A rendszerek lehetővé teszik: az összes eddig változat (revision) eltárolását, illetve annak letöltési lehetőségét a fő fejlesztési vonal (baseline, master vagy trunk) és a legfrissebb változat (head) elérését, új változat feltöltését annak dokumentálásával az egyes változatok közötti különbségek nyilvántartását fájlonként és tartalmanként (akár karakterek szintjén) változtatások visszavonását, korábbi változatra visszatérést konfliktust okozó módosítások ellenőrzését, illetve megoldását (resolve) ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 16

Verziókövető rendszerek a folyamat elágazását, és ezáltal újabb fejlesztési folyamatok létrehozását, amelyek a fő vonal mellett futnak (branch), valamint az ágak összeillesztését (merge) mellék fejlesztés (branch) A:139 A:140 A:141 elágazás összeillesztés (merge) 138 139 140 142 fő fejlesztés (trunk) B:140 B:142 ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 17

Verziókövető rendszerek az összeillesztés rendszerint utólagos manuális korrekciót igényel az összeillesztésnek rendszerint automatikusan illeszti a módosított tartalmakat kódelemzést használva, ez lehet 2 pontos (two-way), amikor csak a két módosítást vizsgálja, vagy 3 pontos, amikor az eredeti fájlt is programrészek zárolását (lock), hogy a konfliktusok kizárhatóak legyenek adott verzió, mint pillanatkép (snapshot) rögzítése (tag), amelyhez a hozzáférés publikus feltöltések atomi műveletként történő kezelését (pl. megszakadó feltöltés esetén visszavonás) ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 18

Verziókezelés a projektben A legtöbb szoftverfejlesztési projekt számtalan fejlesztési ágat vezet be a munka során a fő fejlesztési ág a stabil, ellenőrzött és jóváhagyott funkcionalitást tartalmazza a hosszú távú fejlesztési ágak (long-running branch) egy adott fejlesztők, vagy egy adott programverzióval kapcsolatos funkcionalitást tartalmaznak a feladat specifikus ágak (topic branch) egy konkrét feladathoz tartozó funkcionalitást tárol, annak lefejlesztését követően már nem él a teszt ágak (test branch) az ágak közötti összeillesztés hatásait vizsgálják ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 19

Elosztott verziókövető rendszerek A központosított verziókelezők mellett elterjedtek az elosztott (distributed) rendszerek pl. Bazaar, Mercurial, Git nagyobb szabadságot adnak a tárolók kezelésében, a szinkronizálási lehetőségekben egy főtároló (origin) a kiindulási pont, amelyből tetszőleges másolatot készíthetünk (clone) a módosítások csak a lokális másolatot befolyásolják, külön kell feltöltenünk azokat valamely távoli tárolóra (push), vagy jelölhetjük őket feltöltésre (pull request) az egyes tárolók állapotait szinkronizálhatjuk (pull, fetch) ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 20

Elosztott verziókövető rendszerek távoli tároló (origin) másolás (clone) tároló másolás (clone) szinkronizálás (push) másolás (clone) helyi tároló módosítás (commit) szinkronizálás (pull) helyi tároló ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 21

Folyamatos integráció A folytonos integráció (continuous integration, CI) egy olyan gyakorlati módszer, amely lehetővé teszi a programkódok ellenőrzésének és tesztelésének felgyorsítását célja a lehetséges hibák, integrációs problémák azonnali, automatizált kiszűrése, visszajelzés a fejlesztőnek a programkódok verziókezelő rendszer segítségével egy központi tárhelyre kerülnek, naponta többször a tárhely tartalma minden módosítást követően automatikusan fordításra kerül (build automation), a fordítással pedig a lekódolt tesztek is végrehajtódnak az így ellenőrzött kódot további tesztelés követheti ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 22

Folyamatos integráció fejlesztő verziókövető automatikus fordítás automatikus tesztelés kihelyezés betölt értesít sikertelen fordítás fordít betölt értesít fordít értesít tesztel továbbít sikeres kihelyezés ELTE IK, Térinformatikai és távérzékelési alkalmazások fejlesztése 23