1 Fejlett Programozási Technikák 2. 15/5. Fejlett Programozási Technológiák 2. 2 Közhírré tétetik Március 10.-én 14.00-tól TIK I. Előadó MS RoadShow 

Slides:



Advertisements
Hasonló előadás
© Kozsik Tamás Különböző nyelvekhez igazítás Internationalization - i18n.
Advertisements

4. alkalom – Hálózat Kezelés
„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
Weblap szerkesztés HTML oldal felépítése Nyitó tag Záró tag Nyitó tag Záró tag oldalfej tözs.
Programozás III STRING-XML.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
Erőállóképesség mérése Találjanak teszteket az irodalomban
Programozás III KOLLEKCIÓK 2..
Mellár János 5. óra Március 12. v
2 Forrás: The Standish Group International, Extreme Chaos, The Standish Group International, Inc., 2000.
Adatbányászati technikák (VISZM185)
Junit testing.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
Bevezetés a Java programozásba
Fájlkezelés, IO Kivételkezelés Belső osztályok
Mérés és adatgyűjtés Kincses Zoltán, Mingesz Róbert, Vadai Gergely 10. Óra MA-DAQ – Műszer vezérlése November 12., 15. v
1 Hálózati Operációs Rendszerek gyakorlat Bevezető Előadó: Bilicki Vilmos
Programozás II. 3. Gyakorlat C++ alapok.
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
Fejlett Programozási Technológiák II. Világos Zsolt 1. gyakorlat.
Virtuális méréstechnika MA-DAQ műszer vezérlése 1 Mingesz Róbert V
Ember László XUBUNTU Linux (ami majdnem UBUNTU) Ötödik nekifutás 192 MB RAM és 3 GB HDD erőforrásokkal.
Programozás I. Horváth Ernő 1. Elérhetőségek Bauer Péter Horváth Ernő Tanszéki honlap
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Java programozási nyelv 3. rész – Osztályok I.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
SPRING FRAMEWORK bemutatása
Számítógépes grafika OpenGL 1. gyakorlat.
Készítette: Keszthelyi Zsolt
Szombathely Dinamikus WEB programozás: PHP és JSP.
Delphi programozás 8. ELŐADÁS ADO ActiveX Data Objects.
Darupályák tervezésének alapjai
Egyszerű webes alkalmazás fejlesztése
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
PHP III. Fájlok, űrlapok.
P ROGRAMOZÁS C# - BAN Kivételkezelés. P ÉLDA I. Nullával való osztás miatt kapjuk a hibaüzenetet.
V 1.0 ÓE-NIK, Programozás I. A Microsoft Visual Studio 2010 használata.
szakmérnök hallgatók számára
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
1 Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Segédlet vizuális programozáshoz Kovács László
1 Add az APK-t! Add az APK-t! Automatizált apptesztelés 2013/10/13.
Bevezetés a PRADO keretrendszerbe Kardos Gergely.
Gábor Dénes Főiskola Rendszertechnikai Intézet
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
3. előadás.  Apache szerver tudnivalók  Az index.php .htaccess – web-szerverünk beállításai  Konfigurációs állományok  Adatbázis kapcsolódás beállítása.
Programozási alapismeretek 11. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 11.2/ Tartalom  Rendezési.
Java programozási nyelv Metódusok
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
Java programozási nyelv Adatbekérés konzolról
Fontos információk.
Generics Krizsán Zoltán. Bemutató A.NET 2.0 verziótól. A.NET 2.0 verziótól. Típusparaméter Típusparaméter Más nyelvben ez a template (sablon). Más nyelvben.
Programozás III UNIT TEST. És tényleg: Honnan lehet tudni, hogy működik-e vagy sem?
Apache Ant 2. gyakorlat Alkalmazásfejlesztés /2 Gyakorlat Zalatnai Csongor.
WEBSTAR CSOPORT WC S ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE Marics Tamás június 20.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Java web programozás 5..
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 6. gyakorlat.
Informatikai gyakorlatok 11. évfolyam
Alkalmazásfejlesztés F#-ban Dunaújvárosi Főiskola Kiss Gyula mérnökinformatikus hallgató Nemzeti Tehetség Program Tehetségútlevél Program „NTP-TÚP ”
Verziókezelők története és típusai, ezek különbsége (SVN, ClearCase, Mercurial) Készítő: Rábai Gábor.
Java Code Coverage Library
Előadás másolata:

