Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Tuğrul Güçlü
Tuğrul Güçlü
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
1 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: beraber bireyin bireysel gelistirme gerekir. hakkinda kalite kodlama planlama projenin software standart tasarim teknik yazilim Yazılım Müh. Tuğrul Güçlü
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : İleri
Kategori : Yazılım Müh.
Yayınlanma Tarihi : 27.7.2004
Okunma Sayısı : 28110
Yorum Sayısı : 0     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 21.11.2024
Turhal Temizer
Mac OS/X Removing CUDA 21.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 21.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 21.11.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
Yazılım Geliştirmede Disiplin ve PSP Yöntemi
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Yazılım projeleri sonuç olarak bireyler tarafından geliştirildikleri için bireylerin yetenek ve çalışma disiplinleri bir projenin başarısında doğrudan etkilidir.Yazılım mühendisliği alanında bugüne kadar tasarım , test ve yönetim alanlarında bir çok çalışmalar yapılmakla beraber yazılım geliştirmede bireysel disiplinin üzerine fazla gidilmemiştir.Bu alandaki eksiklik ise Watt Humprey ‘ in PSP(Personal Software Process) ve TSP(Team Software Process) konularındaki çalışmaları ile giderilmiştir. PSP bireysel TSP ise takım içinde yer alan disiplini belirtir. Açıkça anlaşılabileceği gibi TSP PSP ‘ yi kapsar fakat şu gerçek unutulmamalı ki takımlar bireylerden oluşur ve PSP nin önemi buradan anlaşılmaktadır. Takım Çalışmasını Başarıya Eriştirmek
Takım iki yada daha fazla sayıdaki bireyin oluşturduğu , ortak bir hedef için ve birbirleri ile ilişkili görevleri bulunan gruba verilen isimdir. Günümüzün yazılım projeleri tek kişi için fazlasıyla büyük ve karışıktır.Bir yazılım projesi için takım çalışması çok önemlidir çünkü tasarım , kodlama , gözden geçirme ,test,konfigurasyon yönetimini tek kişinin yapması düşünülemez.Takım oyuncuları arasındaki iletişim sorunlarını ortadan kaldıran organizasyonlar görevlerini başarılı olarak gerçekleştirebilir.Bu tür organizasyonlar takım ruhunu çalışanlarına aşılayabilmiş demektir. Bir takımın görevlerini yerine getirebilmesi için , içinde bulunduğu organizasyonun önceden tanımlı süreçlerinin olması gerekir. Böylece takım üyeleri hangi kurallar ve standartlar ile çalışacaklarını bilirler. Alttaki tabloda bir takımın başarısını etkileyen faktörler yer almaktadır.Farklı takım türleri olmakla beraber hepsinde ortak olan özellik “bireysel yetenekler ve bu yeteneklerin geliştirilmesi ve en uygun şeklide kullanılması ”dır.

Başarı Faktörü Yazılım Geliştirme Amerikan Futbolu Askeriye
Bireysel Yetenek Kalıtımları kullanabilme, Zeka, Dil yetenekleri Hız,dayanıklılık,büyüklük,çeviklik Dayanıklılık,tahammül,zeka,görme duyusu
Bireysel Temeller Yeniden inceleme, Tasarım.. Bloklama, atak ,pas Bomba atma nişancılık
Ayrıntılı Plan Proje planı Oyunlar(blok,pas yöntemleri) Hava görevi emirleri
Takım Çalışması Haftalık proje toplantıları Periyodik toplantılar,oyun planları Birim çalışmaları
Tanımlı Süreçler Kurumsal yazılım süreçleri Haftalık antremanlar Birim çalışmaları
Takımı Oluşturma Projenin başlaması Bahar kampları Birim çalışmaları
2. Bireysel başarıyı sağlamak için geliştirilen teknolojiler

Bireysel disiplinin gelişmesinde iki yöntem vardır.Birisi genel amaçlı olan diğeri ise yazılım geliştirmeye yönelik olandır.

Franklin Covey sistemi genel amaçlı olandır. Bu sistemin amacı da bireysel disiplini geliştirmektir fakat teknik konuları içermez. Daha çok kitaplar , eğitimler , önceliklerin tanımı ve zaman yönetimi gibi temel kavramlar ile ilgilidir.

Watts Humprey’ in PSP yöntemi ise tamamen yazılım mühendisliğini ilgilendiren teknik konulara yönelik çözümler ortaya koyar.

3. PSP

