ozcan acar cevik java ee 5 web uygulamalari ve mimarileri semineri ibm

60
Özcan Acar © 2009 Kurumsal Java.com .com

Upload: oezcan-acar

Post on 08-Jul-2015

2.018 views

Category:

Documents


2 download

DESCRIPTION

28 Şubat 2009 tarihinde İstanbul IBM Türk’de CETURK tarafından düzenlenen Çevik Süreç ve TDD seminerine konuşmacı olarak katıldım ve Çevik Java EE Web Uygulamaları ve Mimarileri isimli bir sunum yaptım. Sunum dosyasını aşağıdaki link üzerinden edinebilirsiniz. Detayli bilgi http://www.kurumsaljava.com/2009/03/03/cevik-java-ee-semineri/

TRANSCRIPT

Page 1: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Özcan Acar © 2009 Kurumsal Java.com

.com

Page 2: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Çevik Java EE 5

Web Uygulamaları ve Mimarileri

Özcan [email protected]

http://www.ozcanacar.comhttp://www.kurumsaljava.com

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 3: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Özcan Acar Hakkındapublic class OezcanAcar{

public static void main(String[] args) {

Acar oezcan = new Acar();oezcan.setBirthday("18.07.1974");oezcan.setBirthplace("Izmir");oezcan.setJob("Bilgisayar Mühendisi");

oezcan.setPassion("Java EE");}

}© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 4: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Özcan Acar Hakkında

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 5: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Tasarım şablonu nedir?

Interface / Abstract sınıf nedir?

Oluşturucu Tasarım Şablonları

Factory, Abstract Factory, Builder, Prototype,

Singleton

Yapısal Tasarım Şablonları

Adapter, Bridge, Facade, Decorator, Composite, Flyweight, Proxy

Davranışsal Tasarım Şablonları

Command, Memento, Strategy, Iterator, State, Observer, Visitor

Java Tasarım Şablonları ve Yazılım Mimarileri

Page 6: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Çevik süreç nedir?

Çevik manifesto

Extreme Programming nedir?

XP değerleri ve prensipleri

Çevik proje planlaması

Çevik süreçlerde iletişim

Çevik tasarım

Sürekli entegrasyon

Test güdümlü yazılım

Yazılım metrikleri

Extreme Programming

Page 7: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

.com

.com

Page 8: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Üniversite Seminerleri

.com

07 Mart 2009 Işık Üniversitesi İstanbul

21 Mart 2009 Firat Üniversitesi Elazığ

04 Nisan 2009 18 Mart Üni. Çanakkale

09 Mayıs 2009 Sütçü İmam Üni. K.maraş

Page 9: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Sunumun İçeriğiYazılımda çeviklik

Çevik süreç ve çevik metotlar

Extreme Programming

Çevik süreç ile tipik bir Java EE web aplikasyon implementasyonu

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 10: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Giriş

© 2009 Kurumsal Java.com

Yazılım da çevik(lik) nedir?

Çeviğim

Çeviksin

Çevik misin?

Özcan Acar © 2009 Kurumsal Java.com

Page 11: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Çevik Olmak

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Çeviklik göreceli ve soyut bir kavramdır.

Çeviklik uygulanabilecek bir yazılım metodu değildir.

Çevik manifesto haricinde çevikliğin yazılımda bir anlamı yoktur.

Çevik olabilmek icin çevik manifestoda yer alan değerlerin ve prensiplerin uygulanması gerekmektedir. Bu yüzden bir çevik sürece ihtiyacımız var.

Page 12: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Neden Çevik Olmalıyız?

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Müşteri gereksinimlerinin iyi anlaşılması gerekir!

Müşteri gereksinimleri devamlı değişikliğe uğrayabilir.

Müşteri yeni gereksinimleri olduğunu anlayabilir.

Müşteri gereksinimlerini doğru ifade edemeyebilir.

Page 13: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Çevik Süreç

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Çevik olmak çevik süreç ile anlam kazanır ve somutlaşmaya başlar

Çevik süreç, çevik yazılım filozofisini takip edebilmek için somut yöntemler ihtiva eder.

Çevikliği somutlaştıran, çevik sürecin ihtiva ettiği yazılım yöntemleridir.

