9. rész: Korszerő Implementációs Technikák

Hasonló dokumentumok
8. rész: Implementáció JDeveloperben

7. rész: A specifikációtól az implementációig az EJB rétegben

11. rész: Tesztelés. Verziókezelés. Bakay Árpád NETvisor kft (30)

Közösség, projektek, IDE

Java I. A Java programozási nyelv

Üdvözli Önöket A PGY3 tantárgy! Bakay Árpád dr. NETvisor kft (30) arpad.bakay@netvisor.hu

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

4. rész: Java Enterprise Edition bevezetı. Bakay Árpád dr. NETvisor kft (30)

Tartalom. Az EJB 2.1 problémái Az EJB 3 megoldásai

Programozás I. 1. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

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

JAVA webes alkalmazások

Javadoc. Dokumentációs megjegyzés (2) Dokumentációs megjegyzés (1) Dokumentációs megjegyzés felépítése

Java I. A Java programozási nyelv

OOP és UML Áttekintés

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Pénzügyi algoritmusok

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

JNDI - alapok. Java Naming and Directory Interface

Adatbázis-kezelés ODBC driverrel

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

A Java EE 5 plattform

Stateless Session Bean

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

Komponens alapú fejlesztés

C#, OOP. Osztályok tervezése C#-ban

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1

5. rész: A Java EE és az Enterprise Bean réteg. Bakay Árpád dr. NETvisor kft (30)

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

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

Biztonság java web alkalmazásokban

Mobil Informatikai Rendszerek

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

Programozási nyelvek JAVA EA+GY 1. gyakolat

Mobil Informatikai Rendszerek

Segédanyag: Java alkalmazások gyakorlat

Széchenyi István Egyetem

Objektumorientált programozás C# nyelven III.

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Oracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

Data Integrátorok a gyakorlatban Oracle DI vs. Pentaho DI Fekszi Csaba Ügyvezető Vinnai Péter Adattárház fejlesztő február 20.

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

WebService tesztelés. SOAPui Pro, GreenPepper és Confluence használatával. Verhás & Verhás Szoftver Manufaktúra KNOW-HOW

Aspektus-orientált nyelvek XML reprezentációja. Kincses Róbert Debreceni Egyetem, Informatikai Intézet

Optimalizáció ESX-től View-ig. Pintér Kornél ügyfélszolgála3 mérnök

Visual Basic 2005 Express Edition A VISUAL STUDIO HASZNÁLATA NEM LEKTORÁLT VÁLTOZAT

Eseményvezérelt alkalmazások

Hello World Servlet. Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra.

Van-e ingyen-ebéd? Avagy mire elég a nyílt forráskodú Pentaho? Fekszi Csaba Ügyvezető október 4.

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

Modell alapú tesztelés mobil környezetben

ARM Cortex magú mikrovezérlők. mbed

Programozási technológia I.

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Teszt terv Új funkció implementációja meglévı alkalmazásba

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Java II. I A Java programozási nyelv alapelemei

A legalacsonyabb szintű tesztelés. A programot felépítő egységek tesztelése Unit: egy rendszer legkisebb önálló egységként tesztlehető része.

A Web réteg architektúrája A JSF web alkalmazás keretrendszer. Bakay Árpád dr. NETvisor kft (30)

Segédanyag: Java alkalmazások gyakorlat

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

ISA szimulátor objektum-orientált modell (C++)

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

TARTÓSZERKEZETEK TERVEZÉSE ÉS TŰZGÁTLÓ MEGOLDÁSOK BIM ALAPÚ PROJEKTEKNÉL

I. Bevezetés. 1. ábra A Java "logója"

Több app. Egy kódbázis

Web-fejlesztés NGM_IN002_1

Junior Java Képzés. Tematika

A szoftverfejlesztés eszközei

Tesztelés és hibajavítás Microsoft Visual Studio 2005 fejlesztőkörnyezetben

Java II. I A Java programozási nyelv alapelemei

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

Modellező eszközök, kódgenerálás

Kedvenc Ingyenes editorok avagy milyen a programozó jobbkeze? PSPAD editor DEVPHP IDE

A szoftverfejlesztés eszközei

Programozási nyelv Java

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

MIÉRT KELL TESZTELNI?

eseményvezérelt megoldások Vizuális programozás 5. előadás

