Özcan Acar'dan Extreme Programming

Extreme Programming KitabıBilgilerini Kurumsal Java sitesi üzerinden sonuna kadar paylaşan değerli Java Üstadı Özcan Acar'ın Extreme Programming adlı kitabını tüm yazılım geliştiricilere şiddetle öneriyorum.

Kitabın ana konusu çevik süreç olan Extreme Programming’in uygulanış tarzını tanıtmaktır. Kitabın ilk bölümlerinde Extreme Programming hakkında teorik bilgiler yer almaktadır. Extreme Programming yöntemlerini uygulayabilmek için bu temel teorik bilgilerin alınmasında fayda vardır. Kitap 18 bölüm ve 504 sayfadan oluşmaktadır. Bu bölümlerin içerikleri özetle şöyledir:

 

Bölüm 1:
Birinci bölümde şelale (waterfall) tarzı yazılım yöntemleri ve projelerde oluşan sorunlar yer almaktadır. Bu sorunları gidermek için çevik süreçlerin kullanımı tavsiye edilmektedir. Extreme Programming (XP) bir çevik süreç olarak projelerde oluşan sorunlara cevap verebilecek yazılım metotlarına sahiptir. Bu bölümde Extreme Programming’in sahip olduğu değerler, prensipler ve teknikler tanıtılmaktadır.

Bölüm 2:
XP projelerinde sürüm ve iterasyon planları oluşturularak, projenin gidişatı belirlenir. Planlama oyunu olarak isimlendirilen süreçte müşteri tarafından, programcıların implemente (yazılım) edeceği özellikler seçilir. Programcılar gerekli tahminleri yaparak, müşterinin implementasyon için gerekli süre hakkında fikir sahibi olmasını sağlarlar. Bu bölümde sürüm ve iterasyon planlarının nasıl oluşturulduğu incelenmektedir.

Bölüm 3:
XP iletişime dayalı bir süreçtir. Ekip çalışanları arasında iletişimi güçlendirmek için günlük Stand-up (ayakta) toplantılar düzenlenir. Bunun yanısıra belirli aralıklarla retrospective (geriye bakış) toplantılarda projeye geri bakış sağlanarak, oluşan hatalar üzerinde tartışılır ve çözüm aranır.

XP projelerinde programcılar pair programming metoduyla eşli çalışırlar. Bu programcıların kısa sürede teknik alanda aynı seviyeye gelmelerini kolaylaştırır. XP projelerinde çalışma ortamının iletişimin önemi göz önünde bulundurularak oluşturulması gerekmektedir. Üçüncü bölümde Stand-up ve retrospective toplantılar yanı sıra, pair programming ve çalışma ortamının oluşturulması konuları tematize edilir. Bunun yanı sıra proje hakkında bilgilerin paylaşıldığı Wiki sistemleri hakkında bilgi verilir. Trac ve Bugzilla gibi araçlar kullanılarak bilgi ve hata yönetimi sağlanır.

Bölüm 4:
Bu bölümde XP projelerinde çalışma ortamlarının nasıl yapılandırıldığı ve ne tür araçlardan faydalanıldığı incelenmektedir.

Bölüm 5:
Teorik bilgilerin ardından, XP’nin nasıl uygulandığını göstermek amacıyla beşinci bölümde örnek bir XP projesi yer almaktadır. Bu bölümde müşteri gereksinimlerinin nasıl tespit edildiği ve sürüm ve iterasyon planlarının nasıl oluşturulduğu bir örnek üzerinde gösterilmektedir.

Bölüm 6:
Proje öncesinde sıfırıncı iterasyonda programcılar ihtiyaç duydukları teknik ortamı oluşturmaya başlarlar. Altıncı bölümde Eclipse, Ant, Tomcat, Subclipse, JUnit, HSQL, DBUnit gibi araçların kullanımı ve kurulumu incelenmektedir.

Bölüm 7:
Yazılım sürecinde uygulanması gereken tasarım prensipleri bu bölümün ana konusudur. Esnek bağ, açık kapalı prensibi, tek sorumluluk prensibi, Liskov yerine geçme prensibi, bağımlılıkların tersine çevrilmesi prensibi, arayüz ayırma prensibi ve paket tasarım prensipleri detaylı ve örnekli olarak bu bölümde incelenmektedir.

