Transcript proje_5.ppt
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ıç
•Fikir
Tanımlama •Ne
Tasarım
•Nasıl geliştirilecek
Geliştirme
•Geliştirme
Uygulama
•Proje'nin uygulanması
izleme
•destek-bakım
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İ
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
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
Ş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ı
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.
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
Paralel ent
Concurr
işlemler
activities
Specification
çözümleme
Outline
Sistemin
ana
hatlarının
description
Initial
İlk
version
sürüm
Development
tasarım
Intermediate
Aralık
sürümler
versions
deneme
Validation
Nihai
Final
sürüm
version
tanımlanması
Evrimsel
geliştirme-Prototip
Geliştirme
başlama
bitiş
Gereksinimlerin
edinmesi ve arındırma
hızlı
Mühendis
tasarım
ürünü
Prototip
Yeni prototipin
tanımlanması
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