1 Fejlett Programozási Technikák 2. 15/5

Fejlett Programozási Technológiák 2. 2 Közhírré tétetik Március 10.-én tól TIK I. Előadó MS RoadShow  ASP.NET  XML Web Szolgáltatások  … Ingyenes részvétel Regisztrálni célszerű a:  px px

Fejlett Programozási Technológiák 2. 3 Az előző előadás tartalma: Újdonságok az 1.5-ös Java-ban  Generics  Metaadatok  Új ciklus  Enum kezelés  Statikus import Hibakezelés  Egyszerű kivételek  Kivétel elfogása  Saját kivételek gyártása  Bármely kivétel elfogása  Finally Többszálúság  Motiváció  Szálkezelés alapjai  Megosztott erőforrások kezelése  Szál állapotok  Együttműködés szálak között

Fejlett Programozási Technológiák 2. 4 Források

Fejlett Programozási Technológiák 2. 5 A mai előadás tartalma: CVS  Miért van rá szükségünk?  Használata  Címkézés  Ágak kezelése JUnit  Tesztelés  TestCase  TestSuit Log4J  Miért nem println()?  Log  Log4J Ant

Fejlett Programozási Technológiák 2. 6 CVS: Probléma Nagy kód Csoportmunka Verzió követés Open Source Folyamatos javítás diff, patch Probléma ki mit miért csinált Hogyan lehet egy régebbi javítást visszavonni Hogyan lehet egy régebbi verziót elővarázsolni?

Fejlett Programozási Technológiák 2. 7 Megoldás RCS  Fájl centrikus  Lock-modify-unlock  Nincs hálózat támogatás CVS  Könyvtár szintű  Hálózat támogatás  Intelligens összefűzés  Copy-Modify-Merge Microsoft VSS BitTorrent CelarCase …

Fejlett Programozási Technológiák 2. 8 Concurent Versions System Az Open Source fejlesztés alapja Elosztott, lazán koordinált fejlesztés Alapjai:  Először script gyűjtemény az RCS-hez diff (a különbség két szöveg fájl között) patch ( a diff által megállapított különbséget adja hozzá az adott fájlhoz)  A különbségeket tárolja  Könyvtár kezelés, több könyvtárat is összefoghatunk egy néven (projekt)  Naplózás  Alapvetően zárolásmentes  Minden felhasználó egyenrangú

Fejlett Programozási Technológiák 2. 9 CVS Működőképes kódot tölt fel mindenki Mindenki frissítheti a saját munkaváltozatát Amennyiben többen ugyanazt a részt módosították a CVS értesíti a résztvevőket a konfliktusról Fontosabb fogalmak:  Check out  Commit  Conflict  Log message  Repository  Revision  Update  Working copy

Fejlett Programozási Technológiák Hogyan használjuk A leggyakrabban használt ciklus:  checkout - munkapéldány  modify – Dolgozunk rajta  update – Frissítjük a munkapéldányunkat (itt lehet konfliktus)  commit – Elküldjük a módosításokat egy log üzenettel együtt (itt lehet konfliktus) Általában a CVS-ben lévő projektet működőképes állapotban szokták tartani, tehát a fejlesztő csak akkor töltheti fel a saját munkáját, ha az a működőképességet nem rontja

Fejlett Programozási Technológiák Parancsok cvs [globális kapcsolók] parancs [lokális kapcsolók]  cvs –Q update –p Meg kell adnunk a CVS tár elérési útvonalát  Helyi gépen: cvs –d /usr/local/cvs update  Távoli gépen: cvs -d szeged.hu:/usr/local/cvs login  HOME környezeti változó -.cvspass

Fejlett Programozási Technológiák Kapcsolódás CVS-hez pserver – titkosítatlan jelszó ext – külső programot használ (rsh, ssh,… – CVS_RSH = ssh), bármilyen program lehet amely képes a távoli gépen azonosításra és parancs futtatásra kserver – kerberos 4-es azonosítás gserver – GSSAPI (kerberos 5, …), Windows- nál ezt célszerű használni

Fejlett Programozási Technológiák Új projekt létrehozása cvs – d /usr/local/cvs/test init cvs import –m ”log msg” projname vendortag releasetag cvs checkout projname cvs add –m ”log msg” filename … cvs commit –m ”log msg”

