Bilgi sistemlerinin geliştirilmesi için izlenen sürece, Sistem Geliştirme Yaşam Döngüsü (SGYD) denir.



Benzer belgeler
Sistem Analizi ve Tasarımı DERS2

SİSTEM ANALİZİ VE TASARIMI

1.Yazılım Geliştirme Metotları 1

SİSTEM VE YAZILIM. o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur.

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

Yazılım Mühendisliği 1

9.DERS Yazılım Geliştirme Modelleri

Sistem Analizi ve Planlama

Bir yazılım geliştirme metodolojisi aşağıdaki adımlardan meydana gelir; Yazılım geliştirme sürecine destek verecek araçlar, modeller ve yöntemler.

Sistem Analizi ve. Tasarımı. Mustafa COŞAR

BİLGİ SİSTEMLERİNİN GELİŞTİRİLMESİ

Sistem ve Yazılım Nedir?

CMMI. CMMI ve Çevik Yöntemler. Orhan KALAYCI Haziran Yazılım Süreç Kalitesi ve Yönetim Danışmanlığı.

Sistem Geliştirme Yaşam Döngüsü (The Systems Development Life Cycle) (SDLC)

BLG Sistem Analizi ve Tasarımı. Öğr. Grv. Aybike ŞİMŞEK

Yazılım Mühendisliği Bölüm - 2 Yazılım Geliştirme Yaşam Döngüsü. Cengiz GÖK

CMMI ve Çevik Yöntemler

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Yazılım Mühendisliği II (BIL 306)

Yazılım Mühendisliği Bölüm - 3 Planlama

T. C. KAMU İHALE KURUMU

Proje Çevresi ve Bileşenleri

Varlık davranış modeli: Bu aşama her entity ye etki eden durumların tanımlandığı, modellendiği ve dokümante edildiği süreçtir.

Yazılım Geliştirme Projelerinde Kontrolörlük / Müşavirlik Hizmetleri. Y.Müh. Kadriye ÖZBAŞ ÇAĞLAYAN, PMP Y.Müh. Ahmet DİKİCİ, PMP

5.DERS PROJEDE YÜRÜTMENİN PLANLANMASI

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

11.DERS Yazılım Testi

YZM 2108 Yazılım Mimarisi ve Tasarımı

ESİS Projesi. Kaynaklar Bakanlığı

IBM CLM Çözümleriyle Çevik Yazılım Süreçleri. Canberk Akduygu & Koray Okşar

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Yazılım Mühendisliği Bölüm - 3 Planlama. Cengiz GÖK

BMH-405 YAZILIM MÜHENDİSLİĞİ

KTÜ - Of Teknoloji Fakültesi Tasarım Projesi ve Bitirme Çalışması Uygulama Yönergesi

Proje Kaynak Yönetimi

Yaşanmış Tecrübe Paylaşımı Önce Test Et Sonra Kodla XP Pratiği

Bilgisayar Sistemleri; donanım, yazılım ve kullanıcılardan oluşur. Yazılım sadece belirli bir işlemi yapan bir program değildir. Yazılım belirli bir

Y I L D I Z T E K N I K Ü N İ V E R S İ T E S İ MÜHENDİSLİĞİ

Yazılım Süreçleri Software Processes

PERFORMANS YÖNETĐMĐ. Hedefe Odaklı Çalışma ve Yetkinlik Yönetimi.

Teknoloji Geliştirmede Bütünleştirici Yaklaşımlar

Yazılım Testine Bakış. Defne Şarlıoğlu

ALGORİTMA VE PROGRAMLAMA I

ELEKTRONİK NÜSHA. BASILMIŞ HALİ KONTROLSUZ KOPYADIR

SUBA. SUBA CRM. Bulut Teknoloji ile İşinizi Zirveye Taşıyın! SMART TECHNOLOGY SOLUTIONS

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

Öğretim planındaki AKTS Ulusal Kredi