İlk olarak şunu bilmek gerekir. PSP giriş ve çıkış kriterleri , süreç hedefleri , belirlenen hedefleri olan bir süreç değildir. PSP yi anlamak için üzerinde geliştirilen fikirleri , kalite ve süreç geliştirme modelleri hakkında bilgi sahibi olmak gerekir. Zamanla birlikte PSP nin bir süreçten çok bir felsefe barındırdığı gözlemlenmiştir.

3.1. PSP Tarihçesi

PSP ’ nin temel amacı birey olarak program geliştiricinin yeteneklerini geliştirerek yüksek kalitede yazılım ürünleri oluşturmasına yardımcı olmaktır. Yazılım geliştirme sürecine odaklanarak bazı alışkanlıkları aşılmaya çalışır. Anlaşılacağı üzere PSP yeni bir teknoloji olup halen gelişmektedir.

Bu teknik Watts Humprey tarafından CMM çalışmaları tarafından temelleri atılıp geliştirimeye başlanmıştır.

Temel olarak , CMM ’ in küçük şirketler tarafından uygulanamadığını gözlemleyen Watts CMM Seviye 5 ’ i optimize ederek mümkün olan en küçük, takım yani birey için yazılım geliştirme kalite sürecini tanımlaya gitmiştir. 1995 yılından beri ise SEI tarafından bu konu üzerinden danışmanlık ve eğitim hizmetleri verilmektedir.

PSP Süreç Bileşenleri Amaç Örnek
Kayıtlar Süreçlerin ölçülebilmesi Zaman kaydı , hata kaydı , Sorunların takibi
Talimatlar Süreçleri tamamlamak için tanımlanmış direktifler (kayıtlar şablonlar,formlar) Her şablon ve form ile ilgili talimatlar bulunmaktadır
Skriptler Bir sürecin tamamlanabilmesi için gerekli adımlar Her PSP sürecine ilişkinplanlama ,geliştirme ve inceleme scriptleri vardır
Formlar ve Şablonlar Verileri kaydetmek ve kullanmak için hazırlanmış standart mekanizmalar.Bu şekilde proje tamamlandıktan sonra projenin incelenebilmesi için bu verilere kolaylıkla başvurmak mümkündür. 7 sürecin hepsinde de bir özet doküman vardır bunlara döngü formları denir. Şablonlardan bazıları ise Rapor şablonu , test şablonu , görev şablonları , zamanlama şablonlarıdır.
Standartlar Belli işleri yapmamızda rehberlik eden kurallardır. Hata türü standardı , kodlama standardı(çoğu zaman göz ardı ederiz) ve LOC(line of code standardı) Sayma standardı
CheckList Bir süreci yolunda gitmesi için zorlayan mekanizmadır. Tasarım ve kodun gözden geçirilmesi checklisti
PSP Süreci Bileşenleri


3.1 PSP ’ nin Kapsamı
En basit tanımıyla PSP bireyin yazılımı nasıl geliştirmesi gerektiğini tanınlar. PSP yazılım mühendisliğinin temellerini kapsar , kodlamadan önce tasarım ve gözden geçirme , yüksek seviyeli tasarım gibi . Görevin bir kişiye atanmasından tutun da unit test safhasına kadar her evreyi kapsar. Yazılımın geliştirme evrelerinin dışında kalan fazlar ise PSP kapsamının da dışında kalır. Aşağıdaki animasyonda PSP nin kapsamı açıkça görülmektedir.



3.2 PSP Süreç Bileşenleri
Yazılım kalite sistemlerinin genelinde olduğu gibi PSP de uygulama olarak dokümantasyona dayanır. Standart PSP prosedürü birbirleri ile hiyerarşi içinde bulunan 7 katmandan oluşur ve toplam 31 script , 8 özet formu , 3 kayıt defteri, 9 şablon , 20 tane talimat , 2 standart ve 4 tane de kontrol listesi içerir. İlk etapta bu denli çok sayıdaki dokümantasyonkorkutucu gözükse de bu kişiden kişiye özelleştirilebilir. Fakat uzun vadede uygulayanının yararına olacağı kesindir.

3.3 PSP Süreç Fazları
PSP de geliştirme fazları ve geliştirme aktiviteleri vardır. Bu ikisinin ayrımına varabilmek çok önemlidir. PSP evreleri ; planlama , yüksek seviyeli bir tasarım , bu tasarımın gözden geçirilmesi , kodun tasarımı , kodlama , kodların gözden geçirilmesi , derleme , test ve son incelemedir (standartta burası otopsi olarak adlandırılır). Bütün bu evreler bir sıra halindedir. Yani bir önceki evreye geri dönmemeniz gerekir.(Tasarımın önemi burada açıkca anlaşılıyor)