Fejlett Programozási Technológiák Konfliktusok jelölése #include void main () { printf ("Hello, world!\n"); <<<<<<< hello.c printf ("this change will conflict\n"); ======= printf ("between hello and goodbye\n"); >>>>>>> 1.3 printf ("Goodbye, world!\n"); }

Fejlett Programozási Technológiák Módosítások visszavonása X, Y együtt fejlesztenek Y feltölti az 1.3-as verziót X erről nem tud és feltölti az 1.4-es verziót X szeretné megtartani a saját változtatásait és kiiktatni Y változtatásait cvs update –j 1.4 –j 1.3 cvs update cvs ci –m ”visszavont verzio”

Fejlett Programozási Technológiák Megjelölések (Tagging), Dátumok Minden fájlnak külön módosítás számlálója van Ezek külön-külön vannak kezelve, növelve attól függően melyik fájlt mikor módosították Projekteknél szeretünk közös verziót, dátumot használni Pl.: kérem a 3-as mérföldkövet, kérem a múlt hétvégi verziót Megoldás:  Lekérés dátum szerint: cvs –q update –D ” :59:59 GMT”  Tag hozzáfűzés cvs -q tag Release_1_1_0  Lekérés: cvs checkout –r Release_1_1_0 myproj

Fejlett Programozási Technológiák Ágak (Branches) Lehetőséget ad a párhuzamos fejlesztése:  Instabil kód  Egy mérföldkőhöz javítás utólag, nem akarjuk az egész fő vonalon azonnal végigvinni  Ha majd elég stabil a fő ág akkor össze lehet fésülni (merging)

Fejlett Programozási Technológiák Kommunikáció A CVS értesítheti a fejlesztőket a projekt alakulásáról  Az eddigi megoldás n darab szeparált homokozó  Ki, mikor, mely részen dolgozik?  Pl.: Szóljatok ha hozzányúltok a kódomhoz! Figyelők (watches)  cvs watch add x.c – a fejlesztő megmondja, hogy mely fájlok érdekelik  cvs edit – ha módosítani akarja akkor jeleznie kell (read only egyébként)  cvs unedit Értesítést kaphatnak -ben, …

Fejlett Programozási Technológiák Speciális karakterek Speciális karaktereket is használhatunk a kódban  $Author$  $Date$  $Revision$  … A CVS behelyettesíti az értékét

Fejlett Programozási Technológiák Tesztelés Java erősen típusos nyelv Futás közbeni típus, … ellenőrzés Funkcionalitás? Gyakran változó specifikáció  Hogyan lehetünk biztosak benne, hogy módosításaink nem visznek újabb hibákat a kódba? White box tesztek Automatikus tesztelés?

Fejlett Programozási Technológiák JUnit Kód átírás Előbb a tesztet írjuk meg (extrém programozás) Hogyan teszteljünk komponenseket? Main metódusok ?  Hogyan döntjük el nagy mennyiségű tesztnél, hogy sikeres/sikertelen volt?  A Main hozzáfér a private, protected tagokhoz Nehéz áttekinteni a kimenetet Az eredményeket össze kellene gyűjteni A láthatóság sérül xUnit keretrendszer  NUnit  HttpUnit  DBUnit  Cactus

Fejlett Programozási Technológiák JUnit Test interfész  run metódus TestSuite  Csoportosító  A tesztelésnél megadhatom, hogy melyik csomagot futatom