Yapı Malzemesi Enformasyon Sistemi - YMES. Y.Doç.Dr. Elçin TAŞ Y.Doç.Dr. Leyla TANAÇAN Dr. Hakan YAMAN

KARADENİZ TEKNİK ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

Yazılım Nedir? Yazılım Mühendisi. Yazılım Mühendisliği. ACM/IEEE Etik Kodu. Etik Kural için Önsöz BIL 304 YAZILIM MÜHENDİSLİĞİ

MerSis. Bilgi Teknolojileri Yönetimi Danışmanlık Hizmetleri

TS EN ISO/IEC Kullanılabilir Arayüz Sertifikası Verilmesi Süreci

Tasarım Raporu. - Projemizde detaylı bir şekilde ulaşmak istediğimiz amaçların belirlenmesi,

Üniversite Yerleşkelerinde İletişim Gereksinimi ve Bir Çözüm Önerisi

Dersin Yürütülmesi Hakkında

Fırat Üniversitesi Teknoloji Fakültesi Yazılım Mühendisliği. YAZILIM MÜHENDİSLİĞİNİN TEMELLERİ-Hafta 2

Üniversite Senatosunun 263 Sayılı Toplantısında görüşülerek kabul edilmiştir.

İŞ ANALİZİ GEREKSİNİM SORU LİSTESİ

YAZILIM MÜHENDİSLİĞİNİN TEMELLERİ 9.Hafta. Bakım

Bölüm 2 Yazılım Süreçleri. Ders 1

İ.Ü. AÇIK VE UZAKTAN EĞİTİM FAKÜLTESİ Bilişim Hizmetleri Organizasyonu Standartları

BİT PROJELERİNDE KARŞILAŞILABİLEN OLASI RİSKLER

Yaz.Müh.Ders Notları #6 1

KULLANILABİLİRLİK TESTLERİ VE UYGULAMALARI

YAZILIM MÜHENDİSLİĞİNİN TEMELLERİ 8.Hafta. Yazılım Doğrulama ve Geçerleme

WEB PROJESİ YÖNETİMİ. Belli bir süre içerisinde, belli bir bütçe ile belirlenen hedeflere ulaşmak için uygulanan metodolojik süreçtir.

EKLER EK 12UY0106-5/A4-1:

TÜBİTAK BİLİM VE TOPLUM DAİRE BAŞKANLIĞI MALİ DENETLEME VE SÖZLEŞMELER MÜDÜRLÜĞÜ ÇALIŞMA USUL VE ESASLARI

Orhan ŞEN. Cybersoft Enformasyon Teknolojileri Ltd. Şti. Gebze Yüksek Teknoloji Enstitüsü

Sedona. Nisan 2013 Eğitim Kataloğu

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

YAZILIM MODELLEME VE TASARIM

KARĐYER YÖNETĐMĐ. Geleceğe yönelik çalışan ihtiyaçlarını iç kaynaklardan sağlayarak çalışan motivasyonunu artırma.

2- PROJE YÖNETİMİ BİLGİ ALANLARI Y R D. D O Ç. D R. K E N A N G E N Ç O L

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

ISSAI UYGULAMA GİRİŞİMİ 3i Programı

MerSis. Bilgi Teknolojileri Bağımsız Denetim Hizmetleri

Aşırı Programlama İçin Üç Yeni Pratik

PROJE YÖNETİMİ KISA ÖZET KOLAYAOF

Dokuz Eylül Üniversitesi Mühendislik Fakültesi Metalurji ve Malzeme Mühendisliği Bölümü

Bilgi Teknolojisi ve Muhasebe Bilgi Sistemi 6-1

VERİ TABANI YÖNETİM SİSTEMLERİ Melih BÖLÜKBAŞI

4. ÜRÜN GELİSTİRME İŞLEMİ

ÜRETİYORUM ETKİNLİĞİ YAPIM KUŞAĞI