Geliştirme evreleri mühendisin ne yaptığı ile ilgilenir. Eğer bir hata yok ise geliştirme evresi ve aktivitesi beraber ilerler. Fakat hata ile karşılaşınca o anki aktivite içerisinde bunun düzeltilmesi gerekir. Özetlemek gerekirse temelde 3 tane PSP evresi vardır. Bunlar planlama , geliştirme ve otopsidir. Otopsi fazında sürecin gidişatına bakılarak ilerisi için planlama ve iyileştirmeler yapılır. Geliştirme fazı ise teknik konularla uğraşılan evredir. Bu evre tasarım ve test olarak ayrılır çünkü yazılımın yönetimi ve kontrolü için hayati önem taşır aksi takdirde siz projeyi değil proje sizi yönetir.

3.4 PSP Süreçlerinin Ölçülmesi
Bu son bölümde ise PSP süreçlerinin nasıl ölçülebileceğini ve bu ölçümlerin bize nasıl bir fayda getireceğini üzerinde duracağız.

Gayet açıktır ki ölçülemeyen bir süreç fazla bir şey ifade etmez. PSP bunu yapabilmemiz için alternatifler sunar. En çok kullanılanı ise zaman , hata ve boyut ölçümleridir.

Zaman ölçümü time log da tutulur ve geliştirme sürecinin süresini dakika olarak kayıt etmemizi ister. Daha sonra bu metriklere bakarak proje zamanlaması ,üretkenliğimizin ölçümü ve ne kadar etkin olduğumuz konusundabilgi verir.

Hatalar defect log da tutulur. Burada saptanan hatanın açıklaması , hangi geliştirme evresinde görüldüğü , ve hangisinde ortadan kaldırıldığı , bunu yapmak için harcanan süre ve eğer bu hata başka bir hatayı düzeltirken yapılmışsa bununla ilgili not (çoğu zamanda başımıza gelen bu değil midir ? ) kayıdı tutulur.Defect log da tür ve açıklama alanları daha sonra gözden geçirme evresinde kullanılmak amacıyla tutulur. PSP ‘ nin buradaki amacı bireyin ne tür hataları yapmaya elverişli olduğunu ve buna karşı önlem/önlemler almasını sağlamaktır (bunun için bir önlemler checklist i hazırlanabilir). Hatanın düzeltilmesi için harcanan zaman ise tekrarlanan iş anlamına gelir.Bu hatanın hangi fazda yapıldığı ve hangisinde düzeltildiği ise evrelerin hataya ne oranla açık oldukları hakkında bilgi verir. Bu oran ve hataları yönetebilme yeteneği ise ortaya çıkardığımız yazılım ürünlerinin kalitesi ile doğru orantılı olacaktır.

Boyut ölçümü ise hatalarımızın ve üretkenliğimizin normalizasyonunu sağlamak için gerekli olup birimi LOC (kodun satır sayısı) dur. LOC sayısına bakarak projenin gidişatı hakkında genel bilgiye sahip olabilir ve ilerisi için tahminler yapabiliriz. Mesela geliştirme evresinin hemen başında LOC sayısı beklediğimizden çok fazla ise tasarımı tekrar gözden geçirmek gerekebilir. Çünkü ne kadar çok kod o kadar çok hata olasılığı anlamına gelir ve buda tekrarlanan çalışma demektir.

3.5 Sonuç
Son olarak , hızla gelişen günümüz yazılım dünyasında daha kaliteli ürünler meydana getirmek ve rekabeti sürdürebilmek adına yapılan bir çok çalışma , getirilen bir çok standart olduğunu yazılım mühendisliğine ilgi duyan herkes bilmektedir. Fakat bunların çoğunda birey ikinci planda yer alır yada adı bile anılmaz. İşte bu noktada PSP devreye giriyor. Yukarıda adı geçen metotlar uygulandığı takdirde uzun vadede , yapılan hataların azalacağı , bunların kontrol altına alınacağı ve takımda rolü olan herkesin kendi metriklerine bakarak hangi yöne ağırlık vermeleri gerektiğini belirlemeleri kaçınılmaz olacaktır. Kaynaklar :Disciplined Software Development,A review of Personal Software Process and Team Software Process , STSC

Makale:
Yazılım Geliştirmede Disiplin ve PSP Yöntemi Yazılım Mühendisliği Tuğrul Güçlü
  • Yazılan Yorumlar
  • Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor