Proje Geliştirme Adımları
Proje Geliştirmede aşama modeli Proje Geliştirme sürecini daha iyi yönete bilmek için bu süreç bileşenlere ayrılır. Bu amaçla farklı modeller kullanılabilir. Biz burada aşama modelini öğreneceğiz. Projenin aşamalara bölünmesi onu iyi yönetme imkanı sağlar. Proje geliştirme sürecinin izlenmesi ve denetimi kolaylaşır. Modele göre proje geliştirme 6 aşamadan oluşmaktadır: 1. Başlangıç 2. Tanımlama 3. Tasarım 4. Geliştirme 5. Çalıştırma 6. Teslim sonrası bakım
Aşama modeli Başlangıç Tanımlama Tasarım Uygulama izleme Fikir Ne Nasıl geliştirilecek Tasarım Geliştirme Proje'nin uygulanması Uygulama destek-bakım izleme
Başlangıç aşama Bu safhada projenin temel fikri araştırılır ve incelenir. Projenin gerçekleşebilirliği belirlenir. Projenin kimler tarafından yürütüleceği, kimlerin projeye katılacağı ve katkı sunacakları (sunabilecekleri) konuları da araştırılır. Projenin önderliğini yapan (veya fikir sahipliğini yapan) bu konuların açıklamalarının yer aldığı proje önerisini yazar. Projenin muhtemel destekçisi (sponsoru) bu öneriyi değerlendirir ve onaylaması durumunda gereken mali desteği sağlar. Proje resmi olarak onaylandığı tarihten başlar. Başlangıç aşama aşağıdaki sorulara cevap vermelidir: • Projenin önemi nedir? • Proje yapılabilir mi? • Projenin muhtemel paydaşları kimlerdir? • Proje sonuçları ne olmalıdır? • Projenin kapsamı nedir?
Tanımlama aşaması Proje onaylandıktan sonra proje ikinci aşamaya- tanımlama aşamasına geçer. Bu aşamada proje sonuçlarına ulaşmak için gereken gereksinimler mümkün oldukça açık bir biçimde belirlenmelidir. Gereksinimleri mümkün oldukça erken aşamalarda belirlemek önemlidir Proje ile ilgili tüm tarafların, özellikle son kullanıcıların gereksinimlerin belirlenmesinde işbirlikçi yaklaşımları önemlidir. Bu proje ürünü ile bağlı oluşabilecek anlaşmazlıkları önlemek için gereklidir. Tanımlama aşamasından sonra müşteri yeni gereksinimler suna bilmez
Tanımlama aşaması -örnek Bir eğitim videosunun geliştirilmesinin yalnızca son evresinde öğrenciler de dahil edildi. Oyun neredeyse tamamlandığında öğrencilerden oyunu test etmeleri istendi. Öğrencilerin ilk değerlendirmeleri ılımlı ve samimi göründü. Ama bir az baskı yapıldığında öğrenciler oyunun çok sıkıcı ve kullanışsız olduğunu söylediler. Haliyle, eğitim videosu da internette kullanılmamış kaldı. Eğer öğrenciler geliştirmenin daha erken evrelerinde projeye katılmış olsa idiler bu sonuç da çıkmazdı.
Tanımlama aşaması -2 Proje gereksinimlerini aşağıdaki gibi sınıflandırmak mümkündür: Ön koşul gereksinimleri İşlevsel gereksinimler İşlevsel olmayan gereksinimler Uygulama (Çalışma ) gereksinimleri Tasarım sınırlamaları Ön koşul gereksinimleri projenin yürütülmeli olduğu ortamı ifade eder. Örnek olarak yasaları, çalışma ortamı düzenlemelerini göstermek mümkündür. İşlevsel gereksinimler proje ürününün olmazsa olmazlarını ,işlevlerini ifade eden gereksinimlerdir. Örneğin, veritabanı yönetim sistemi uygulamalarında veritabanındaki herhangi veriye ulaşıla bilmesi İşlevsel olmayan gereksinimler proje ürününün başarımı, kalitesi, boyutu türünden gereksinimlerdir. Bu gereksinimler sağlanmadığı durumlarda da ürünün uygulanması (çalışması) genellikle mümkündür. Ama kalite göstergeleri düşecektir. Örneğin, kullanıcı sorgularına en geç 4 saniye içinde sistem yanıt vermelidir Uygulama gereksinimleri proje sonuçlarının kullanımını kapsar. Örneğin, yazılım projesi gerçekleştikten sonra hataların sayısı yüzde 90 azalmalıdır. Tasarım sınırlamaları gereksinimleri projenin fiili gerçekleşmesi ile bağlıdır. Örneğin, proje zehirli maddelerin kullanımına veya çocuk emeğini istismar eden şaibeli uluslararası kurumların projeye katılımına izin vermemelidir
Tasarım aşaması Tanımlama aşamasında geliştirilen gereksinimler listesi tasarım çözümlerini oluşturmak için kullanılır. Tasarım aşamasında proje çözümünü elde etme imkanı verecek bir veya daha fazla tasarım geliştirile bilir. Proje denetçileri bu tasarımları, kesin tasarımı seçmek için kullanır. Tanımlama aşamasında olduğu gibi, tasarım seçildikten sonra projenin sonraki aşamalarında değiştirile bilmez.
Geliştirme aşaması Geliştirme aşaması boyunca, projede uygulanması gereken her şey düzenlenmiş olacak; Muhtemel tedarikçiler ve taşeronlar belirlenmiştir, iş-zaman programı oluşturulmuştur, malzeme ve araçların yeri, işlevi belirlenmiştir, personeller için talimatlar oluşturulmuştur,… Geliştirme aşaması, proje ürünü uygulamaya hazır olduğu zaman biter. Tüm taraflar için gerçekleştirilmesi gereken sorunlar açıklık kazanmalıdır. Bazı projelerde, özellikle küçük projelerde resmi geliştirme aşamasına gerek kalmaya bilir. Önemlisi odur ki, çalıştırma aşamasında kimin ne zaman ve ne yapacağı kesinleşmiş olsun.
Uygulama aşaması Bu aşama gerçek proje ürününün yapılandırılması süresidir; Programcılar kodla uğraşıyorlar. Tasarımcılar grafik materyalleri geliştiriyor, yükleniciler inşa ediyorlar. Bu aşamada proje dışarıdakilere görünür ve onlar projeyi yenice başlanmış gibi görüyorlar. Uygulama aşamasının sonunda proje sonuçları tanımlama aşamasında belirlenmiş gereksinimlere göre değerlendirilir. Aynı zamanda tasarıma uygunluk yoklanır. Uygulama aşaması tüm gereksinimler yerine getirildiği ve tasarım koşulları sağlandığı zaman son bulmuş oluyor.
Uygulama aşaması-2 Bu aşama tüm gereksinimlerin karşılanması ve proje ürününün tasarıma uygun olması ile sonlanır. Tanımlama aşamasında gösterilen tüm gereksinimlerin kesin olarak karşılanması kolay iş değildir; Beklenmedik durumlar oluşa bilir, veya gereksinimlerin orijinal listesinde ilerleyen zamanlarda değişiklikler yapıla bilir. Genellikle gereksinimler tanımlama aşamasından sonra değiştirilemez. Bu tasarıma da aittir. Tasarım, uygun aşama sonlandıktan sonra değiştirilemez. Proje lideri, tüm değişimleri , özellikle müşteri ile mümkün kadar erken aşamalarda tartışmalıdır. Yanlış anlamaları önlemek için yapılacak değişimler çok iyice belgelenmelidir.
İzleme aşaması Çok önemli olmasına rağmen, bu aşama çoğu zaman umursanmaz. Bu aşama süresince her şey projeyi başarılı tamamlanmaya götürmesi için gereken biçimde düzenlenir. Bu aşamada girişimlere örnek olarak kullanıcı için kılavuz yazılması, sonuçların bakımı, proje raporunun yazılması, projenin feshi gösterile bilir. Önemli soru projenin ne zaman ve nerede sonlanmasıdır. Proje önderleri sık sık kendi aralarında böyle bir şaka yapıyorlar ki, projenin ilk yüzde doksanı çok hızlı tamamlana bilse de son yüzde onunun tamamlanması yıllarca süre bilir. Projenin sınırları proje başlangıcında belirlenmeli ve proje bu sınırlara ulaştığı zaman sonlanmalıdır.
İzleme aşaması-2 Bazen proje sonucunun (ürünü) kesin ifadesi mümkün olmaz. Bu özellikle, yenilikçi projelerde (sonucu belirli olmayan) kendini gösteriyor. (Müşteriler ticari ürün almak için beklentide buluna bilirler, ama proje ekibi prototip oluşturma düşüncesinde ola bilir). Bu durumun özellikle izleme aşamasında ortaya koyulması muhtemeldir. “düşün, sonra yap” sloganı altı aşamalı modelin temel düşüncesidir Her aşamanın kendi iş paketi bulunuyor. Her bir paketin dikkat yetirilmesi gereken yönleri bulunuyor.
YAZILIM SÜRECİ VE SÜREÇ MODELLERİ
4/7/2017 Yazılım süreci Yazılım Sistemlerinin belirtilmesi, tasarlanması, çalıştırılması ve denetimi için gereken faaliyetlerin uyumlu kümesi Faaliyetler: - Yazılım sisteminin tanımlanması ve çözümleme -yazılımın işlevselliği ve işlemlere koyulmuş sınırlamalar tanımlanmalıdır Tasarım (Geliştirme) –gereksinimleri sağlayan yazılım üretilmelidir Deneme –müşteri isteklerinin karşılandığına emin olmak için yazılım doğrulanmalıdır Çalıştırma ve bakım Yazılımın evrimi –müşterinin değişen isteklerinin sağlana bilmesi için yazılım gelişe bilmelidir 15
Yazılım Geliştirme Modelleri 4/7/2017 Yazılım Geliştirme Modelleri Yazılım süreci modeli sürecin basitleştirilmiş soyut tasviridir.O, her hangi özgü açıdan süreci ifade eder. Yazılımın geliştirilmesi için kullanılan genel modeller: Şelale modeli Faaliyetlere bağımsız süreçler gibi bakılıyor 6 aşamalı model bir şelale modelidir Evrimsel geliştirme Kullanıcı ve sistem gereksinimleri evrimsel olarak karşılanmaktadır 16
Şelale Modeli Şelale modeli klasik projelerin (inşaat, gemicilik, köprü yapma ve diğerleri) geliştirilmesi sürecini yansıtmaktadır. İdeal halde modelin bir adımı gerçekleştikten sonra bir sonraki adımın geçekleştirilmesine geçmek mümkündür. Her adımdan sonra uygun adım için proje raporu hazırlanmalı ve yönetime sunulmalıdır. Rapor onaylandıktan sonra bir sonraki adıma geçilebilir. Şelale modelinin özelliği her adımın ayrıntılı biçimde düşünülmesi, incelenmesi ve doğru karar verile bilmesidir. Bir adım yapıldıktan sonra geriye dönüş yoktur.
Şelale Modelinin adımları Gereksinimlerin çözümlenmesi ve tanımlanması Sistem ve yazılım tasarımı Birim ve bütünleşme denemesi Sistem ve teslimat denemesi Çalıştırma ve bakım Şelale modelinin yetersiz yönü, süreç tamamlandıktan sonra değişikliklerin yapılmasının zorluğudur
Şelale Modelinin sorunları Projenin farklı aşamalara esnek biçimde bölünmemesi; Bu, değişen müşteri gereksinimlerini yerine getirmekte zorluklar yaratır Bu nedenle, şelale modeli, gereksinimlerin yalnız çok iyi tanımlandığı takdirde uygun modeldir
Yazılım geliştirmenin gerçek süreci Yazılım geliştirme süreci safhaları
4/7/2017 Evrimsel Geliştirme Temel düşünce: ilkin bir çalışma yapmak,bunu müşteri görüşüne sunmak, bu görüşleri de dikkate alarak sistemin son gereken halini alana dek sürümlerini geliştirmek Açınsama (Exploratory)Geliştirmesi Müşteri ile birlikte çalışarak gereksinimlerin açınsaması; başlangıç ana hatlarıyla verilmiş belirteçten son sisteme doğru evrimsel geliştirme yapılması. Sistemin anlaşıla bilir kısmı ile başlanılmalıdır. Müşterinin önerdiği yeni özellikleri ilave etmekle evrimleşmelidir. Prototip geliştirme Hedef- müşteri gereksinimlerinin anlaşılması; sistem için en iyi gereksinim tanımlanmasının geliştirilmesi; müşteri gereksinimlerinin zayıf anlaşılır kısımları üzeride denemelere odaklanıyor. 21
Evrimsel geliştirme yaklaşımları arasındaki farklar Açınsama yaklaşımında hedef çalışır sistemi son kullanıcıya teslim etmektir. Daha iyi anlaşılır ve yüksek öncelikli gereksinimlerle başlanılır. Zayıf öncelikli ve kesin anlaşılmayan kısımlar yalnız kullanıcı isteği ile çalıştırılır. Prototip yaklaşımında ise hedef sistem gereksinimlerinin geçerliliğini yoklamaktır. Zayıf anlaşılabilir gereksinimlerle başlamanın nedeni onları daha iyi anlamaktır. Çok iyi anlaşılan gereksinimler için prototipe gerek yoktur
Evrimsel geliştirme yaklaşımları arasındaki farklar Açınsama yaklaşımında hedef çalışır sistemi son kullanıcıya teslim etmektir. Daha iyi anlaşılır ve yüksek öncelikli gereksinimlerle başlanılır. Zayıf öncelikli ve kesin anlaşılmayan kısımlar yalnız kullanıcı isteği ile çalıştırılır. Prototip yaklaşımında ise hedef sistem gereksinimlerinin geçerliliğini yoklamaktır. Zayıf anlaşılabilir gereksinimlerle başlamanın nedeni onları daha iyi anlamaktır. Çok iyi anlaşılan gereksinimler için prototipe gerek yoktur
Evrimsel Geliştirme çözümleme tasarım deneme Paralel işlemler İlk sürüm çözümleme Sistemin ana hatlarının tanımlanması tasarım Aralık sürümler deneme Nihai sürüm
Evrimsel geliştirme-Prototip Geliştirme başlama bitiş Gereksinimlerin edinmesi ve arındırma hızlı tasarım Mühendis ürünü Yeni prototipin tanımlanması Prototip oluşturma Son kullanıcı değerlendirmesi
Evrimsel Geliştirme (devamı) Sorunlar Geliştirme sürecini bütünlükle görmek mümkün olmaya bilir Sistemler çoğu zaman zayıf yapılanmış oluyorlar Özel marifetler (örneğin, hızlı prototipler oluştura bilen diller) gereke bilir Uygulana bilirlik Küçük ve orta boyutlu etkileşimli sistemler için Büyük sistemlerin kısımları için (örneğin, kullanıcı arayüzü) Kısa yaşam süreli sistemler için daha uygundur