T.C. DOKUZ EYLÜL ÜNİVERSİTESİ FEN FAKÜLTESİ BİLGİSAYAR BİLİMLERİ BÖLÜMÜ. BİL4007 Bitirme Projesi Uygulama Planı

SİSTEM ANALİZİ VE TASARIMI. Sistem Analizi -Bilgi Sistemleri-

5. PROGRAMLA DİLLERİ. 5.1 Giriş

Atılım Üniversitesi Bilgi & Đletişim Teknolojileri Müdürlüğü Canlı Hizmetteki Sunucu Sistemlerine Erişim Politikası

Yaz.Müh.Ders Notları #3 1

GİRİŞ. Mehmet Sait Andaç. e-posta: İnşaat Mühendisi ve Endüstri Mühendisi.

SİSTEM ANALİZİ ve TASARIMI. ÖN İNCELEME ve FİZİBİLİTE

İÇ KONTROL SİSTEMİ STRATEJİ GELİŞTİRME BAŞKANLIĞI

T.C KARABÜK ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ

VERİ KAYNAKLARI. Bilgi sisteminin öğelerinden biride veri

IDE4DB Veritabanı Geliştirme Platformu Bitirme Projesi Sunumu

Bilişim Etiği ve Hukuku

STRATEJİK YÖNETİM VE YÖNETİMİN GÖZDEN GEÇİRMESİ PROSEDÜRÜ

Bilgisayarda Programlama. Temel Kavramlar

Büyük Ölçekli Bir Sistem Projesinde IBM Rational Jazz Platformu Kullanarak Çevik Süreçlerin Uygulanması. Serap Bozbey

TEMSA FABRİKALARINDA İŞ ETÜDÜ UYGULAMASI: MONTAJ AKIŞ KARTI (AOS)

Transkript:

Bilgi sistemlerinin geliştirilmesi için izlenen sürece, Sistem Geliştirme Yaşam Döngüsü (SGYD) denir. SGYD, yeni bir bilişim sisteminin geliştirilmesi için gerekli yöntem ve işlemleri ifade eden genel bir terimdir. SGYD, yeni sistemin analizi ve kurulumu aşamasında ortaya çıkabilecek olan bir takım kalite, bazı müşteri isteklerinin göz ardı edilmesi, sistem tamamlanma sürelerine uyulamaması gibi bir takım riskleri ortadan kaldırır. 1

SGYD, sistem analistine aşağıdaki olanakları sunar: Yapı Yöntemler Kontroller Yapılan İşler Çizelgesi Başarılı bir sistem kurulumu için daha önceden planlanmış bir yol izlenmeli, atılacak adımlar, hamleler, yapılacak tüm işler arasındaki bağlantılar, ilişkiler SGYD çerçevesinde belirlenip ve analiste bir izlence sunulmalıdır. İşte SGYD analiste bu anlamda yardımcı olan bir yöntemdir. Genel olarak SGYD 5 evreden oluşur. Bu evreler: 1. Planlama 2. Analiz 3. Tasarım 4. Uygulama 5. Destek 2

Planlama, süre ve maliyet gibi açılardan projenin tamamını etkileyecek olan evredir. Bu aşamada yapılacak işlemler aşağıdaki gibidir: 1. Problemin Tanımlanması 2. Fizibilite Raporlarının Hazırlanması 3. Proje Zaman Çizelgesinin Hazırlanması 4. Projede Çalışacak Personelin Zamana Bağlı Olarak Belirlenmesi 5. Projenin Başlatılması Proje ancak tüm adımlar tamamlandıktan sonra gerçek anlamda başlamış olabilir. Bu evrede sistem analisti ekibinde görev alabilecek personellerin başında sistem analist veya analistler gelir, bunun dışında sistemi kullanacak olan kurum yöneticileri ve sistem yöneticileri de sistem analizi ekibi içinde, planlama evresinde yer almalıdır. Analiz evresinin ilk hedefi yeni sistemin gereksinimlerini ortaya çıkarmak, ne tür bilgilerin sistemde tutulacağını, ne tür bilgilerin çıktı olarak sunulacağını belirlemek aynı zamanda sistemi kullanacak olan kişilerin genel yapısı, eğitim, yaş vs durumlarının belirlenmesidir. Bu evrede sistem analiz ekibimiz şu personelden oluşabilir: Analist Kullanıcıların Yöneticileri Kullanıcı operasyonundaki çalışanlar Sistem Yönetimi 3

