... konulu sunumlar: "PLANLAMA Yazılım geliştirme sürecinin ilk aşaması, planlama aşamasıdır. Başarılı bir proje geliştirebilmek için projenin tüm resminin çıkarılması gerekmektedir."— Sunum transkripti:
1 PLANLAMAYazılım geliştirme sürecinin ilk aşaması, planlama aşamasıdır.Başarılı bir proje geliştirebilmek için projenin tüm resminin çıkarılması gerekmektedir.Bu resim, proje planlama çalışmaları sonucunda üretilir. Bu çalışmalar, bir inşaata başlamadan yapılan çalışmalara benzer.İnşaat terminolojisinde kullanılan, statik proje, mimari proje, avam proje, elektrik projesi gibi projelerin tümünde yapılan işlemlerin yazılım için eşdeğer olanları, yazılım mühendisliğinde, proje planlama aşamasında yapılır.
2 PLANLAMA Bütün projenin gidişatını etkileyebilecek önemli bir evredir. Proje planlama evresi süresince yapılması gereken işlerin neler olduğuProblemi tanımlamanın önemiFizibilite raporlarının türleriFizibilite raporunun nasıl hazırlanacağıKaynakların planlanmasıbu başlık altıda incelenecektir.
3 Planlama Aşamasının Önemi Bu evrede eldeki projenin neden gerekli olduğu, ne kadar sürede, ne kadar maliyetle tamamlanacağı, yeni sistemin getirilerinin neler olacağı gibi konular ele alınır.Planlama evresinin çeşitli aşamalarında proje onaydan geçer ve planlamanın bitişiyle son bir onay verilerek projenin analiz evresine geçilir.Planlama evresi aynı zamanda projeye devam edilip edilmeyeceğine karar verilen evredir.Bazı projeler bu evrede iptal edilebilir ya da kapsamı daha geniş daha dar hale getirilerek uygulamaya yeni-den konulabilir
4 Planlama Aşamasında Yapılacak İşlemler Problemin TanımlanmasıFizibilite Raporlarının HazırlanmasıProje Zaman Çizelgesinin HazırlanmasıProjede Çalışacak Personelin Zamana Bağlı Olarak BelirlemesiProje kaynaklarının tanımlanmasıProjenin Başlatılması
5 Problemin Tanımlanması Problemin tanımlanması aşamasında, yeni bir sistem geliştirmenin nedenleri tartışılır.Gerçekten böyle yeni bir sisteme gereksinim var mı?Eğer varsa, bunun nedenleri nelerdir.Proje Yönetim Kurulu ve sistem analistlerin birlikte yapacağı bir toplantıyla sistemin gerekliliği tartışılır.Problemin tanımlanması aşamasında yapılacak bir diğer iş, yeni sistemin yararlarını, amaçlarını ve kapasitesini sıralamaktır
6 ÖRNEK(Mobil hastane bilişim sistemi problemin tanımlanması. Gelişen teknolojiyle birlikte sağlık alanında yapılan yeniliklerde ve rakipleri içerisinde elektronik ortama geçiş alanında geri kalınmıştır.Randevu sistemi yetersiz kalmıştır. Hastanemiz, hastalara ulaşma konusunda geleneksel yolları kullanmaya devam etmektedir.Yapılan hasta anketleri olumsuz sonuçlar göstermektedir Hasta takibi konusunda var olan sistemin kayda değer ve hastaneyi rahatlatıcı bir faydası bulunmamaktadır.Sistem mobil teknolojiyi desteklemekte fakat kullanılmamaktadırGerçekleştirilecek olan mobil hastane projesi ile müşteri memnuniyetinin arttırılması, yıllar içinde kar oranlarında gözle görülür artış olması ve rekabet alanında avantaj kazanılması hedeflenmektedir.
7 Mobil hastane projesi için hedeflenenler Hasta için kolay, hızlı ve zahmetsiz randevu alabilme olanakları sunulacaktır, gereksiz zaman kaybı önlenecek ve hastanemiz mevcut rakiplerimize karşı avantaj sağlayacaktır.Hasta takibi kolaylaşacak. kontrolleri, ilaç kullanımı konusundaki aksaklıklar ortadan kalkacak, bu da hastanın güvenini kazanmamızı sağlayacaktır. .Yenidoğan ünitesi için yapılan sistem sayesinde, hastanemizde doğan bebeklerin aşı zamanları kısa mesaj yoluyla ebeveynlere hatırlatılacak ve doğumdan itibaren takibi sürdürülecek.Böylece hastanemizde doğan bebeklerin her türlü hastalığı hastane tarafından kaydedilecektir.Randevu almış olan hastalar hastaneye girmeleri ile kısa mesaj yoluyla doğru kata ve odaya yönelmeleri için bilgilendirilecekler, böylece hasta memnuniyeti için önemli bir adım atılmış olacaktır.Her hafta kayıtlı hastalara bilgilendirme mesajları gönderilecek, böylece müşteri memnuniyeti sağlanacaktır
8 Yapılabilirlik (Fizibilite) Raporlarının Hazırlanması Fizibilite bir işin yapılmasından elde edilecek yararın o işin yapılması için harcanacak giderleri karşılayıp karşılamayacağının hesaplanmasıdır.Fizibilite, yani olabilirlik ya da yapılabilirlik denince akla ilk gelen parayı ilgilendiren finansal fizibilitedirAncak, finansal fizibilitenin yanı sıra farklı fizibiliteler de vardır.Bir bilişim projesi yürütülürken maliyet tabii ki önemlidir ancak, bilişim projesi insanlar için yapılmakta ve insanlar tarafından kullanılacağı için insan faktörünü inceleyen, toplum yapısını inceleyen fizibiliteler de hazırlanmalıdır
9 Yapılabilirlik (Fizibilite) Raporlarının Hazırlanması Bilişim sistemlerinin kurulumu için hazırlanması gereken fizibiliteler şunlardır:1. Kurumsal ve Kültürel Fizibilite2. Teknolojik Kaynak Fizibilitesi3. Yasal Fizibilite4. Finansal Fizibilite5. Zaman Fizibilitesi
10 Kurumsal ve Kültürel Fizibilite Bilişim sistemleri kurulup devreye girdiğinde, kuruluş içinde personel sayısı, personel yapısı ve işleyiş biçimleri de değişecektir.Örneğin bir hastane projesini, hastanede bulunan, doktorlar, hemşireler, hastabakıcılar, teknik ekip vs. kullanacaktır.Acaba, bu personelin bilgi ve beceri düzeyleri bu bilişim sistemini kullanmaya yeterli midir?Hastane personelinin dışında bir diğer kullanıcı tipi de hastalar ve hasta yakınlarıdır. Hastanenin genel hasta profıli nedir, böyle bir sistemi kullanabilirler mi?Unutulmamalıdır ki yeni bir bilişim sistemi kuralım, daha modern daha çağdaş ve teknolojik olalım derken, işletmeyi zor duruma düşürme olasılığımız her zaman mevcuttur.Bu aşamadaki amacımız da bu riskin büyüklüğünü ortaya çıkarmaktır.Kurumsal ve kaynak fizibilite çalışmaları çerçevesinde, işletmenin söz konusu bilişim sistemini kullanmaya kültürel ve kurumsal olarak hazır olup olmadığı incelenerek belirtilir. Bu kısım bir paragraf ile bir klasör arasında değişecek kadar esnektir
11 Teknolojik Fizibilite Bir projenin mevcut teknoloji çerçevesinde yapılıp yapılamayacağını belirten rapordur.Bu raporda mevcut ülke koşulları, teknolojinin sınırları, mevcut donanım yazılım seçenekleri değerlendirilir.
12 Yasal FizibiliteYapılan teknolojik değişimin ülke yasalarına uygun olup olmadığı, elektronik ortamda yapılan işlemlerin yasalar önünde manuel olarak yapılanlara eşdeğer olup olmadığı araştırılmalıdır.
13 Finansal FizibiliteYeni yazılımın maliyeti ile getirilerini ortaya çıkartıp tahmin ederek sistemin mali açıdan uygun olup olmadığının belirlenmesidir.Bunun için tüm maliyetler ve tüm getiriler ayrı ayrı tablolar halinde ortaya konur ve beş yıllık bir kestirim yapılarak projenin uygulamaya konduğundan itibaren ne kadar yarar, ne kadar gidere mal olacağı hesaplanır.Gider , gelir çalışmaları yapılır.
14 Finansal FizibiliteGiderler Geliştirme giderleri ve sürekli giderler olarak iki türlüdür.Geliştirme giderleri sıfırıncı yıl giderleri olarak da adlandırılır.Henüz proje bitmemiş analiz ve tasarım aşamalarındayken geliştirme giderleri ortaya çıkar.Örneğin OGS sistemini ele alırsak, projenin planlanması, ne yapılacağı, nerede nasıl yapılacağına karar verilmesi, bilgisayar sistemlerinin alınması, kabloların döşenmesi gibi faaliyetler esnasında oluşan giderler geliştirme giderleridir.Henüz sistem çalışmamaktadır ve gelir elde edilmemektedir.
15 Geliştirme Giderleri Geliştirme giderlerine örnek olarak: Maaşlar, ücretler,Donanım giderleriYazılım lisans ücretleriDanışmanlık ücretleriPersonel eğitim giderleriDestek personeli giderleri
16 Sürekli GiderlerSürekli giderler sistem kurulum aşaması tamamlanıp devreye girdikten sonra oluşan ve her yıl düzenli olarak ortaya çıkan giderlerdir.Örneğin OGS sisteminde köprü ve otoyollarda sistem kurulduktan sonra oluşan personel, bakım, elektrik gibi giderler bu sınıfa girer.Elektrik, İnternet bağlantı ücreti, programlama desteği, Maaş ve ücretler, sarf malzemeleri, bakım onarım, yükseltmeler sürekli giderlerdir.
17 Soyut giderlerBir diğer gider kalemi de soyut giderler olarak ele alınabilir.Projenin türüne göre sürekli veya geliştirme giderleri olarak ele alınabilir.Soyut giderlere örnek olarak:Personel moral düşüşüÜretim kaybıKayıp müşteri ve satış verilebilir.
18 GelirlerSistem kurulum aşamasından sonra gelirler ortaya çıkar.Gelirler soyut ve somut olarak ikiye ayrılır. Somut gelirler parasal değere kolay dönüştürülen gelirlerdir.Otomasyon sayesinde personel tasarrufuPersonel sayısının artmamasıHatadan kaynaklanan üretim, satış kayıplarının azalmasıDepolama giderlerinde azalışYazışma maliyetlerinin düşüşü.
19 Gelirler Soyut gelirler Hizmet kalitesinin artması Müşteri memnuniyetinin artmasıPiyasaya ayak uydurma ve rekabet gücünde artış.
21 Zaman PlanlamasıSistem analistinin zaman planlamasında kullanabileceği araç, yöntem ve yaklaşımlar bu başlıkta incelenecektir.Zaman planlaması kurulacak sistemin ne kadar sürede tamamlanacağı, hangi işin ne zaman başlayıp ne zaman biteceğinin ortaya konmasıdır.Hangi faaliyetin ne kadar süreceği, faaliyetler arasındaki ilişki, faaliyetin ertelenip ertelenemeyeceği de yürütücünün bilmesi, gereken konulardır.
22 Zaman PlanlamasıProje planlamanın özelliklerini şöyle listeleyebiliriz: İyi bir proje zaman planlaması,1. Bir faaliyetin diğer faaliyetlerle olan ve projenin bütünüyle olan ilişkisini gösterir.2. Her bir faaliyetin kendisinden önce ve sonra gelen faaliyet ya da faaliyetleri net olarak bildirir.3. Her bir faaliyet için gerçekçi süre ve maliyet hesabını mümkün kılar.4. Projenin tıkanacağı yerleri belirterek işgücü, zaman ve para gibi unsurları en etkin bir şekilde kullanmamızı sağlar.
23 Zaman PlanlamasıProjenin zaman planlaması için atılması gereken adımlarsa şunlardır:1. Her bir faaliyet için görevleri, alt görevleri belirleyin. 2. Belirlenen her bir faaliyet için zaman parametrelerini hesaplayın. Gerekirse her bir faaliyetin ayrı ayrı maliyetini belirleyin (tahmin edin).3. Hangi faaliyetin, hangi faaliyete bağlı olduğunu, hangisinin önce hangisinin sonra geleceğini belirleyin. 4. Zaman diyagramını çizin. Zaman diyagramı olarak genelde iki ayrı şema kullanılır. Bir tanesi GANNT diğeri PERT / CPM (Project Evaluation and Review Technique/Critical Path Method) olarak anılır.
24 GANNT şemasıGANNT şeması Gannt diyagramı, Henry Gannt ( ) tarafından geliştirilmiş, faaliyetleri ve zamanı, bar şeklinde gösteren bir çizelgedir.Hazırlanması ve anlaşılması kolay bir zaman çizelgesidir. özellikle, proje yürütülürken, zamanın ne kadar ilerisinde ya da gerisinde olduğumuzu çok net olarak gösterir.Bir sonraki slaytta örnek bir GANNT zaman çizelgesi görülmektedir
26 PERT / CPMKritik yol, ağ içindeki, işin tamamlanması için tahmin edilen en uzun süreli yoldur. Bu yol üzerindeki her gecikme sistemin gerçekleştirilmesini erteler.CPM/PERT'te işler oklarla gösterilir ve bir projenin tamamlanması için gereken olası en kısa süre hesaplanır.CPM/PERT özellikle geniş faaliyet ağı olan büyük geliştirme projelerinde yararlı olur.PERT ve CPM tekniklerinin temel farkı; PERT'in her faaliyet için tahmini süreler belirlemesine karşın, CPM tekniğinin faaliyet sürelerini kesin olarak kabul etmesidir.3 hafta9 hafta3 hafta
27 PROJE KAYNAKLARIBir yazılım projesi planlanırken, projede kullanılacak kaynaklar dikkatlice ele alınmalıdır. Proje kaynakları yandaki gibi üç başlıkta ele alınabilir. Planlama, bu kaynakların tanımlarını yapar ve zaman kullanımı, görev süreleri, edinilme zamanlarını planlar.
28 Yazılım KaynaklarıGünümüzde, yazılım projelerinin geliştirilmesinde kullanılan araç ve yöntemler büyük ölçekte otomatik hale getirilmiş ve bilgisayar destekli olarak kullanılmaktadır.Bilgisayar destekli bu araçlar, Bilgisayar Destekli Tasarım (BDT) ya da Bilgisayar Destekli Mühendislik (BDM-CASE) araçları olarak bilinmektedir. (Select Solution Factory, Visible Analiyst, Silverrun, Dataworks, IBM Rational, FED-CASE)
29 Yazılım Kaynaklarıİş Sistemleri Planlama Araçları: İş sistemleri planlama araçları, kurumlardaki iş akış yapısının üst modelinin üretilmesinde kullanılmaktadır. Bilgi akışı, bilgi yapısı, iş birimlerindeki tıkanıklıklar bu araçlar kanalıyla ortaya çıkarılır.Proje Yönetim Araçları: Proje yöneticisi tarafından, projede yapılan işlerin izlenmesi, kaynak ataması, proje iş yapısının üretilmesi, gözlenen değerlerin işlenmesi türündeki işlerin yapılmasını sağlayan araçlardır.Çözümleme ve Tasarım Araçları: Sistem yazılım kullanıcı yordamları, metin düzenleyiciler, derleyiciler, hata ayıklayıcılar, nesne kökenli programlama araçları, görsel programlama platformları türündeki programlama araçları yazılım geliştirmede kullanılması kaçınılmaz araçlardır.
30 Yazılım KaynaklarıProgramlama Araçları: Doğruluk, bilginin hatasız olması ile özdeştir. Büyük bir veri yığınıyla uğraşıldığında, genelde kayıt ve hesaplama hataları ortaya çıkar. Bu gibi durumlarda, doğruluk özelliği daha fazla önem kazanır.Sınama Araçları: Kapsam çözümleyiciler, sınama verisi üreticiler, otomatik sınama yordamları, yazılımın doğrulama ve geçerleme işlemlerinde kullanılmaktadır.Prototipleme ve Benzetim Araçları: Bu araçları temel olarak, geliştirmenin erken aşamalarında kullanıcıya, sonuç ürünün çalışması ile ilgili fikir vermek ve yönlendirmek amacıyla kullanılmaktadır. Basit ekran oluşturma işlevi görevlerinden, gerçek zamanlı sistemler için zaman ve süreç benzetimi (uçak simulatörleri gibi) yapanlara kadar geniş bir yelpazeye yayılmışlardır.
31 Yazılım KaynaklarıBakım Araçları: Program bakımını kolaylaştıran, programın anlaşılmasına yönelik olarak kullanılan tersine mühendislik ya da yeniden mühendislik araçları bakım araçlarına örnek olarak verilebilir. Bu araçlar, verilen bir kaynak kodundan, program şemalarının üretilmesi, program veri yapısının ortaya çıkarılması gibi işlevleri yerine getirirler.Destek Araçları: İşletim sistemleri, belge işleme sistemleri, ağ yazılımları, elektronik posta ve ortam yönetim araçları, bu araçlara örnek olarak verilebilir.
32 İnsan KaynaklarıBir yazılım projesinde yer alacak kişilerin olası görev tanımları aşağıda verilmektedir:Yazılım Destek ElemanıSistem TasarımcıDonanım Destek ElemanıProgramcıProje YöneticisiEğitim Ekip LideriSistem YöneticisiKalite UzmanıEğitmenYazılım Ekip LideriVeri Tabanı YöneticisiDonanım Ekip LideriDenetleyiciWeb TasarımcısıKalite Sağlama YöneticisiDonanım MühendisiÇağrı Merkezi ElemanıProje SekreteriBilgisayar Ağ UzmanıSistem Çözümleyici
33 Donanım KaynaklarıGünümüzde donanım sistemleri giderek açık sistem mimarisine dönüşmektedir. Geçmişteki marka bağımlılığı giderek ortadan kalkmaktadır. Yazılım projelerinde kullanılacak donanım kaynakları aşağıdaki gibi sınıflandırılabilir.