Bölüm 8:
Unit testleri oluşturularak sistem komponentleri yazılım esnasında test edilir. Akseptans testleri, entegrasyon testleri, regresyon testleri, performans testleri gibi değişik türde testler oluşturmak mümkündür.

Java projelerinde JUnit test frameworkü kullanılarak testler oluşturulur. Sekizinci bölümde JUnit kullanılarak unit testlerin nasıl oluşturulduğu uygulamalı olarak gösterilmektedir.

Bölüm 9:
XP projelerinde yazılım test güdümlü (Test Driven Development – TDD) yapılır. Dokuzucu bölümde TDD sürecinin nasıl çalıştığı ve programcıların TDD yöntemleriyle implementasyonu nasıl ilerlettikleri yer almaktadır.

Bölüm 10:
Onuncu bölümde pratik uygulamalı olarak shop sisteminin login modülü implemente edilmektedir. İmplementasyon için akseptans testlerinden yola çıkılarak, bilgibankasına kadar uzanan yapının adım adım TDD kullanılarak nasıl implemente edildiği gösterilmektedir. Bu bölümde sistem komponentlerini simule etmek için mock sınıfların kullanımı yer almaktadır.

Bölüm 11:
İmplementasyonun çalışır durumda olduğunu kanıtlamak için akseptans testleri oluşturulur. Bu testler kullanıcı hikayeleri gibi müşteri tarafından tanımlanır ve programcılar tarafından implemente edilir. On birinci bölümüde akseptans testlerinin hangi teknik ve araçlar kullanılarak implemente edildiği konusu incelenmektedir.

Bölüm 12:
On ikinci bölümün konusu Spring’dir. Spring frameworkü ile tasarımı ve teknik altyapısı güçlü, bakımı kolay ve kolay genişletilebilir programlar oluşturmak mümkündür. Spring sunduğu alt yapı hizmetleriyle programcıların hayatını kolaylaştırır ve programın test edilebilirligini yükseltir.

Bölüm 13:
Web aplikasyonlarının implementasyonu için Spring MVC frameworkü kullanılabilir. Bu bölümde Spring MVC’nin nasıl konfigüre edildiği incelenmektedir.

Bölüm 14:
Sürekli entegrasyon (continous integration) XP projelerinde uygulanan bir tekniktir. Programcılar tarafından kod üzerinde değişiklik yapılmasıyla beraber, mevcut kod derlenerek, sistem testleri çalıştırılır. Bu işlem sonunda kod üzerinde kırılmalar oluşmuşsa, programcıların konu hakkında email aracılığıyla dikkati çekilir ve hatanın bir an önce giderilmesi talep edilir. Sürekli entegrasyon ile her zaman çalışır bir sistemin olması sağlanır. On dürdüncü bölümde sürekli entegrasyon konusu incelenmektedir.

Bölüm 15:
İmplemenatasyonun hangi yöne gittiğini tespit edebilmek için yazılım metrikleri kullanılır. Bunlar sistemin belirli özelliklerinin ölçülmesi sonucu ortaya çıkan değerlerdir. On beşinci bölümüde sistem metriklerinin nasıl ve hangi araçlar kullanılarak ölçüldüğü gösterilmektedir.

Bölüm 16:
Kod paylaşımını kolaylaştırmak için versiyon kontrol sistemleri kullanılır. On altıncı bölümde açık kaynaklı olan Subversion versiyon kontrol sisteminin kullanımı açıklanmaktadır.

Bölüm 17:
Projenin gidişatını kontrol edebilmek için proje takip planları oluşturulur. Bu planlarda Burndown grafikleri kullanılarak görsellik sağlanır. Enformasyon radyatörü olarak tanımlanan metot ve yöntemler kullanılarak proje ekibinin ve diğer şahışların projenin gidişatı hakkında bilgi sahibi olması sağlanır. On yedinci bölümde sürüm ve iterasyon takibi konuları tematize edilmektedir.

Bölüm 18:
Son bölümde XP hakkında soru ve cevapları yer almaktadır.


Bu sayfa 1255 kere okundu.