Bu aşamada genel olarak aşağıdaki faaliyetler gerçekleştirilir: Bilgilerin Toplanması: Sistemi kullanacak olan kişi ve ortamdan okuma, yüzyüze görüşme, anket gözlem gibi yöntemlerle, ileride sistemin hem ana yapısını hem de ince ayrıntıları oluşturacak olan bilgilerin elde edilmesi. Sistem Gereksinimleri: Çeşitli şekil, diyagram ve raporlarla tasarımcıya, tasarımlarına ışık tutacak sistem gereksinimlerini sunmak bu aşamada yapılacak işlerdendir. Prototürlerin Yapılması: Prototipler, hem yeni sistemin potansiyel kullanıcılardan bilgi almak hem de tasarım aşamasında çalışacak olan sistem analizi ve tasarımı ekibindeki kişilere, yapacakları tasarım örneğini sunmak için hazırlanır. Alternatif Çözüm Önerilerinin Sunulması: Bir sistemin tek bir tasarım sonucu olamaz. Mutlaka, zaman, maliyet, kullanım kolaylığı ve kapsam açısından çeşitli sürümleri vardır. Analistin görevi bu alternatifleri nedenleri, artı ve eksileriyle birlikte proje yürütme kuruluna sunmaktır. Önerilerin Gözden Geçirilmesi: Gerek proje takımı içinden gerekse de kullanıcılardan gelecek her türlü öneri ve istek analistler tarafından değerlendirilip, yönetimle paylaşılmalıdır. Bu tür öneri ve isteklerin en iyi toplanıp değerlendirilebileceği aşama analiz aşamasıdır. 4

Tasarım evresinin amacı analizde elde edilen bilgilerin ışığında, gerekli olan sistemin tasarımıdır. Bu aşamada sadece görsel tasarımlar yapılırken, henüz uygulama yoktur. Ne bir kod ne de bir veri tabanı bağlantısı kurulur. Yapılan işlem, analiz aşamasında NE sorusuyla alınan yanıtlara NASIL sorunun yanıtı bulmaktır. Bu aşamada kağıt üzerinde yapılacak tüm işlemler daha sonra ayrıntılı proje çıktılarına dönüştürülür ve bir sonraki uygulama evresinin temelini oluşturur. Bu aşamada yapılacak olan işlemlerin bazıları şunlardır: Ağ Yapısının Tasarımı Uygulama Ağının Tasarımı Kullanıcı Ara Yüzlerinin Tanımlanması ve Tasarımı Sistem Ara Yüzlerinin Tasarımı Veri Tabanı Tasarım ve Projeyle Bütünleştirilmesi Prototip Ayrıntılarının Belirlenmesi Sistem Kontrollerinin Tasarımı 5

Tasarım evresine dahil olacak personel şunlardır: Analist Sistem Tasarımcı Kullanıcı Yöneticileri Kullanıcı Operasyonu Çalışanları Sistem Yöneticisi Uygulama evresinde amaç, tasarımı yapılmış olan sistemi, tasarım not, rapor, şekil ve diyagramlarından yararlanarak kurmaktır. Bu aşama gerçek program kodlarının yazıldığı kısımdır. Bu aşamada kodların yazımı, veritabanının uygun bir veritabanı yönetim sistemi üzerinde kurulması gibi işlemler yapılırken, tüm sistemi analiz eden ve belki de tasarımını yapan analist veya analistlerin görevi, sistemin gerçekte arzu edilen sistem şeklinde yapılıp yapılmadığının kontrolüdür; tıpkı proje mühendisinin ya da bir mimarıni yapılan inşaatın, daha önce çizilmiş olan projeye uygun olup olmadığını denetlemesi gibi. 6