MVC. Model View Controller

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

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

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 szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

10. Gyakorlat: Alkalmazások publikálása Remote Desktop Szervízen keresztül

SDI ALKALMAZÁS I. Workspace / ResourceView / Toolbar / IDR_MAINFRAME. Workspace / ResourceView / Menu / IDR_MAINFRAME

Web-fejlesztés NGM_IN002_1

Kommunikációs rendszerek teljesítőképesség-vizsgálata

C++ programok fordítása

UMN Mapserver és a Grass használata a Geológiában. Soós Dániel, Phd. Hallgató Miskolci Egyetem Geodéziai és Bányaméréstani Intézeti Tanszék

webalkalmazások fejlesztése elosztott alapon

Szoftvertechnológia alapjai Java előadások

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

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

(Teszt)automatizálás. Bevezető

Alap számológép alkalmazás

Átírás:

9. rész: Korszerő Implementációs Technikák Bakay Árpád dr. NETvisor kft (30) 385 1711 arpad.bakay@netvisor.hu A tananyag készült az ELTE-IKKK projekt támogatásával

Hol tartunk? Projekt tervezés, követés MS Project RequisitePro Követelmények Tervezés, modellezés Implementáció Tesztelés Oracle jdeveloper Feladat és hibakövetés Intenzíven használt tool Röviden bemutatott tool Konfigurációkezelés

Az munka utolsó fázisai Fogantatás Specifikáció Tervezés Implementáció Tesztelés és integráció

A mai anyag: Házi feladat 2. fázis ismertetése Fejlesztıi környezetek és debuggerek Kódolási konvenciók Kódolvasás, véleményezés

1. Házi feladat 2. fázis Tudor/Szeráj stb. EJB réteg elkészítése a JDeveloperrel A web-en található Ursula mintapélda alapján Adatmodellezés 3-4 Entity készítése 1-2 Stateless Session EJB (Facade) Egyszerő teszt kliens osztály

2. Fejlesztıi környezetek IDE: Integrated Development Environment Programers workbench Cél növelni a Hatékonyságot (line, funkció/nap) Pontosságot (frequent errors and bugs) Tiszta kódot (coding style and documentation) Csoportmunkát (source control) Dokumentáltságot

IDE Szokásos Részei Komponensek és források menedzselése Kód editor Navigációs és munkagyorsító technikák plug-inek és wizardok Build manager Debugger Verziókezelés integráció

2/a Komponensek és források menedzselése Workspace egy egész (akár nem is összetartozó) szoftver-rendszer összes komponense Project -> egyetlen építendı komponens jar, war, ear (vagy.exe,.dll,.lib stb.) forrás-fileok a projektekhez rendelve project settings: library-k, directory-k, compile & run options Projektek közti függıségek, fordítási sorrend Futtatási konfigurációk építés és futtatás többféle lehetséges változatban Debug / release opciók Profiler (C++: Különféle optimalizációk, futtató op.rsz. verziók, stb.)

2/b Kód editor Szintaxis ellenırzés és kiemelés Célirányos, környezet-érzékeny help Automatikus kiegészítés (autocomplete) Editor mőveletek, blokkok, keres-cserél stb. Becsuk/kinyit: metódusokra / import deklarációkra Formatter/beautifier: kód rendezés, tördelés Kód template-ek Nem szokásos forrásokhoz: speciális resource editor interfészek Grafikus UI (dialog box) editor HTML editor Modellezési funkciók

2/c Navigáció Osztály-nézet, structure view Keresztreferenciák Show declaration Find usages Keresés Sok fileban v. reguláris kifejezés szerint Hibákra, todo-kra, stb. Kiemelés Keres-cserél (-> refactoring) Context-sensitive help system Magára az IDE-re, és a fejlesztett nyelvre is! JDeveloper extra: Quick Javadoc - csak a paraméterek, exceptionok

2/d Félautomatikus munkafolyamatok, wizard -ok Projekt, osztály, metódus stb. készítése Tömeges változtatás: refactoring Rename/move Extract interface, move members up/down, use supertype Encapsulate fields (getter/setter method) Integráció más programokkal pl. Modellezı, feladatkezelı, verziókezelı stb. További toolok, Láttunk ilyent: pl. data modelling, server admin, etc. Saját wizardok készíthetık Plugin/addon API Pl. dokumentáció készítés, riport generálás