Extreme Programming ve Scrum çevik süreç örnekleridir.

Page 14: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Çevik Süreç

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Çevik Filozofi

Scrum Extreme Prog. RUP?

Hibrid

Page 15: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Çevik Süreçten Beklentilerimiz

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Kısa aralıklarla müşteriye kullanabileceği sürümler sunabilmeliyiz. 2-4 haftalık iterasyon bazında çalışabilmemiz gerekiyor.

Projenin ilerleyen safhalarında bile müşterinin talep ettiği değişiklikleri kabullenebilmeli ve uygulayabilmeliyiz. Upfront design yapılmamalı!

Oluşan kodun kalitesi yüksek düzeyde olmalı. Unit testleri oluşturmalıyız.

Tasarım yapılan değişikliklere ayak uydurabilmeli. Çevik tasarım uygulanmalı.

Müşteri ve programcılar beraber çalışabilmeli.

Page 16: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Çevik Metotlar

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Test Güdümlü Yazılım (TDD – Test Driven Development)

Sürekli Entegrasyon (CI – Continuous Integration)

Eşli Programlama (PP – Pair Programming)

Upfront tasarım yerine Basit Tasarım (SD - Simple Desing)

Küçük sürümler (SR – Small Releases)

Yeniden yapılandırma (Refactoring)

Proje planlama (PG – Planning Game)

Page 17: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Extreme Programming

© 2009 Kurumsal Java.com

XP bir çevik süreçtir.

Yazılımda çevikliği somutlaştırır ve uygulanabilir hale getirir.

Çevik olmayı mümkün kılar

Çevik yazılım metotları ihtiva eder.

Özcan Acar © 2009 Kurumsal Java.com

Page 18: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Koynumuzda Beslediğimiz Yılan

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Security

Hibernate

JPA

EJB 3

JSF

Transaction

Page 19: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Süpermen misin, Hulk mı?

© 2009 Kurumsal Java.com

Müşteri gereksinimleri proje başlangıcında en ince detayına kadar dokümente edilir.

Şelale yazılım yönteminde testler en sona bırakılır. Code coverage < % 15

Tüm tasarım proje başında oluşturulur. Tasarım çevik olamaz!

Projenin ilerleyen saflarında değişiklik yapmak zorlaşır.

Özcan Acar © 2009 Kurumsal Java.com

Page 20: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Yazılım Sadece Yazılım Değildir!

© 2009 Kurumsal Java.com

Planlama

Yazılım

Geliştirme

Bakım

Özcan Acar © 2009 Kurumsal Java.com

Page 21: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

İleriyi Görebilmek

© 2009 Kurumsal Java.com

Ivar Jacobson: All systems change during their life cycles. This must be born in mind when developing systems are excepted to last longer than the first version.

Her program görev süresince değişikliğe uğrar. Bu ilk sürümden ötesi düşünülen programların yazılımında göz önünde bulundurulmalıdır.

Özcan Acar © 2009 Kurumsal Java.com

Page 22: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

İleriyi görebilmek ve hedefe ulaşabilmek için hafif bir bavulla yola çıkılması gerekiyor.

İleriyi Görebilmek

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

1. Az dokümentasyon

2. Basit tasarım3. Basıt araç4. Çok test5. Sürekli

entegrasyon6. Sık sürüm

Page 23: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Extreme Programming ile Tipik Bir Java EE Projesi

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Süreç nasıl işler?

Page 24: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Kullanıcı Hikayeleri (User Story)

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Müşteri kullanıcı hikayelerini (user story) oluşturur.

Kullanıcı Hikayesi

Page 25: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Sürüm Planlama Oyunu (Planning Game)

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Müşteri ve yazılımcı ekip sürüm planlama oyununda bir

araya gelerek, sürüm planlaması yaparlar.

Page 26: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Planlama Pokeri

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Müşteri ve yazılımcı ekip sürüm planlama oyununda bir

araya gelerek, sürüm planlaması yaparlar.

Page 27: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Load Factor

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

İdeal iş birimi = Günde 8 saat

Toplantı + Diğer = Günde 3 saat

-------------------------------------------------

Normal iş birimi = Günde 5 saat