Bu aşamada aşağıdaki işlemler yürütülür: Yazılım (kodlama) Test İnce ayar için ilk örnek ya da prototip üretimi Verilerin dönüştürülmesi Eğitim ve belgelendirme Yeni sistemin kurulması Bu evrede görev alacak personel: Analist Sistem Tasarımcı Programcılar Sistem Yöneticileri Bu evrenin amacı, kurulmuş ve yürümekte olan sistemin tam randımanlı bir şekilde işletilmesini sağlamaktır.bu aşamada yürütülen faaliyetler: Kullanıcılara yardım masası (Help Desk) ve eğitim programlarıyla destek olmak Bilgisayar sisteminin bakımı ve geliştirilmesi Yükseltmeler (Upgrades) Anlaşılması güç yerlerin geliştirilmesi Sisteme ek özellikler kazandırmak Değişen teknoloji, yazılım ve donanıma ayak uydurmak. 7

Klasik Süreç (Şelale Yöntemi) Model Oluşturma RAD Modeli Evrimsel Süreç Aykırı Programlama (XP) Klasik süreç, ana sistemin analizinden başlayıp yazılım gereksinim analizleri, tasarımı, kodlanması, kullanım ve bakımı aşamalarında bir süreç halinde gerçekleştirilmektedir. Sistemin geliştirilmesinde uygulanan klasik süreç, eskiden beri yaygın olarak kullanılan bir yöntemdir. Ancak, Projenin başlangıcında, müşteri gereksinimlerinin bütünü ile ortaya konmasındaki güçlükler ve eksikliklerin görülmesi; Projenin çok uzun bir sürede tamamlanabilmesi Müşterinin beklemeye zamanı olmaması; Başta yapılabilen kaba hataların bazen ancak sınama ve hatta kullanma aşamasında ortaya çıkabilmesi; Uygulamada bu modeldeki sıraya tam olarak uyulmaması, yinelemeler yapılması konularında bazı güçlüklerle karşılaşılmaktadır. Buna karşın yine de rastgele ve gelişigüzel bir sistem geliştirmeye kıyasla, çok tutarlı ve güvenli bir yöntem olarak sayılmaktadır. 8

Her aşamada elde edilen sonuçların rapor halinde sunulması ve gerekirse geri besleme yoluyla düzeltilmesi beklenmektedir. Sistem Mühendisliği Analiz Tasarım Kodlama Test Bakım Sistem geliştirmenin klasik sürecinde müşteri, sistem konusundaki amaç, hedef ve gereksinimlerini genel hatları ile bildirmektedir. Ancak, girdi, işlem ve çıktı gereksinimlerini tanımlaması beklenememektedir. Sistem analisti, bu bilgilere dayanarak var olan sistemin algoritmalarının etkenliğini, işletim sisteminin uygunluğunu ya da insan-makine etkileşim biçimini yargılamak ve yeni öneriler getirmek durumundadır. Bu durumda, klasik gelişim sürecinde söz konusu güçlükleri aşmak için, bir sistem modeli (prototip) oluşturmak yoluna gidilmektedir. 9

Gereksinimlerin Derlenmesi Taslak Tasarımı Model Oluşturma Gereksinimlerin İşlenmesi Yazılım Üretimi Gereksinimlerin Derlenmesi: Her sistem geliştirme yönteminde olduğu gibi burada da sistem analisti ile müşteri bir araya gelerek, sistemin amaç ve hedeflerini belirlemekte, bu hedeflere ulaştıracak gereksinimleri saptamaktadır. Taslak Tasarımı: Müşterinin (kullanıcının) kolayca anlayabileceği biçimde, örneğin girdi yaklaşımları ve çıktı formatları halinde düzenlenmekte ve birlikte üzerinde tartışılmaktadır. Model Oluşturma: Sistem analisti ve kullanıcı tarafından birlikte değerlendirilerek işlenmektedir. Gereksinimlerin İşlenmesi: Model oluşturmayla sistemin gereksinimleri saptanmakta ve karşılanmaktadır. Yazılım Üretimi Bu çalışma, müşterinin bütün ihtiyaçlarının yerine getirilişine kadar yinelenerek sürdürülmektedir. 10