2/e Build manager Automatikus build Lehetıleg csak a változott részekre Cél a fordítás gyorsítása gyorsaság Pl. C++: Egymenetes fordítás Elıfordított headerek Inkrementális linkelés Runtime update Szakosodott build eszközök speciális fordítási feladatokra: Command-line build tools: Ant (Java), make (C/C++) Code preprocessor/precompiler XDoclet, AspectJ Generáló eszközök Lexikai + szintax analízis: Lex/Yacc (C/C++Ö), JAX/JAY (Java) XML eszközök (pl. XSLT) Hibák jelzése, megjelenítése Lehetıleg már editálás közben is!! Quick fix: egyszerőbb hibák automatikus javítása (a user felügyeletével!)

2/f Debugger Lépésenkénti végrehajtás Breakpointok / feltételes breakpointok Data watch/edit C/C++: Assembly view Spec. nézetek: stack, memória, regiszterek Hibák detektálása Memory leak, (szivárgás) Nem kezelt kivételek

debugger folyt A debugger használata alapvetı a C/C++ világban de Korszerő nyelveknél és fejlesztési módszereknél némileg csökkent debugging a jelentısége.ennek okai: Elosztott rendszerek debuggolása nehézkes Azért tudunk majd ilyet is! Automatikus memória és referencia-kezelés Testsuite-ok Logging frameworkok

2/g Futtatás közbeni analízis Teljesítmény analízis Profiler (JProf, JProfiler, JMP, JMemProf) Vagy: Ctrl-Break a JVM-nek Hálózati kommunikáció, rendszerhívások TCPdump, Truss / Strace (C/C++) Új eszköz: JDeveloper CodeCoach

JDeveloper CodeCoach Egy speciális Java Virtual Machine verziót (OJVM) használva, path elemzési és statisztikai alapon tanácsokat ad a futó Java kódról Collection-ok kihasználtsága Felesleges kód, pl.: new String("abc"); Pragma commentekkel megszelidíthetı: //@codecoach:disable NVCT,LALL

3. Kódolási és dokumentációs konvenciók/szabványok Miért kell? Logikai egységesség Karbantarthatóság Dokumentáció Használhatóság Gyakran vétett hibák elkerülése

3/a. Kódolási konvenciók Standard Java C. C. http://java.sun.com/docs/codeconv/ Vagy egy cég-specifikus változat Témakörök File nevezés, könyvtárstruktúra (metódusok logikai csoportosítása) File-on belüli szintaktikai elemek sorrendje, elkülönítése Sorhossz és tördelés Hosszú kifejezések Utasítások (if, for, switch, try-catch, stb.), zárójelezés

folyt Kommentezés Névadási konvenciók Változó divatok, pl.: Régebben a Microsoftnál: Hungarian notation : psztitlestringpointer: pointer to a zero-terminated string Camel notation : titlestringpointer Olvasható kód-logika Deklarációk Javasolt metódus méret-korlátok Problémás, zavaros megoldások kerülése switch fall-through ( átejtés ) return, break veszélyei

3/b. Kommentezés - fajtái Dokumentációs -- a modul használói számára Blokk komment Kiemelhetı a kódból Kész az API specifikáció!!! Pl. JavaDoc-kal dokumentáció generálható Szabad formátumú ismertetı és standard tag-ek A bıséges dokumentációs komment az igényes fejlesztés tükre Implementációs a továbbfejlesztık számára Blokk-komment, egysoros: beszúrt, vagy trailing v, sorvégi a Sok implementációs komment a kód szegénységét tükrözi

3/c. JavaDoc Kódba ágyazott megfelelı dokumentációs kommentekbıl API dokumentáció generálható Standard dokumentációs struktúra standard tag-ek alapján: @param [argument name] [argument description] - describes an argument of method or constructor. @return [description of return] - describes data returned by method (unnecessary for constructors and void methods). @throws [exception thrown] [exception description] - describes exception thrown by method. @author [author name] - identifies author(s) of a class or interface. @version [version] - version info of a class or interface. Generálás a javadoc pranccsal http://java.sun.com/j2se/javadoc/index.html

Köszönöm a figyelmet! arpad.bakay@netvisor.hu