Load Factor = KH bitiş zamanı / HK Tahmin Süresi

2 = 16 saat / 8 Saat

Load Factor 2 ile 5 arasında bir değerdir

Page 28: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Spike Solution

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 29: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Kullanici Hikayesi Öncelik Sırası

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Programcılar tarafından her kullanıcı hikayesi için tahminler yapıldıktan sonra, müşteri kullanıcı hikayelerini program açısından sahip oldukları değerlere göre sıraya koyar.

Değer Kullanıcı Hikayesi________________________________________________________

Yüksek A (3)

B (2)

C (1)

Orta D (3)

E (3)

F( 2)

Düşük G (2)

Page 30: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Iterasyon

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 31: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Çalışma Hızı (Velocity)

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 32: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Sürüm Planı

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

İterasyon Hikaye Puanı Kullanıcı Hikayesi_________________________________________________________

1 3 A 2 B

2 1 C 3 D1 H

3 3 E2 F

4 2 G1 F

Page 33: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Iterasyon Planı

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 34: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Iterasyon Planı

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 35: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Test Güdümlü YazılımTest Driven Development (TDD)

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Tasarım

Test

İmplementasyon

Test

Page 36: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Test Güdümlü YazılımTest Driven Development (TDD)

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

TDD

Bottom-Up Top-DownSecurity

HibernateJPA

EJB 3JSF

Transaction

Calculator

Page 37: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

App Server

Test Güdümlü Web Yazılımı

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Persistens Katmanı Mock

İşletme Katmanı Mock

Gösterim Katmanı

Onay/KabulTestleri

Unit TestleriEntegrasyon

Testleri

Unit Testleri

Page 38: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Onay / Kabul (Acceptance) Testleri

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Onay/Kabul testleri ile sistemin bütünü kullanıcı gözüyle test edilir. Bu tür testlerde sistem kara kutu olarak düşünülür.

Akseptans testleri müşteriye sistemin ne zaman çalışır durumda olduğunu ve programcıya ne implemente etmesi gerektiğini söyler. XP projelerinde akseptans testlerini müşteri ve sistem kullanıcıları tanımlar ve bu testler programcılar ya da testçiler tarafından implemente edilir.

XP’de geri dönüm önemlidir. Akseptans testleri müşteri ve proje ekibi için iyi bir geri dönüm mekanizmasıdır. Sistemin çalışır yada çalışmaz durumda olduğu akseptans testleri aracılığıyla öğrenebiliriz. Bunun yanı sıra akseptans testleri ile projede ilerleme ölçülebilir.

Page 39: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Onay / Kabul (Acceptance) Testleri

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 40: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Görev

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Kullanıcı Hikayesi

Page 41: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Onay / Kabul (Acceptance) Testleri

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Akseptans Test 2: Kullanıcı login sayfasına gider. Email adresini girer ve şifre alanını boş bırakarak login butonuna tıklar. Kullanıcıya “Lütfen şifrenizi giriniz!” hata mesajı gösterilir.

Akseptans Test 3: Kullanıcı login sayfasına gider. Email adres alanını boş bırakarak, şifresini girer ve login butonuna tıklar. Kullanıcıya “Lütfen email adresinizi giriniz!” hata mesajı gösterilir.

Akseptans Test 4: Kullanıcı login sayfasına gider. Email adresi ve şifreni girer ve login butonuna tıklar. Email adresi ve şifre doğrudur. Login işlemi gerçekleşir. Üye hoş geldiniz sayfasına yönlendirilir.

Onay/Kabul Test 1: Kullanıcı login sayfasına gider. Email adresi ve şifre alanlarını boş bırakarak login butonuna tıklar. Kullanıcıya “Lütfen email adresinizi ve şifrenizi giriniz!” hata mesajı gösterilir.

Kullanıcı Hikayesi

Page 42: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Onay / Kabul (Acceptance) Testleri

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 43: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Mimari

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 44: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Onay / Kabul (Acceptance) Testleri

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