Model yardımıyla sistem geliştirme yönteminde de, modelin kurulması ve üzerinde düzeltmeler yapılması müşteri ile birlikte onun önünde gerçekleştirildiği için yerli yersiz müdahale etmesine ve yapılan işi küçük görmesine neden olabilir. Sistem analistinin modeli oluştururken basitlik ya da kolaylık nedeni ile kullandığı algoritmalardan ve işletim sistemi veya programlama dilinden daha sonra benimseyip vazgeçmeyebilir. Bu uygunsuz öğe ve yöntemlerin de geliştirilen sistem içerisinde kalma olasılığı vb. sorunlar ileri sürülmektedir. Buna karşın, sistem geliştirilmesinde modelden yararlanma, yine de etkili bir yöntem olarak görülmektedir. Böylece, müşteri gereksinimleri ve onayı daha kısa sürede sağlanmakta ve sistem analisti kalite ve bakım konularına ağırlık verebilmektedir. Klasik süreç (Waterfall) modelinin kısaltılmış ve hızlandırılmış şeklidir. Hızlı geliştirme, bileşen temelli yapılanma yaklaşımı ile gerçekleştirilir. Yeniden kullanılabilir program bileşenlerinin geliştirilmesini vurgular. Yeniden kullanılabilirlik, nesne teknolojisinin gereğidir. İş Modelleme: İş sürecinde hangi bilgiyi kim üretiyor? Üretilen bu bilgi nereye gidiyor ve kim tarafında işleniyor? Veri Modelleme: Veri kaynakları arasındaki iletişim (bilgi akışı) nasıl? Süreç Modelleme: Veri kaynaklarının, veri akışı gerektiren işlemlerin arasında tanımlanması. Uygulama Üretimi: 4. kuşak teknik modüllerinin yeniden kullanımı, yazılım otomatik araçlarının kullanımı. Test Etme: RAD yeniden kullanımı desteklediği için pek çok modül test edilmiştir. Test sğreci kısalır, ancak yeni modüller test edilir ve test sürecinin önemli kısmı arabirim testleri için kullanılır. 11

Bu modeller, çevrimseldir (iteratif). Sistemlerin daha tamamlanmış versiyonlar şeklinde hazırlanmasını sağlar Evrimsel Modeller: Artımlı Model Spiral Model olarak incelenebilir. Prototip oluşturmanın çevrimsel yaklaşımıyla klasik modelin elemanlarını birleştirir. Her artım Analiz Tasarım Kodlama Sınama / Test adımlarında gerçekleştirilir. Prototip oluşturmadan farklı her bir artımda üretilen ürün dağıtılır ve kullanıcıların değerlendirme yapabileceği bir platform sağlanır. 12

Spiral model, Boehm tarafından 1988 de geliştirilmiştir. Bu modelde de prototip oluşturmanın çevrimsel yapısı ve klasik modelin kontrollü ve sistematik yapısı birleştirilmiştir. Bu modele göre yazılım, artımlı yayımlar dizisi olarak hızlı geliştirilir. İlk iterasyonlar prototiptir, daha sonrakiler dağıtımı yapılan versiyonlar şeklindedir. Planlama Müşteri İletişimi Risk analizi Kavram geliştirme Yeni Ürün Geliştirme Müşteri Değerlendirme Mühendislik Ürün Zenginleştirme Ürün Bakım Projesi Yapım ve Değişim 13