İLGİLİ METİNLER

Android Semineri'nin Ardından
Android Seminerine Bekleriz
Java Dergisi Yayın Hayatına Başladı
Java Dergisi geliyor
Java Serbest Çağrışımları (JSC-1)
Java Teknolojileri ve Programcıları Derneği Yeni Site
Java Hosting Dertleri Bitiyor mu?
Bloglardan Seçmeler - Gökhan Atıl Blog
Java Application Server Seçimi
JTS - 5 Google App Engine - PMBOK
Adım Adım Google App Engine Java Web Uygulaması (Eclipse Galileo ile)
JTPD'den Yeni Etkinlik : JTS - 4 30 Temmuz 2009 Perşembe
Eclipse Pulsar ile JavaME
Spring Python 1.0 Yayınlandı
Netbeans 6.7 Release Oldu
Inmamusys, Intelligent Multiagent Music System ile Beste Yapan Program
Eclipse 3.5 Galileo Hazır
JavaRebel Java EE Hot Deployment
OpenSSO REST API Türkçe Sorunu Giderildi
Site Kaynak Kodu ve Kurulum Videosu
Balkanların Son Kalesi Mamuşa
Yeni Site Çalışmaları
Melih Sakarya Blog
Google Office - Open Office Entegrasyonu
Tamer Şahin ile bir gün
Hibernate SQL Server 2005 hbm2ddl Problemi
Grails Makalesi
Blackberry JavaME Maceraları
Özgür Yazılım Web Uygulamalarının Tepe Noktası : Liferay Portal
Spring Framework Semineri Sunumu ve Örnek Uygulaması
Biletix-Tomcat Nasıl Yani ?
Hello Android
Martı Bilgisini Paylaşıyor.
Eclipse BIRT ile Raporlama Videosu
Oracle'dan JFreeChart Makalesi
Quick start - Apache Geronimo
Calling SQL Server 2005 Stored Procedure with Hibernate
Java Reflection Primitive Type Problemi
Jprobe ile Uğraşırken Dikkat
All HttpResponse One Line Filter
JavaFX İsimli Yenilik
Java Teknolojileri ve Programcıları Derneği Hayırlı Olsun
Yeni Bir SSO (Single Sign On) Çözümü OpenID
Java (J2EE) Forum
Java Teknolojileri Derneği Kapandı
Jira ve Apache
Oracle SOA ile İlgili Bir Hatırlatma
Kısa Yoldan Subversion ve Eclipse
KURUMSAL JAVA KİTABI ÇIKTI
Küçük ama Kullanışlı Yazılımlar
Eclipse Web Tools Platform
Fedora Core 4'de Java Üstünlüğü
Yine Java Yine Linux
ASP, PHP JSP VAR FAKAT ASP.NET YOK
JAVA DERNEĞİ TAM GAZ
JAVA MOBILE İLE VERİTABANI VE WEB SERVİSLERİ
Ferruh MAVİTUNA 'dan Büyük Jest
İNTERNET VE HUKUK
KENDİ SİTENİ KENDİN YAP www.paketsite.com
x86 TABANLI MİKROİŞLEMCİ MİMARİSİ VE ASSEMBLY DİLİ
ADIM ADIM XML
Erdinç Akan ve Bursa.gen.tr
2010

Ocak Şubat Nisan Haziran

2009

Ocak Şubat Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim

2008

Ocak Nisan Haziran Temmuz Ağustos Eylül Ekim Kasım Aralık

2007

Şubat Mart Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim Kasım Aralık

2006

Ocak Şubat Nisan Ağustos

2005

Ocak Şubat Mart Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim Kasım Aralık

2004

Ocak Şubat Nisan Ağustos Eylül Ekim Kasım Aralık

2003

Ocak Şubat Mart Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim Kasım Aralık

2002

Ağustos Eylül Ekim Kasım Aralık



Başarının sırrı , uğraşılan konuya hakim olmaktır.
Benjamin Disraeli


Bu site açık kaynak kodlu uygulamalar ve kütüphaneler kullanılarak yapılan mblog içerik yönetim sistemi ile sunulmaktadır.
© 2002 - 2009 Muharrem Taç
Sürüm : 5.4.5