WicketTesterpublic void testLoginCredientalNotSupplied(){ WicketTester tester = new WicketTester(); tester.startPage(LoginPage.class); tester.assertRenderedPage(LoginPage.class); tester.assertNoErrorMessage(); tester.assertComponent("loginform", LoginForm.class); FormTester form = tester.newFormTester("loginform"); assertNotNull("form null", form); form.setValue("email.border:email",""); form.setValue("password.border:password", ""); form.submit(); tester.assertErrorMessages(new String[] { USERNAME_REQUIRED, PASSWORD_REQUIRED }); tester.assertRenderedPage(LoginPage.class);}

Page 45: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Unit Testleri

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

JUnit ile metot bazında test yapılır.

Bağımlılıkları taklit etmek için mock nesneler kullanılır.

JUnit testleri aralarında bağımlılık ihtiva etmez.

Page 46: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Mock Nesneler

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

LoginManagerImplTestpublic void testEmailInvalid(){ try { result.setStatus(StatusCodes.EMAIL_INVALID.getValue()); String email ="test_email"; String password = "test_password"; mockDao.expects(once()).method("findUser") .will(returnValue(result)); LoginResult loginResult =manager.login(email, password); assertTrue(loginResult.getStatus() == StatusCodes.EMAIL_INVALID.getValue()); } catch (Exception e) { fail(); }}

Page 47: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Mock Nesneler

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

LoginManagerImplpublic LoginResult login(String email, String password) { LoginResult result = new LoginResult(); try { LoginDaoResult daoResult = dao.findUser(email,password); copyResult(daoResult, result); } catch (Exception e) { throw new LoginManagerException(e); } return result;}

Page 48: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Entegrasyon

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 49: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

DBUnit

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

dbunit-dataset.xml

<?xml version='1.0' encoding='UTF-8'?><dataset> <account id="1" email="[email protected]" password="admin“ activated="true“ admin="true„ firstname="Kadir" name="Inanir" /></dataset>

Page 50: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

DBUnit & Ant

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

build.xml<target name="fillDatabase" depends="createDatabase"> <dbunit datatypefactory="org.dbunit.ext.hsqldb. HsqldbDataTypeFactory" driver="org.hsqldb.jdbcDriver„ url="jdbc:hsqldb:hsql://localhost:9006/smart" userid="sa" password=""> <classpath> <pathelement location="${hjar}" /> </classpath> <operation type="INSERT" src="${properties.dir}/dbunit-dataset.xml" /> </dbunit></target>

Page 51: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

HSQLDB & Ant

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

build.xml<target name="hsqldb-start"> <java fork="true classname="${hclass}„ classpath="${hjar}„ args="${hfile} -dbname.0 ${halias} -port ${hport}„ spawn="true" newenvironment="true" failonerror="false"/></target>

Page 52: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Entegrasyon Testleri

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

public void testEmail(){ try { String email="[email protected]"; String password="admin"; LoginResult result = manager.login(email,password); assertEquals(email, result.getAccount().getEmail()); assertEquals(password, result.getAccount().getPassword()); } catch (Exception e) { fail(); }}

Page 53: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Spring

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

<bean id="LoginManager"class="smart.web.login.business.impl.LoginManagerImpl" scope="prototype"><property name="dao" ref="LoginDao"/></bean>

<bean id="LoginDao" class="smart.web.login.persistence.impl.LoginDaoImpl" scope="prototype"><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean>

Page 54: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Entegrasyon Testleri & Ant

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

<target name="run-integration" depends="compile, hbm2ddl"> <junit

fork="false" failureproperty="tests.failed" showoutput="true" printsummary="yes" haltonfailure="yes"><test name="$

{integration.testcase.class}" haltonfailure="yes" outfile="build/integration-

result"> <formatter type="xml" /></test>

</junit></target>

clean

compile

db-start

db-create

dbunit

run-integration-test

db-stop

generate-report

Page 55: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Çevik Araçlar

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Checkstyle

JDepend

Page 56: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Sürekli Entegrasyon (Continuous Integration)

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 57: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Agile Happy End

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 58: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Kaynak: KurumsalJava.com

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 59: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

KurumsalJavaAkademisi.com

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 60: Ozcan Acar Cevik Java EE 5 Web Uygulamalari Ve Mimarileri Semineri IBM

Özcan Acar © 2009 Kurumsal Java.com

Sonİlginiz için teşekkür ederim.