Müşteri İletişimi: Geliştirici ve müşterici arasındaki etkin iletişimi sağlama. Planlama: Proje için zaman ve kaynak tanımı yapma Risk Analizi: Teknik ve yönetim risklerini belirleme Mühendislik: Uygulamanın tanımının yapılması (tasarım) Yapım ve Değişim (Construction ve Release): Gerçekleştirme test, kuruluş ve kullanıcı desteği Müşteri Değerlendirme Çevik yaklaşımlar, artan müşteri taleplerini daha hızlı karşılamak amacıyla geleneksel sistem geliştirme modellerine alternatif olarak ortaya çıkmıştır. Çevik yaklaşımlar, yazılım geliştirme safhasında geç ortaya çıkan gereksinim değişimlerini çabuk karşılamayı esas alan modellere verilen genel bir isimdir. Bir çevik yaklaşım olan aykırı programlama (XP) üzerinde ise halen bir sistem geliştirme modeli olup olmadığı tartışmaları yapılmaktadır. 14

XP, 4 temel değere ve bunların çevresinde oluşturulmuş 12 pratiğe sahiptir. 1. İletişim 2. Basitlik 3. Geri besleme 4. Cesaret Proje paydaşları arasındaki iletişim, bir projenin başarısını doğrudan etkileyen en önemli unsurlardan biridir. İletişim planı çerçevesinde kimin kiminle, nasıl ve ne zaman iletişime geçeceği belirlenmelidir. Aykırı programlama ise diğer sistem geliştirme modellerinden farklı olarak güçlü bir iletişim için planlama oyunu, eşle programlama, günlük kısa toplantılar, kısa aralıklı yayımlar ve müşterinin ekip üyesi olması gibi XP pratiklerini geliştirmiştir. 15

XP de sistem geliştirmenin her aşamasında basitlikk anlayışı hakimdir. XP, bir problemi çözerken sadece o anki gereksinimleri karşılayan en basit çözümün kullanılması gerektiğini savunur. Bçylece ileride gerekli olabilir düşüncesiyle karmaşık çözümler üretmek için harcanacak iş gücü ve yüksek riskten kaçınılmış olunur. İlk bölümde de anlatıldığı gibi sistem yapısındaki geri besleme, sistemin geliştirilmesi sürecinde de yer almaktadır. Bu geri besleme sayesinde projedeki gerekli değişiklikler zamanında yapılarak ihtiyaçlara daha hızlı cevap verilebilir. Geri besleme, proje ekibi içindeki bireyler arasında olabildiği gibi sistemle bireyler arasında da olabilir. Kısa aralıklı yayımlar ve planlama oyunu gibi XP pratikleri, müşteri ile yazılım ekibinin arasındaki geri beslemenin sürekliliğini sağlar. 16

XP nin dördüncü değeri olan cesaret, ancak yukarıdaki diğer değerlerin sağlandıktan sonra proje ekibine fayda sağlar. Aksi durumda sadece cesaret, yarardan çok zarara neden olur. XP de grup çalışması daha ön plana çıktığı için proje üyelerinin motivasyonunun yüksek olması daha fazla önem kazanmaktadır. XP, bu dört ilkenin etrafında oluşturulmuş 12 uygulamay sahiptir: 1. Sistem metaforu 2. Ekip üyesi müşteri 3. Kısa aralıklı yayımlar 4. Planlama oyunu 5. Basit tasarım 6. Ortak kod mülkiyeti 7. Kodlama standartları 8. Eşle programlama 9. Test 10.Sürekli tümleştirme 11.Devamlı yeniden tasarım 12.Devam ettirilebilir hız 17