Fejlett Programozási Technológiák JUnit használata import junit.framework.TestCase; public class SimpleTest extends TestCase { public SimpleTest (String name) { super(name); } public void testSomething() { assertTrue(4 == (2 * 2)); } Futtatása parancssorból, grafikus felületről test szóval kezdődő metódusokat tudjuk futtatni Inicializálásra a setUp() metódust kell felülírni Takarításra a tearDown() metódust kell felülírni Tesztetk csoportosítása TestSuite()

Fejlett Programozási Technológiák Vizsgálatok assertEquals(expected, actual) assertEquals(String message, expected, actual) assertNull(Object object), assertNull(String message, Object object) assertNotNull(Object object), assertNotNull(String message, Object) assertSame(Object expected, Object actual), assertSame(String message, Object expected, Object actual) assertTrue(boolean condition), assertTrue(String message, boolean condition) fail(), fail(String message)

Fejlett Programozási Technológiák Test Case futtatás setUp() test kezdetű metódus tearDown() Újra ez minden test kezdetű metódusra

Fejlett Programozási Technológiák Test Suite public static Test suite() { TestSuite suite= new TestSuite(); suite.addTest( new MoneyTest("money equals") { protected void runTest() { testEquals(); } } ); suite.addTest( new MoneyTest("simple add") { protected void runTest() { testSimpleAdd(); } } ); return suite; } public static void main(String args[]) { junit.textui.TestRunner.run(suite()); }

Fejlett Programozási Technológiák Naplózás, Log, Log4J Hibakeresés, monitorozás Különböző kimenetek Különböző kategóriák Különböző formátumok println()? java.utils.log Log4J

Fejlett Programozási Technológiák Log Elemei:  LogRecord  Handler  Filter  Formatter

Fejlett Programozási Technológiák ANT make, gnumake, nmake, jam  OS specifikusak  „Szabad” szöveg alapúak ANT  XML alapú konfigurációs fájl  Java programok gyűjteménye melyek a megfelelő Task interfészt megvalósítják  Platform független

Fejlett Programozási Technológiák Példa simple example build file

Fejlett Programozási Technológiák FileSet Minták segítségével tudunk fájlokat megadni FileList – fájl lista PatternSet – minta lista

Fejlett Programozási Technológiák Példa

Fejlett Programozási Technológiák Érdekesebb parancsok Ant – másik ANT indtítása Copydir – egész könyvtár másolása Cvs – CVS kezelése Exec – egy rendszer program lefuttatása Get – az adott URL-ről letölti a fájlt Javadoc/Javadoc2 – legyártja a dokumentációt Tstamp - DSTAMP, TSTAMP, and TODAY

Fejlett Programozási Technológiák Bevált tehnikák Description – projecthelp használata jikes használata

Fejlett Programozási Technológiák ANT alap elemek Ant AntCall AntStructure Apply/ExecOn Available Basename BuildNumber BUnzip2 BZip2 Checksum Chmod Concat Condition Supported conditions Copy Copydir Copyfile Cvs CvsChangeLog Sequential SignJar Sleep Sql Style Subant Sync Tar Taskdef Tempfile Touch TStamp Typedef Unjar Untar Unwar Unzip Uptodate Waitfor War WhichResource XmlProperty Xslt Zip CvsVersion CVSPass CvsTagDiff Defaultexcludes Delete Deltree Dependset Dirname Ear Echo Exec Fail Filter FixCRLF GenKey Get GUnzip GZip Import Input Jar Java Javac Javadoc/Javadoc2 LoadFile LoadProperties Mail MacroDef Manifest Mkdir Move Parallel Patch PathConvert PreSetDef Property Record Rename Replace Rmic

Fejlett Programozási Technológiák Opcionális elemek NET Tasks ANTLR Attrib Cab Chgrp Chown Clearcase Tasks Continuus/Synergy Tasks Depend EJB Tasks Echoproperties FTP IContract Image Jarlib-available Jarlib-display Jarlib-manifest Jarlib-resolve JavaCC Javah JspC JDepend JJDoc JJTree Jlink JProbe Coverage JUnit JUnitReport Metamata Metrics Metamata Audit Mim MParse Native2Ascii NetRexxC Perforce Tasks PropertyFile Pvcs RenameExtensions ReplaceRegExp RExec Rpm ServerDeploy Setproxy Scp Script Scriptdef Sound SourceOffSite Splash Sshexec Starteam Tasks Stylebook Symlink Telnet Test Translate Visual Age for Java Tasks Microsoft Visual SourceSafe Tasks Weblogic JSP Compiler XmlValidate

Fejlett Programozási Technológiák A mai előadás tartalma: CVS  Miért van rá szükségünk?  Használata  Címkézés  Ágak kezelése JUnit  Tesztelés  TestCase  TestSuit Log4J  Miért nem println()?  Log  Log4J Ant

Fejlett Programozási Technológiák A következő előadás tartalma JFC és Swing  Múlt  Felépítés  Java Bean  Felső szintű konténerek  Középső szintű konténerek  Elemek  Eseménykezelés  Rajzolás

Fejlett Programozási Technológiák Közhírré tétetik Március 10.-én tól TIK I. Előadó MS RoadShow  ASP.NET  XML Web Szolgáltatások  … Ingyenes részvétel Regisztrálni célszerű a:  px px