Ekip üyelerinin proje hakkında ortak bir çerçeveden bakabilmesini ve hedefleri kavramasını sağlamak için sistemin işleyişini genel olarak anlatan metafor kullanılarak hikayeleştirilir. Proje paydaşlarından biri olan müşteri, yazılım geliştirme ekibinin bir üyesi olarak kabul edilir. Ancak ticari bir paket sisteminin geliştirilmesi örneğinde olduğu gibi müşterinin ekibe katılmasının mümkün olmadığı durumlarda analistlerin bir grubu müşteri rolünü üstlenebilir. XP, proje paydaşları için oluşturulan yayımlar arasındaki zamanın mümkün olduğunca kısa olması gerektiğini savunur. Böylece müşteriden alınacak sürekli geri beslemeyle istenilen sistemi çabuk şekilde teslim etmek amaçlanmaktadır. Planlama oyununda müşterinin belirlediği öncelikleri, sisteme dair kısıtları ve teknik tahminleri kriter olarak alıp planlayarak en kısa zamanda bir sonraki yayımın kapsamı belirlenir. Yukarıda anlatıldığı gibi basitliği savunan XP yaklaşımı, sistem tasarımının da mümkün olduğunca basit şekilde yapılmasını öngörür. Yazılan kodun mülkiyeti, yazılım geliştirme ekibinin tüm üyelerine aittir. Kısacası ekibin üyesi herhangi bir kodu kendi yazmamış dahi olsa, kod üstünde gerekli değişiklikleri yapabilir. Bu pratiğin başarısı kodlama standartlarının tam olarak belirlenmesine bağlıdır. 18

Yazılım ekibi arasındaki iletişimin kolaylaşması ve ortak kod mülkiyetinin uygulanması bu pratiğe bağlıdır. Tüm ekip üyelerinin, kodlarını belirlenen standartlar çerçevesinde yazması önem kazanmaktadır. Eşle programlamada kod, iki ekip üyesinin aynı zamanda aynı bilgisayarda birlikte çalışmasıyla yazılır. Bir programcı, sürekli kodu yazarken diğeri yazılan kodu gözden geçirip, yazılanların sisteme uygunluğu, nasıl yalınlaştırılabileceği vb. konular üzerine odaklanır. Eşle programlama, sürekli kodu gözden geçirmeye ve incelemeye olanak sağladığı için hataların azaltılmasında oldukça faydalıdır. XP nin sunduğu hızlı geliştirme sürecinde daha da önem kazanmaktadır. Bu nedenle yazılım geliştiriciler (analist, programcı vb.) daha kodlanmaya başlamadan önce test senaryolarını hazırlar. Yazılan kodlar yeni özelliklerin eklenmesinden sonra, çok kısa aralıklarla hatta günde birkaç kere tümleştirilir ve test edilir. Testi gerçekleştirilen her birimden sonra yeni bir işlev veya modül eklendikçe mevcut koddaki karşılıklar temizlenir. Böylece basitlik ilkesinin devamlılığı sağlanmış olur. XP, motivasyona ve verimliliğe önem verdiği için çok zorunlu haller dışında fazla mesaiye karşıdır. XP mantığına göre haftada 40 saat çalışmak standarttır ve birkaç hafta üst üste mesai yapılması verimliliğin en büyük düşmanıdır. 19

SGYD, problemin tanımı, fizibilite çalışması, sistem analizi, sistem tasarımı, gerçekleştirme ve bakım olmak üzere bilgi sistemlerinin geliştirilme süreci temel adımlarından oluşmaktadır. Fizibilite çalışması, sistem geliştirme projesinin kapsamı ve hedeflerini tanımlayarak yapılabilirliğini belirlemektedir. Sistem analizi, problemin çözümlerinin ne olduğunu ve sistemin çalışma sürecini ortaya çıkarmaktır. Genel sistem tasarımı, sistemin nasıl gerçekleştirileceğinin, ayrıntılı sistem tasarımı ise, genel tasarımda belirlenen sisteme ait alt sistemlerin tanımlanmasıdır. Gerçekleştirme aşamasında, tasarıma uygun kodlama yapılır ve tüm sistem sınanır. Bakım aşaması ise sistemin hatasız kullanımı için yapılan destek işlemleridir. Klasik süreç (waterfall), model oluşturma (prototip), hızlı uygulama geliştirme (RAD), evrimsel süreç (artımlı ve spiral) ve aykırı programlama (XP) temel sistem geliştirme süreci modelleridir. 20