30 Ocak 2017 Pazartesi

Hangi popüler siteler hangi platformlarda çalışıyor?

Aşağıda bulunan tabloda Dünya'da en çok bilinen ve en çok kullanılan web sitelerinin temelde hangi teknolojileri kullandıkları listelenmiştir.

Kaynak: http://www.comentum.com/php-vs-asp.net-comparison.html

26 Ocak 2017 Perşembe

Yazılımlarınızı satarak yada Yazılım İşi Alarak Para Kazanın

Freelancer çalışan insanlar; herhangi bir yere bağlı olmadan genellikle internetten aldıkları işleri belirlenen bir sürede ve fiyatta  yaparak gelir elde eden kişilerdir. İş bulma kanallarından en önemlisi ise bu için geliştirilmiş web siteleridir. Bu sitelerden en önemlileri hakkında bilgiler aşağıda verilmiştir.

 1-) Mevcut Yazılımınızı Kodları ile Beraber Satarak Gelir Elde Edin


Yazılımlarınızı yada tasarımlarınızı (ürünlerinizin çok kapsamlı olmasına gerek yok) CodeCanyon isimli sitede açacağınız bir markete ücretsiz olarak ekleyip istediğiniz fiyattan (isterseniz 2 $ istersenizde 50$) satabilirsiniz. Bunun için CodeCanyon sitesine kolayca kayıt olup, Become a Author dedikten sonra aşağıdaki videoyu izleyerek uygulamanızı merkete ekleyebilirsiniz. Sonrasında satılan ürünlerinize göre gelir elde edebilirsiniz. (En çok kazananların ayda 20.000$ kazandığını söylenmektedir.)


2-) Yazılım İşi Alara Gelir Eldeedin

FreeLancer
Dünya'daki en büyük (12 milyondan fazla kullanıcısı bulunan) iş alma ve iş verme sitesi olan FreeLancer üzerinden de yazılım işi verebilir yada yazılım işi alabilirsiniz. On Milyonlarca dolarlık yazılım projesinin bulunduğu siteye kayıt olduktan sonra bilgi birikimizi ve yazılım becerinizi sisteme girerek sahip olduğunuz beçerilerinize göre işler alabilir (yapamayacağınız işlere talip olmayın) ve yaptığınız işlere göre gelir elde edebilirsiniz. Sitenin ana ekranları Türkçe dil desteği barındırsa da, alacağınız işler ile ilgili olarak yazışmanız gerekeceği için İngilizce bilginizin olması gerekmektedir. Türkiye'den yazılım projesi verenlerinde yer aldığı site üzerinden oldukça büyük mikrarlarda gelir elde etmeniz mümkün.( Hintliler ve Pakistanlılar ciddi fiyat kırıyorlar). Dünya'daki yazılım tirentlerini ve yazılım projeleri hakkında bilgi sahibi olmak için bile kullanılabilecek bir alternatif olan FreeLancer sitesi, yazılım ile ilgilenenlerin bilmesi gereken bir web sitesi olarak görülmektedir.


Aynı fikir ile oluşturulmuş başka bir web sitesi:https://www.toptal.com/

Benzer bir içeriğe sahip bir başka iş alma sitesi https://www.upwork.com/i/how-it-works/client/

3-) Yazılımları Test Ederek Gelir Elde Edin

TestBirds

TestBirds sitesi; website testti yada mobil app testti yapabileceğiniz bir web uygulamasıdır. TestBirds sitesi kullanılarak gelen testleri (işleri) belirlenen zaman içerisinde yaparak ücret kazanmak mümkün (test ağırlığına ve zorluğuna göre ücret değişmektedir.) Yapılan testlerin kabulüne göre en az 5 Euro kazanılmakta. Uygulama içerisinde hata bulursanızda ek ücret olarak hesabınıza yansıtılmaktadır. (10 Euro mimimum para çekme limiti.) Çekme isteği verildikten sonra kazandığınız tutar direk olarak banka hesabınıza yansımakta.



Bu site kullanılarak aylık 100 Euro gibi bir ücret kazanılabilir. Ayrıca yazılım testleri yapılarak kazanç elde etmek için kullanılacak çok sayıda alternatif web uygulamasıda bulunmaktadır.

https://www.usertesting.com/ (Test başı kazanılacak tutar 10-15 Euro Testlerin tamamlanma süresi 45-60 dakika, sistem tarafından küçük bir sınava tabi tutulduktan sonra para kazanmaya başlıyorsunuz.)

https://www.userlytics.com/tester-signup (Test başı ücret; 10$ ile 100$ arası. Sistemde bulduğunuz her ilave hata için ek üçretler kazanabilirsiniz.)

https://www.userlytics.com/tester-signup (Aylık 200$ kadar ücret kazanabileceğiniz başka bir test plantformu)

(Mobil uygulamaları veya web sayfalarını test ederek use caseler tamamlayarak para kazanabileceğiniz bir başka sistem aylık 100$ kazanabilirsiniz.)

(Her bir test için 10$ kazanabileceğiniz bir sistem. Mobil uygulamaların testti için geliştirilmiş bir yapıya sahip. Her bir test için 10$ kazanabilirsiniz testlerin yapılış süresi 45-60 dakika  arasında değişmektedir.)


4-)Tasarımlarınızı Satarak Gelir Elde Edin

https://99designs.com/ sitesine ücretsiz kayıt olarak yaptığınız tasarımları burada satışa çıkarabilir yada gelen tasarım işlerini alarak gelir elde edebilirsiniz.


5-)Diğer Alternatifler


Yukarıdaki pekçok alternatifi hatta daha fazlasını bünyesinde bulunduran başka bir web sitesi alternatifi. Ödeme için paybal hesabı yurtdışından açılmalıdır. https://www.fiverr.com/


Evden herhangi bir iş yerine gitmeden para kazanabileceğiniz bu siteler ile ilgili eklemelerimiz devam edecektir.


 


Uzaktaki Bir Bilgisayarı Kontrol Etme Yazılımı

TightVNC'nin server versiyon kurulumu yapıldıktan sonra, daha önceden TightVNC'nin client versiyonu kurulan uzaktaki bir bilgisayara bağlanabilirsiniz. O bilgisayarın masaüstünü görebilir, uzaktaki bilgisayarın mouse ve klavyesini kontrol edebilirsiniz. TightVNC; hem kişisel hem de ticari kullanım için uygundur. Ücretsiz bir yazılımdır. Yazılımın kaynak kodu mevcuttur. TightVNC'yi bilgisayar yönetimi, teknik destek, eğitim vb diğer pek çok amaç için kullanılabilir. Farklı işletim sistemleri barındıran bilgisayarlara da bağlanabilme özelliği bulunmaktadır. Yazılımın web adresi http://tightvnc.com/

Bu amaçla kullanılabilecek bir başka alternatifte TeamView programıdır. O programıda https://www.teamviewer.com/en/ sitesinden indirebilirsiniz.

Scribus

Scribus, farklı bir text editör arayanların tercihi olabilecek bir text layout dizayn programıdır. Özellikle Linux kullananların bildiği bu yazılımını, Windows kullananlar da indirebilir. Açık kaynak kodlu olan ve pek çok farklı formatı destekleyen bu yazılım ile ilgili detaylı bilgi almak için https://www.scribus.net/sitesini ziyaret edebilirsiniz.

Video Editleme Programı

VSDC ücretsiz bir video editleme programıdır. Ücretsiz olarak http://www.videosoftdev.com/free-video-editor sitesinden indirilip kullanılabilir. Basit ve kolay bir kullanımına sahiptir.

Xmind ile Profesyonel Çizelgeler Oluşturun

Xmind aklınızdaki düşüncelerin çizimlere dönüştürülmesini sağlayan oldukça kapsamlı bir araçtır. XMind organizasyon şeması oluşturmasının yanı sıra, mantık şemaları, grant chart oluşturmaya da yarayan bir araçtır. Bu aracı ücretsiz olarak http://www.xmind.net/ sitesinden indirebilirsiniz. Sürükle bırak yaklaşımı ile çok çeşitli görsel semaların oluşumu için kullanılabilecek güzel ve yararlı bir yazılım.

X-icon ile Icon Oluşturma

Oldukça kolay bir kullanıma sahip olan X-icon sayesinde uygulamalarınızda kullanacağınız iconları kolayca oluşturabilirsiniz. İsterseniz farklı uzantılardaki resim dosyalarını sisteme yükleyerek icon dosyalarına dönüştürebilirsiniz. Dört adımdan oluşan basit ve sade bir uygulama olan X-icon web uygulamasına http://www.xiconeditor.com/ sitesinden erişebilirsiniz. Oluşturduğunuz icon dosyalarını Export ederek kendi bilgisayarınıza kayıt edebilirsiniz.

Inkscape

Inkscape ücretsiz olarak kullanabileceğiniz vektör temelli çalışan açık kaynak kodlu bir çizim aracıdır. Profesyönel bir araç olan Inkscape ile pek çok farklı alanda çizimler oluşturabilirsiniz. Inkscape ile yapılabilecek çalışmalara örnek vermek gerekirse; illüstrasyonlar, simgeler, logolar, diyagramlar, haritalar ve web grafikleri oluşturulabilirsiniz. Inkscape programını https://inkscape.org/en/ isimli web sitesinden indirebilirsiniz. Yazılımın işletim sistemleri için farklı indirme seçenekleri bulunmaktadır.

25 Ocak 2017 Çarşamba

HackerCan

Türk yazılımcılar tarafından geliştirilmiş yerli bir kodlama eğitim platformu olan HackerCan; özellikle kodlamaya yeni başlayacak kullanıcıların kodlama öğrenmesi için geliştirilmiş kolay bir arayüze sahip bir web uygulamasıdır. 150 bölümlük Hackercan ile kodlama eğitimini tamamlayan her öğrenci 'hackercan kodlama eğitimi tamamlama sertifikası'da veren web uygulamasına erişim için http://www.hackercan.com/ sitesini siyaret edebilirsiniz. Site aynı zamanda yazılım geliştirme, materyal tasarımı, sosyal medya, SEO, içerik geliştirme, analist, tercüman ve uluslararası pazarlama uzmanlarınıa ihtiyaç duymaktadır. Bu alanda çalışacak kişilerin ekiblerine katılması içinde kendi web siteleri üzerinden açık davet yapmıştır.

EvoUtility

EvoUtility kodlama bilgisine gerek olmadan, veritabanı uygulamaları geliştirebilmenizi sağlayan açık kaynaklı bir uygulamadır. EvoUtility'nin sahip olduğu basit UI sayesinde veri tabanı içeren uygulamalar geliştirebilirsiniz. Sitenin web adresi http://www.evolutility.org/ dir. Farklı diller için geliştirilmiş farklı özelliklerde veritabanı içeren ürünler bulunmaktadır. Örnek olması açısından EvoUtility kullanılarak geliştirilmiş Adres defreti uygulamasına bakabilirsiniz. http://www.evolutility.org/demo/dev_Localization.aspx?LNG=TR



Codeanywhere

Cross Platoform olan ve  bulut üzerinde çalışan bir IDE olarak kendini tanıtan Codeanywhere uygulamasına https://codeanywhere.com/ sitesinden erişebilirsiniz. Bireysel kullanımlar için ücretsiz olan uygulamanın özelliklerini listeleyecek olursak; ilk olarak sade ve gözü yormayan text editörünü söylememiz gerekir.Codeanywhere uygulaması FTP yada SFTP ile direk sunucudaki dosyalarınıza bağlanan bir yapıya sahiptir. Command kodlarınızı terminal üzerinden göndermenize de olanak sağlar. Özellikle Php ile kod geliştirenlerin tercih ettiği codeanywhere uygulaması ile ilgili nasıl websitesi geliştirileceğini öğrenmek için aşağıdaki videoyu izleyebilirsiniz. Video dili İngilizcedir.



HTTP2 Nedir?

HTTP2 yeni gelişen ve henüz alt yapısı tam olarak oturmayan bir teknoloji olsada web sitelerinin erişim hızını %45 oranında arttırdığı söylenen bir teknoloji olarak karşımıza çıkmakta.
Bu gelişen teknoloji ile ilgili bilgilere www.spdycheck.org sitesinden erişebilir aynı zamanda hangi web sitelerinin bu teknolojiyi kullanmaya başladığınıda görebilirsiniz.

Kablosuz Ağ İzleme Aracı

Kablosuz ağınıza bağlı olan kişileri listelemek ve istenmeyen kullanıcıların olup olmadığına bakmak için kullanılabilecek güzel bir araç www.whoisonmywifi.com . 1.5 Milyon kişinin kullandığı bu yazılım haricinde Microsoft network monitor yazılımıda bu amaçlı olarak kullanılabilir.

dbdesigner


Web tabanlı bir araç olan dbdesigner araçı SQL kodu yazmadan veri tabanı şeması( Database diyagram ) oluşturmanızı sağlayan bir web uygulamasıdır. Türkçe dil desteğide buluanan araçta ücretsiz olarak 2 veri tabanı modeli (30 tane db tablosu destekleyen) oluşturulabilir.

Uygulamanın web adresi : https://dbdesigner.net/
sitesidir. Siteye kayıt yapmadan Guest User olarak girilip kolayca istediğimiz özelliklere sahip dbSeması oluşturulabilirsiniz. Ayrıca site kullanılarak database tabloları oluşturulabilir ve bu tablolar arasındaki ilişkileri belirleyebilirsiniz. Site UML diyagram oluşturur gibi veri tabanı tabloları oluşturmamıza imkan vermektedir. Db tasarımı bittikten sonra bu tasarımı kolayca istediğimiz veri tabanı scriptlerine dönüştürüp o veri tabanını otomatik olarak oluşturabiliriz. DbDesigner; PostgreSql, SqLite, MySql, MsSql ve Oracle veri tabanlarını desteklemektedir.

db Forge Studio


db Forge Studio; veri tabanı oluşturmak için geliştirilmiş ve  veri tabanını yönetmek için oldukca fazla özelliğe sahip güçlü bir IDE'dir. Hem Microsoft SQL server hemde MySql için geliştirilmiş araçlara sahiptir. Bu araçlar haricinde aynı zamanda Oracle, Postgre Sql içinde geliştirilmiş araçları vardır. db Forge Studio aracı ücretsiz olarak https://www.devart.com/dbforge/sql/studio/ sitesinden indirilebilir.


Eğitim Videoları (My Sql için)
 
  


Yazılım Proje Riskleri ve Risk Azaltma Stratejileri

Risk Analizi

Belirlenen risklerin sayısal değerlere dönüştürülmesi işlemidir. Riskleri sayısal değerler olarak ifade edilebilir hale getirmek için şu yöntemler kullanılır:
Riskleri niceliksel büyüklükler itibariyle düşük, orta, yüksek gibi istenen sayıda ölçeklendirerek, bu ölçeklerin her birine sayısal değerler vermek.
Olasılık teorisini kullanarak matematiksel tekniklerden ve benzetişim tekniklerinden yararlanmak suretiyle sayısal değerleri ortaya çıkarmak.

Her bir riskin olasılığı ve ciddiliği değerlendirmelidir.
Olasılık çok düşük, düşük, orta, yüksek veya çok yüksek olabilir.
Riskin etkisi dağıtıcı, ciddi, tahammül edilebilir ve önemsiz olabilir.


Risk Planlaması


Riskin varsayımı ve bu riskin yönetimi  için strateji geliştirilmesi.
Riski önleme stratejileri:
Riskin oluşma ihtimali azaltılır.
Minimalleştirme stratejileri:
Riskin projeye veya ürüne etkisi azaltılır.
Olasılık planları:
Risk oluşmuşsa, bu riskle ilgili olasılık planları geliştirilir.
Riske karşı yapılan planlama dört adımdan oluşur;
    Riskleri ortadan kaldırmaya/azaltmaya yönelik planlama,
    Risk planının yürütülmesi,
    Proje sonuçlarının değerlendirilmesi,
    Alınan önlemler ile proje sonuçlarının belgelenmesi.

Risk Tablosu

Risk tablosunda bulunması gereken temel başlıklar;
Riskin açıklaması.
Projeye etkisi (düşük, orta, yüksek)
Riskin gerçekleşme olasılığı (düşük orta, yüksek)
Alınabilecek önlemler.
Risk sahibi.
Durum (açık, kapandı, değişiklik yok, artıyor, azalıyor vb)

Pratik bir faydası olması açısından biraz daha somutlaştırarak risk tablosunda bulunması gereken temel başlıkları da listeleyelim.


Daha detaylı bilgi tutmak isteyenler aşağıdakiler dahil pek çok alanı ekleyebilirler.
Riski ortaya çıkaran kişi
Riskin ortaya çıkma tarihi
Riskin olası gerçekleşme tarihi
Son güncellenme tarihi
Riskin kimlik numarası (ID)
Sınıflandırma bilgisi (teknik, ticari, hukuki vb)

Etki ve gerçekleşme olasılığı için birden ona ya da yüze kadar bile bir ölçek kullanılabilir. Ancak bu derecede ölçebilecek yetkinliğiniz varsa kullanılmalıdır. Üçlü (düşük, orta, yüksek) ölçek büyük ölçüde ihtiyacınızı karşılayacak, anlaşılması ve anlatılması kolay olacaktır.


Risk Azaltma
Öngörülen ve sayısal değerler olarak ifade edilen risklere karşı ne gibi önlemlerin alınmasının uygun olacağının değerlendirilmesi ve bu önlemlerin alınmasıdır.

Projenin koşulları ve risklerin durumu göz önüne alınarak;
Projenin yönünü değiştirerek riski yok etmek,
Riskin etkilerini sürekli izlemek ve kontrol altında tutmak,
Riski projedeki diğer paydaşlarla paylaşmak,
Riski oluşturan etmenlerle ilgili bilgileri arttırmak için bu konularda araştırma yapmak.

Belirtilen bu durumlarda hangisinin veya hangilerinin uygun olduğu konusunda değerlendirme yapılarak, her bir risk başlığı için uygun önlemler alınmaktadır. Alınan önlemlerden sonra elde edilen sonuçlara göre, risk yönetim süreci yeniden tekrar edilmelidir.


Risk Yönetimi Araç ve Teknikleri

Risk yönetiminde kullanılan araç ve teknikler:
Fikir yaratma araçları;
Uzmanlarla görüşme,
Anket düzenleme,
Grup içi fikir jimnastiği

Eşgüdüm araçları,
Planların gözden geçirilmesi,
Teknik belirtimleri okuma,
Ekip toplantıları.

İnsan yönetimi araçları
Liderlik,
Ekip oluşturma becerileri,
Zaman yönetimi,
İletişim becerileri.
Karar Verme Araçları
Olasılık kavramları,
Yaşam döngüsü maliyet analizleri,
Uzman yazılımlar,
Planlama araçları
Gant ve Pert çizgesi,
Kritik yol yöntemi (CPM),

Risk Yönetimi

Risk yönetimi, ürünün düşünce aşamasından başlayarak müşteriye bir ürün olarak sunulabilmesine kadar tüm aşamaları kapsayan bir süreçtir.

Risk yönetimi hızlı kararlar ve faaliyetlerle sürekli olarak risklerin belirlendiği, hangi risklerin öncelikle çözümlenmesi gerektiğinin değerlendirildiği, risklerle başa çıkmak için stratejiler ve planların geliştirilerek uygulandığı bir sistematiktir.

Belirsizlikleri ve belirsizliğin yaratacağı olumsuz etkileri daha kabul edilebilir düzeye indirgemeyi hedefleyen bir disiplindir.
Risklerin probleme ya da tehlikeye dönüşmeden belirlenmesini ve en aza indirgenmesi, faaliyetlerinin planlanması ve yürütülmesini kapsar. Risk yönetiminin temel hedefi, karar verme mekanizmaları için riskleri görünür ve ölçülebilir hale getirmek, sübjektifliği azaltmaktır.

Proje yöneticisi, risk unsuru taşıyan bir durumla karşı karşıya kaldığında, bu durumun proje üzerinde nasıl ve ne zaman etki yaratacağını görebilmelidir.
Risk yönetimi, proje yöneticisinin daha iyi karar alabilmesini sağlayan bir araçtır.

Risk yönetiminin iki ana unsuru;
Riskin değerlendirilmesi,
Riske karşı planlama yapılmasıdır.

Risk Değerlendirmesi

Ortaya konulan risk kaynaklarının değerlendirilmesi yapılmaktadır.

Risklerin değerlendirilmesinde uzmanların görüşlerinden, benzer sistemlerle ilgili deneyimlerden, önceki projelerden alınan derslerden ve teknoloji değerlendirme raporlarından yararlanılmakta ve yapılan planlar gözden geçirilmektedir.

Risk değerlendirmesi üç adımdan oluşur;
Risklerin tanımlanması,
Analiz edilmesi,
Önceliklerin belirlenmesi,

Risk Değerlendirmesi: Olasılık ve Etki Analizi
Riskin iki temel özelliği vardır. Bunlar;
Belirli bir sonuca ulaşamama olasılığı ya da istenmeyen bir olayın oluşma olasılığı. (Possibility of Occurence – Meydana Gelme İhtimali)
Riskin oluşması durumunda, bu durumların sonuca etkisinden oluşur. (Severity of Loss – Kaybın Büyüklüğü)
Riskler gerçekleşme olasılığı ve risklerin gerçekleşmesi durumunda ortaya çıkacak sonuçların etkileri göz önünde bulundurularak ölçülür.







Risklerin Tanımlanması


Riskin tanımlanabilmesi için, amaçların belirlenmiş olması gerekir.

Amaçlar belirlendikten sonra amaçlara ulaşılmasını engelleyebilecek riskler tanımlanır, değerlendirilir ve alınacak tedbirler kararlaştırılır.

Ürün riskleri:
Projeye ilişkin olarak proje planını tehdit edebilecek özel karakteristik özelliklerin tanımlanması gerekir.

Genel riskler:
Her yazılım projesi için potansiyel tehditlerdir:
Projenin büyüklüğü, müşterinin karakteri, geliştirme ortamı, kullanılacak teknoloji.

Projede risklerle ilgili alınacak önlemler büyük ölçüde risk tanımlarına dayandırılacağı için, risk tanımlama sırasında mümkün olan en az hata ile çalışılmasına dikkat edilmektedir. Risklerin onları yaratan kaynaklar bakımından sınıflandırılarak tanımlanması, hataları en aza indirebilmek bakımından yararlı bir teknik olarak uygulanmaktadır.

Risklerin tanımlanmasında aşağıda verilen soru örnekleri yardımcı olabilir:
Amaca ulaşma yolunda neler yanlış gidebilir?
Sorun nedir?
Hangi tür işlemler başarısız olmamıza neden olabilir?
Zayıf olduğumuz alanlar neler?
Hangi varlıkları daha çok korumalıyız?
Faaliyetlerimiz hangi durum ya da olaylar karşısında aksayabilir?
En kritik bilgi kaynaklarımız neler?
En fazla harcama yaptığımız alanlar hangileri?
Hangi faaliyet ya da süreçler daha karmaşık?
Cezai yaptırımlara maruz kaldığımız alanlar hangileri?

Risklerin Tanımlanması:İş Hayatından Örnekler
Amaç: Kurum içersindeki iş sürekliliğinin sağlanması.
Risk: Aynı dönemde bir çok personelin yıllık izin kullanması nedeniyle işlerin aksaması.
Kontrol: İşlerin yoğun olduğu dönemlerde izinlerin belli bir süre önce talep edilmesi ve buna göre bir takvim çerçevesinde izin kullandırılması.
Sonuç: Müşteri memnuniyeti.

Risk Nedir?


Riskler, yazılım projesinin başarılı bir şekilde tamamlanmasını etkileyecek  potansiyel problemlerdir.

PM-BOK (Project Management Body of Knowledge) riski, projenin hedefleri üzerinde olumlu veya olumsuz bir etki meydana getirebilecek  belirsiz bir durum veya koşul olarak tanımlamaktadır.

Riskler kesin olmayanı ve potansiyel kayıpları kapsar.

Risk analizi ve yönetimi yazılım ekibinin gelişim sürecinde kesin olmayanı anlamasına yardımcı olur.
Risk, kurumun stratejik, mali ve operasyonel hedeflerini gerçekleştirmesini engelleyecek, her türlü olayın gerçekleşme olasılığıdır.

Risk Kategorileri


Zamanlama riskleri; yetersiz zaman ayrılması durumunda karşılaşılan risklerdir.

Maliyet riskleri; maliyetin iyi hesaplanamaması durumunda karşılaşılan risklerdir.

Zamanlama ve maliyet risklerini azaltmak için mutlaka proje planının iyileştirilmesi gerekir.

Proje Riskleri:
Proje planını tehdit eder.
Gerçekleşirse zamanlama ileri tarihlere sarkar ve maliyet artar.
Örnekler: bütçe riskleri, zaman riskleri, personel riskleri, vb.

Teknik riskler:
Üretilen yazılımın kalitesini ve zamanında bitirilmesini etkiler.
Bu riskin gerçekleşmesi durumunda yazılımın uygulanması zorlaşır veya imkansızlaşır.
Analiz, tasarım, uygulama ve bakım aşamaları ile ilgili risklerdir.
Örnek: “Son teknoloji ürünler” yüksek teknik riske sahiptir.
Bug'lar var mı? Dokümantasyonu tam mı? Yarın da bu teknoloji hayatta olacak mı?


İşletme riskleri:
Geliştirilen ürününün gereksinimleri karşılayamaması…

Tahmin edilemeyen riskler; düzen değişiklikleri, doğal afetler, çevresel faktörler,

Tahmin edilebilen (fakat belirsiz) riskler; pazar değişiklikleri, enflasyon, döviz kuru değişiklikleri, vergiler v.b.

Pazar riskleri: Ürüne talep olur mu?
Örn: Tıraş bıçağı, tıraş makinesi

Satış riskleri: Pazarlama ekibi ürünü nasıl satacağını biliyor mu?

Bu tür riskler MIS konularıdır.

Risk Stratejileri

Duyarlı Stratejiler
Yaygın olarak kullanılan bir stratejidir. Genellikle risk gerçekleşince çaresine bakılır.
Proje takımı problemleri çözmek için kullanılacak kaynakları belirler.
Proje takımı risk bir problem teşkil edene kadar bir şey yapmaz.

Proaktif Stratejiler
Riskleri daha gerçeklemeden önlemeye çalışmak…
Risk yönetimi teknik işten çok önce başlar, riskler tanımlanır ve önem derecesine göre öncelik verilir.
Proje takımı risklerden korunmak için bir plan oluşturur.

RİSK YÖNETİMİ

Yazılım projeleri risk içerir mi?
Proje planları çoğu zaman tahminlerle oluşturulur. Yapılan bu tahminler her zaman belirsizlik içerir. Bu belirsizlikler de potansiyel olarak risk oluştururlar.
Riskler, proje gidişini ters yönde değiştirebilir.
Risk Yönetimi bu durumların tanımlanması, değerlendirilmesini önlemek ya da etkisini azaltmak yönünde gerekli denetimlerin uygulanması ve alternatiflerin planlanmasını içerir.
Risk yönetimi, proje yönetimi konusunda en çok bahsedilen ve en az uygulanan alanların herhalde başında gelir. Risk yönetimi zor olduğundan veya uygulanması çok maliyetli ya da zaman alıcı olmasından değil, belki de kavramın kendisinin ürkütücü olmasından kaynaklanıyordur. İşin bir başka kültürel ve proje organizasyonlarına ait boyutu da var sanırım.
Proje risklerinin belirlenmesi, analiz edilmesi, çözümlerin uygulanmasına yönelik süreçler tanımlanır. Risk tanımlama, risk boyutu belirleme, riske karşı planlama ve risk azaltıcı denetim yöntemleri uygulanır.

24 Ocak 2017 Salı

Algoritmik Olmayan Emek Kestirim Yöntemleri

Algoritmik olmayan emek kestirim yöntemleri;
uzman kararı,
benzerlik ile kestirim ve
büyüklük verisi kullanarak kıyaslama’dır.


Uzman Kararı
Uzman kararı yöntemi, yazılım endüstrisinde emek kestirimi için en çok kullanılan yöntemdir.
Yıllardan beri proje yöneticileri kendi deneyimlerine güvenmişlerdir. Uzman kararında, pek çok uzman önerilen yazılımın uygulama alanı ve geliştirme tekniklerine göre proje emeğini tahmin etmektedir.

Yeni proje daha önce tamamlanan projelerden çok farklı değilse ve deneyimli kestirimciler mevcutsa, emek kestirimi için en uygun yöntem uzman kararıdır.
Ancak, kestirimde uzman kararını kullanmanın bazı zorlukları da vardır. Bu kişisel bir kestirim olacaktır. Her yeni proje için çok deneyimli kestirim yapabilecek kişi bulmak zordur. Sonuç ortaya çıkana kadar uzmanın görüşünü test etmenin hiçbir yolu yoktur ve bu çok geç olabilir. Eğer uzman yoksa, çok yanlış olacaktır.


Benzerlik ile Kestirim
Bu yöntemde, projelere ilişkin pek çok nitelik tanımlanır.
Bu nitelikler tamamlanmış projeler arasından yeni projeye en çok benzeyen projeleri belirlemek için kullanılır.
Yeni projenin emek kestirimi, yeni proje ile tamamlanmış projeler arasındaki farklılıklar dikkate alınarak belirlenir.
Benzerlik esaslı kestirim için, daha önce tamamlanmış benzer projelere ait geçmiş veriler gereklidir. Bu nedenle, bu kestirim yöntemi tamamlanmış projelere ait verileri tutan veri tabanlarına gereksinim duymaktadır.
Benzerlik esaslı kestirim, bütün proje seviyesinde veya alt sistem seviyesinde gerçekleştirilebilir. Bütün proje seviyesini esas alan kestirimler, sistemin tüm maliyet bileşenlerini dikkate alır. Diğer taraftan, alt sistem seviyesini esas alan kestirimler, yeni proje ile tamamlanmış projeler arasındaki benzerlikler ve farklılıkların daha detaylı bir değerlendirmesini sağlamaktadır.

Büyüklük Verisini Kullanarak Kıyaslama
Bu yöntem,  verimliliğin bir uygulama alanı ve büyüklük fonksiyonu olduğu düşüncesini temel almaktadır.
Aşağıda verilen formüle göre, büyüklük verisini kullanarak kıyaslama ile emeği hesaplamak çok basittir;
Emek Tahmini = Proje Büyüklüğü / Teslimat Oranı   

Sınıf Puanı (Class Points - CP)


Nesneye dayalı geliştirmede sınıf diyagramları, büyük ölçüde tasarım dokümanını temel alan niceliksel bilgilere sahip diyagramlardır.

Sınıf Puanı (Class Point), tasarım dokümanını temel alarak nesne-tabanlı yazılım ürünlerinin büyüklüğünü tahmin etmek için tasarlanmış bir yaklaşımdır. Özellikle, CP1 ve CP2 olarak adlandırılan iki ölçüm ortaya atılmaktadır. CP1 yazılım geliştirme sürecinin başında bir ön büyüklük tahmini yürütmek için kullanılmaktadır. Bu CP1, daha sonra geliştirilecek sistemle ilgili daha fazla bilgi elde edildiğinde CP2 uygulanarak iyileştirilir.
Sınıf diyagramları, geliştirilen sistemin mantıksal blokları olan sınıf hiyerarşini ve hedef sistemin yapısal işlevselliğini içerir.

Sınıf Puanı yaklaşımı, 1998’de ortaya atılmıştır. Bu yaklaşım,  sayısal hesaplamaya dayanarak bir sistemin iç niteliklerini temsil eden işlev puanı analiz yaklaşımını temel almaktadır.


CP1 ve CP2 olmak üzere iki ölçüm ortaya atılmıştır.


Kullanıcı Sınıflarının Belirlenmesi ve Sınıflandırılması
Tasarım dokümanı analiz edilirken 4 tür sistem bileşeni kullanılır:
Problem Alan Türü (Problem Domain Type – PDT),
İnsan Etkileşim Türü (Human Interaction Type – HIT),
Veri Yönetim Türü (Data Management Type),
Görev Yönetim Türü (Task Management Type – TMT).

Sınıfların Karmaşıklık Düzeylerinin Belirlenmesi
CP1 içinde her bir sınıfın karmaşıklık düzeyi iki ölçüt ile belirlenmektedir:
Dış Metotların Sayısı (Number of External Methods – NEM),
Servis İsteklerinin Sayısı (Number of Services Requested – NSR)
CP2 içinde, her bir sınıfın karmaşıklık düzeyini değerlendirmek üzere Niteliklerin Sayısı (Number Of Attributes – NOA) dikkate alınmaktadır.

Sınıf Puanı büyüklük kestirim süreci, FP yaklaşımındaki safhalara benzer olarak dört temel aşamada yapılandırılmıştır.

İlk adımda, kullanıcı sınıflarını belirlemek ve sınıflandırmak için tasarım dokümanı analiz edilir. Tasarım dokümanı analiz edilirken, Problem Alan Türü (Problem Domain Type – PDT), İnsan Etkileşim Türü (Human Interaction Type – HIT), Veri Yönetim Türü (Data Management Type), Görev Yönetim Türü (Task Management Type – TMT) olmak üzere dört tür sistem bileşeni kullanılır.

İkinci adımda, sınıflar içersindeki yerel metotlar üzerinden belirlenmiş olan her bir tanımlı sınıfa bir karmaşıklık düzeyi atanır. Bu OO sınıflar için uygun ölçümlerin kullanımı ile sağlanır.

NEM ölçüsü, genel olan yerel metotların sayısı ile verilen ve nesne-tabanlı bir sistemde tek bir sınıfın arayüz büyüklüğünü tahmin etmemize olanak sağlamaktadır.

NSR sistem bileşenlerinin ara bağlantıları için bir ölçüm sağlar. Bu ölçütte tek bir sınıf için geçerlidir ve diğer sınıflar için farklı servis isteklerinin sayısı ile belirlenmektedir.




Problem Alan Türü (Problem Domain Type – PDT),
İnsan Etkileşim Türü (Human Interaction Type – HIT),
Veri Yönetim Türü (Data Management Type),
Görev Yönetim Türü (Task Management Type – TMT).







Teknik Karmaşıklık Faktörünün (Technical Complexity Factor – TCF) Hesaplanması



Use-Case Puanı (Use-Case Points - UCP)

Use-Case Points (UCP) yaklaşımı, bir yazılım proje emek kestirim yöntemi olarak Karner tarafından ortaya atılmıştır.

Nesneye-tabanlı yazılım üretiminde, use-case’ler işlevsel gereksinimleri tanımlar.
Use-Case diyagramları, gereksinimlerin analiz edilmesi aşamasında belirlenmiş hedef sistemin işlevsel davranışlarını incelerler.

Use-Case Points, use-case sayısına dayanan bir yazılım emek kestirim metodudur ve ilk olarak 1993 yılında Gustav Karner tarafından geliştirilmiştir.
Bu yöntem İşlev Puanı Analizi (Function Point Analysis) ve Mark II İşlev Puanı Analizi (Mk II Function Point Analysis)’nin bir uzantısıdır ve bu yöntemler gibi aynı felsefeyi temel almaktadır. Nesneye-tabanlı yazılım üretiminde, use-case’ler işlevsel gereksinimleri tanımlar.

Use-Case Points ile, use-case’lerin aktörleri, senaryoları ile birçok teknik ve çevresel faktörlerü analiz ederek, emek kestirimi için bir büyüklük tahmini oluşturmuş oluyoruz.

Use-Case Puanı (UCP) sistemin use-case analizi ile elde edilebilir:
Use-case analizinin birinci adımı aktörlerin sınıflandırılmasıdır.
Use-case puanı, sistemin use-case analizinden sayılabilir. İlk adım, aktörleri basit, orta ve karmaşık tipte sınıflandırmaktır.

Basit tipte bir aktör, tanımlı bir Uygulama Programı Arayüzüne (Application Programming Interface - API) sahip başka bir sistemi temsil eder.

Orta tipte bir aktör, TCP/IP gibi bir protokol aracılığıyla haberleşen başka bir sistemi temsil eder.

Karmaşık tipte bir aktör ise, bir Web sayfası veya bir Grafik Kullanıcı Arayüzü (Graphical User Interface - GUI) aracılığıyla karşılıklı etkileşen bir kullanıcıyı temsil eder.

Her bir aktör tipine bir ağırlık faktörü atanmıştır.



 Her use-case, ikinci senaryo da dâhil, use-case açıklamasındaki işlemlerin sayısına bağlı olarak basit, orta veya karmaşık olarak tanımlanır.

Bir işlem ya tamamen gerçekleştirilmiş ya da hiç gerçekleştirilmemiş faaliyetler kümesidir. İşlem sayısını sayma, use-case adımlarını sayarak yapılabilir.

Düzeltilmemiş Aktör Ağırlığı ile Düzeltilmemiş Use-Case Ağırlığının toplanması sonucu Düzeltilmemiş Use-Case Puanı (Unadjusted Use-Case Points - UUCP) elde edilir.

Yazılım geliştiren takım teknik faktörleri değerlendirir ve etki derecesine her bir faktöre 0 ile 5 arasında bir karmaşıklık değeri atanır. 0 değeri o faktörün projede etkisinin olmadığı, 3 değeri orta derecede etkili olduğu, 5 değeri ise yüksek derecede etkili olduğu anlamına gelir.



Use-case puanı hesaplanırken, teknik faktörlerin yanında çevresel faktörlerinde göz önünde bulundurulması gerekir. Use-case puanı hesaplanırken, programcı motivasyonu, kullanım kolaylığı gibi işlevsel olmayan gereksinimleri ölçmek amacıyla çevresel faktörler çarpanı kullanılır. Yazılım geliştiren takım çevresel faktörleri değerlendirir ve her bir faktöre etki derecesine göre 0 ile 5 arasında bir etki değeri atar. 0 değeri o faktörün projede etkisinin olmadığı, 1 değeri yüksek derecede negatif etkili olduğu, 3 değeri orta derecede etkili olduğu, 5 değeri ise yüksek derecede pozitif etkili olduğu anlamına gelir.

Üretkenlik Faktörü, geçmiş projelerde harcanan adam-saat sayısının Use-Case Puanı (UCP) oranıdır. Gustav Karner, bir projedeki ortalama Üretkenlik Faktörü (ÜF) için 20 adam-saat önermektedir.






COCOMO (Constructive Costing Model)



COCOMO, Barry Boehm tarafından geliştirilmiş algoritmik bir yazılım maliyet kestirim yöntemidir.

Bu yöntem, geçmiş proje verileri ve mevcut proje özelliklerinden türetilen parametreler ile beraber temel bir regresyon formülü kullanır.

Yapılacak hesapların kapsamları açısından basit, orta ve detaylı olmak üzere üç değişik modelden oluşur. Ayrıca bu modellerde kullanılacak problemler, “organik, yarı ayrık ve gömülü sınıflar” altında toplanmıştır.

Gereken emeğin, program büyüklüğünün bir üssel değerine bağlı olması prensibi ve endüstriden toplanan bilgiler ışığı altında bir emek kestirim metodu olarak 1981’de Boehm tarafından COCOMO (Constructive Costing Model) geliştirilmiştir.

COCOMO göreceli olarak dosdoğru bir modeldir.

Yapılacak hesapların kapsamları açısından;  basit, orta ve detaylı olmak üzere üç değişik modelden oluşur.

Orijinal COCOMO modeli yaygın bir merak konusu uyandırdı.
Herkese açık bir modeldir. Bunun anlamı denklemlerin, varsayımların, tanımların herkese açık olmasıdır.
Orijinal COCOMO modeli 63 proje çalışmasına ve kestirme modelleri sıradüzeni temellerine dayanır.
COCOMO bir parametrik model örneğidir. Çünkü maliyet veya süre gibi bağımlı değişkenler kullanır.
COCOMO ile kestirim süreci, projenin tipinin saptanması ile başlar. Proje tiplerinin nasıl sınıflandırıldığını bir sonraki slaytta göreceğiz.


COCOMO - Proje Sınıfları

Ayrık Projeler;
Boyutları küçük,
Deneyimli personel tarafından gerçekleştirilmiş,
LAN üzerinde çalışan, insan kaynakları yönetim sistemi gibi projeler...

Yarı Ayrık Projeler:
Hem bilgi boyutu, hem donanım sürme boyutu olan projeler…

Gömülü Projeler:
Donanım sürmeyi hedefleyen projeler (pilotsuz uçağı süren yazılım - donanım kısıtları yüksek)


Ayrık projeler; küçük boyuttaki programcı takımlarının, iyi bildikleri bir ortamda uygulamalar geliştirmesidir. İletişim problemi azdır ve elemanlar çabucak işlerini halledebilecek durumdadırlar.

Yarı ayrık projelerde ise ekipte tecrübeli ve tecrübesiz elemanlar bulunabilir. İlgili sistemler konusunda deneyimleri sınırlı olabilir ve geliştirilen sistemin her şeyini bilmeyebilirler.

Gömülü projelerde ise geliştirilecek yazılım, sistemin donanım, kurallar, işletim süreçleri veya yazılım gibi diğer bileşenleri ile çok kuvvetli bağlantılar oluşturur. Gereksinim değişiklikleri ile problemleri halletmek olanaksızlaşmıştır. İhtiyaç belirtiminin geçerlilik irdelemesi çok pahalıdır. Elemanların her şeyi bilme olasılığı iyice azalmıştır.

COCOMO bu model ve proje sınıfı saptamalarından sonra ortaya çıkan formüllerle tahmin hesaplama yolunu önerir.

Basit COCOMO Modeli İçin Emek ve Süre Formülleri





Basit COCOMO modeli, küçük-orta boy projeler için hızlı kestirim yapmak amacıyla kullanılır.


Kullanılacak ayrıntı düzeyine göre Basit, Orta ve Detaylı olmak üzere üç temel model vardır. Basit COCOMO modeli, küçük-orta boy projeler için hızlı kestirim yapmak amacıyla kullanılır.

Avantajı: Hesap makinesi ile kolaylıkla hesaplanabilir.
Dezavantajı: Yazılım projesinin geliştirileceği ortam ve yazılımı geliştirecek ekibin özelliklerini dikkate almaz.

Orta COCOMO modeli sistemin (güvenilirlik, veri tabanı büyüklüğü, işletme ve kayıt sınırlandırmaları, personel özellikleri ve kullanılan yazılım araçları gibi) diğer özelliklerinin hesaba katılması amaçlanmıştır.

Orta COCOMO Modeli İçin Emek Formülleri


Belirli bir dizi özelliğin, proje açısından etkileri ayrı ayrı ağırlandırılarak katsayılar ortaya çıkarılır.
Bu faktörler, ilgili özellik için düşük (<1), nominal (1) veya yüksek (>1) olarak saptanırlar.

Katsayılar birbiri ile çarpıldığında Emek Ayarlama Faktörü (EAF) (Effort Adjustment Factor) bulunur. Bu katsayı 0.9 ile 1.4 arasında bir değer alır ve Tabloda gösterilen Orta COCOMO modeli formülleri kullanılarak emek hesaplaması sonuçlandırılır. Süre hesaplaması ise Basit COCOMO modelinde olduğu gibi yapılır.


Emek Ayarlama Faktörü için sözü geçen etkenleri dört grupta toplayarak, yandaki tabloda görüldüğü gibi sıralayabiliriz.

EAF (Emek Ayarlama Faktörü) orta ve detaylı seviyede kullanılır.

Detaylı COCOMO modeli projenin evrelerine bağlı olarak süreç içinde değişiklikleri hesaba katarak arada bir kestirim hesaplamasını önerir.

Bu modelde zamana bağlılık temel değişikliktir. Projenin farklı evrelerinde çaba yoğunluğu ve yapılacak işin karmaşıklığı değişecektir.

Detaylı COCOMO modeli, basit ve orta COCOMO modeline ek olarak iki özellik taşır. Aşama ile ilgili işgücü katsayıları: her aşama için (planlama, analiz, tasarım, geliştirme, test etme) farklı katsayılar, karmaşıklık belirler. Yazılım maliyet kestiriminde; Modül, Altsistem, Sistem sıra düzenini dikkate alır.

1981’de Boehm tarafından ortaya konan COCOMO modeli daha sonra geliştirilmiş ve COCOMO II adını almıştır.




COCOMO – Emek Ayarlama Faktörü

Ürün Özellikleri
RELY: Yazılımın güvenirliği.
DATA: Veritabanının büyüklüğü.
CPLX: Karmaşıklığı.

Bilgisayar Özellikleri
TIME: İşletim zamanı kısıtı.
STOR: Ana bellek kısıtı
VIRT: Bilgisayar platform değişim olasılığı. Örn; bellek ve disk kapasitesi artırımı, CPU upgrade…
TURN: Bilgisayar iş geri dönüş zamanı. Örn; hata düzeltme süresi.


Personel Özellikleri
ACAP: Analist yeteneği. Deneyim, birlikte çalışabilirlik.
AEXP: Uygulama deneyimi. Proje ekibinin ortalama tecrübesi.
PCAP: Programcı yeteneği.
VEXP: Bilgisayar platformu deneyimi. Proje ekibinin geliştirilecek platformu tanıma oranı.
LEXP: Programlama dili deneyimi.

Proje Özellikleri
MODP: Modern programlama teknikleri. Örn; Yapısal programlama, görsel programlama, yeniden kullanılabilirlik.
TOOL: Yazılım geliştirme araçları kullanımı. Örn; CASE araçları, metin düzenleyiciler, ortam yönetim araçları
SCED: Zaman kısıtı.


Ürün Özellikleri
RELY: Yazılımın güvenirliği.
DATA: Veritabanının büyüklüğü.
CPLX: Karmaşıklığı.

Bilgisayar Özellikleri
TIME: İşletim zamanı kısıtı.
STOR: Ana bellek kısıtı
VIRT: Bilgisayar platform değişim olasılığı. Örn; bellek ve disk kapasitesi artırımı, CPU upgrade…
TURN: Bilgisayar iş geri dönüş zamanı. Örn; hata düzeltme süresi.


Personel Özellikleri
ACAP: Analist yeteneği. Deneyim, birlikte çalışabilirlik.
AEXP: Uygulama deneyimi. Proje ekibinin ortalama tecrübesi.
PCAP: Programcı yeteneği.
VEXP: Bilgisayar platformu deneyimi. Proje ekibinin geliştirilecek platformu tanıma oranı.
LEXP: Programlama dili deneyimi.

Proje Özellikleri
MODP: Modern programlama teknikleri. Örn; Yapısal programlama, görsel programlama, yeniden kullanılabilirlik.
TOOL: Yazılım geliştirme araçları kullanımı. Örn; CASE araçları, metin düzenleyiciler, ortam yönetim araçları
SCED: Zaman kısıtı.


Emek = 3.0 x (KLOC)1.12 x EAF

Emek = 3.0 x (7816)1.12  x 1,23 = 36,9 adam-ay

Takvim= 2.5 x Emek 0,38= 2.5 x 36,90,38 = 9,84 ay (Geliştirme Zamanı)

N = Emek  / Geliştirme Zamanı › (N: ortalama personel sayısı)

N = 36,9 / 9,84 = 3,75 – 4 kişi

Algoritmik Kestirim Yöntemleri



Bu yöntemler, emek kestirimi için matematiksel modeller (matematiksel formüller) kullanılırlar.

Bu tür modellerde geçmişe ait veriler, kod satır sayısı, fonksiyon sayısı vb. istatistikler ile yazılım projelerine doğrudan etki eden çevresel ve teknik faktörler girdi olarak verilir. Model belirli  bir doğruluk aralığında sonuç üretir.

Bu tür modellerin içinde bulunan ortama göre bazı parametrelerinin "kalibre" edilmesi gerekmektedir.

Emek Kestirimi



Emek (işgücü) genelde adam-saat, adam-gün ya da adam-ay cinsinden ölçülür.

10 adam-ay:
10 kişi 1 ay
1 kişi 10 ay
2 kişi 5 ay anlamına gelebilir.

Emek kestirimi, bir yazılım projesini geliştirmek için kaç kişi ve ne kadar zaman gerektiğini tahmin etmek için kullanılmaktadır.  Bir yazılım projesinde emek yatırımı, son yıllarda proje yönetim süreci içindeki en önemli analiz değişkenlerinden biridir. Yazılım projeleri başlatılırken bu değişken değerinin bilinmesi, yazılım yöneticilerinin gelecek faaliyetleri gerektiği gibi planlamasını sağlar.  Emek kestiriminde iyi sonuçlar elde etmek için önceki projeleri dikkate almak önemlidir.





Emek kestirim yöntemleri algoritmik ve algoritmik olmayan kestirim yöntemleri olmak üzere iki şekilde sınıflandırılmaktadır.

Algoritmik kestirim yöntemleri
COCOMO (Constructive Costing Model)
Use-Case Points
Class Points
UML Points

Algoritmik olmayan kestirim yöntemleri
Uzman kararı,
Benzerlik ile kestirim,
Büyüklük verisi kullanarak kıyaslama.


Yazılım emek kestiriminde kullanılan yöntemler, algoritmik ve algoritmik olmayan kestirim yöntemleri olarak sınıflandırılmaktadır.

COSMIC Tam İşlev Puanı




Uluslararası Ortak Yazılım Ölçüm Birliği, işlevsel yazılım büyüklük ölçümüne yönelik yeni bir metot geliştirmek amacıyla 1998’de kurulmuştur. IFPUG, Mark II ve NESMA gibi mevcut yazılım büyüklük kestirim yöntemlerinin en iyi karakteristik özellikleri alınarak, yeni bir işlev büyüklük ölçüm yöntemi olarak COSMIC FFP’yi Kasım 1999’da yayınlamıştır.


COSMIC - Common Software Measurement International Consortium

Yeni bir işlevsel büyüklük ölçüm yöntemi olarak COSMIC FFP Kasım 1999’da yayınlamıştır.

COSMIC FFP yöntemi, geliştirici ve son kullanıcı bakış açıları olmak üzere birçok ölçüm bakış açısına sahiptir.

Yazılımın işlevsel büyüklüğü, dört İşlevsel Tabanlı Bileşeni temel alarak ölçülmektedir.  İşlevsel Tabanlı Bileşenler; Giriş (Entry), Çıkış (Exit), Okuma (Read) ve Yazma (Write) dır.

Nesma İşlev Puanı



Netherlands Software Metrics Users Association – NESMA, 1989.

NESMA, Avrupa’daki en büyük FPA kullanıcı grubudur.

İşlev Puanı Analizinin uygulanması ile ilgili tanımlar ve ölçüm kılavuzunun ilk versiyonu 1990’da yayınlanmıştır.

Bu yöntem, IFPUG FPA yönteminin ilkelerini temel almaktadır. IFPUG FPA’a benzer olarak işlevselliğin büyüklüğü için, Dış Giriş, Dış Çıkış, Dış Sorgu, İç Mantıksal Dosya ve Dış Arayüz Dosyası gibi işlev türlerini kullanmaktadır.



1989’da, Hollanda Yazılım Ölçüt Kullanıcıları Birliği (Netherlands Software Metrics Users Association - NESMA), Hollanda İşlev Puanı Kullanıcıları Grubu (Netherlands Function Point Users Group - NEFPUG) olarak kuruldu.

Mark II İşlev Puanı



Charles Symons’a göre;
Bir uygulamanın bileşenlerinin belirlenmesi Albrecht’in FPA’sında zordur,
Albrecht yaklaşımı iç karmaşıklıkla ilgili hiçbir düşünceye sahip değildir,
On dört ayarlama faktörü yeterli değildir.

1980’lerde İngiltere’de MKII İşlev Puanı geliştirildi.

MK II, kullanıcıya sağlanan işlevselliğin değerinden çok işlevselliği üretmek için gerekli emeğe odaklamak için tasarlanmış bir yöntem.

MK II, uygulamayı mantıksal işlem gruplarına ayrıştırmaktadır. Symons mantıksal bir işlemi; “bilgi almak için bir gereksinim ya da kullanıcıyı ilgilendiren bir olay ile tetiklenen benzersiz bir girdi/işlem/çıktı birleşimi” olarak tanımlar.


Symons, Albrecht’in FPA yönteminde gördüğü bu eksiklikleri çözmek için 1980’lerde İngiltere’de MKII İşlev Puanını geliştirdi.

Düzeltilmemiş İşlev Puanı (Unadjusted Function Points - UFP), girdi, çıktı ve işlemlerin toplam sayılarının bir fonksiyonudur.

IFPUG İşlev Puanı Analizi


IFPUG - International Function Point Users Group (1984)
IFPUG uygulama yazılımı geliştirme ve bakım faaliyetlerinin yönetiminde FPA’nın kullanımını teşvik etmektedir.
Resmi IFPUG Ölçüm Uygulama Kılavuzları sırasıyla 1986, 1988, 1990, 1994, 1999, 2004 ve 2009’da yayınlanmıştır.
IFPUG FPA en yaygın olarak kullanılan FSM yöntemidir.

Orjinal FPA yöntemini sürdürmek için 1984’te Uluslar Arası İşlev Puanı Kullanıcıları Grubu (International Function Point Users Group - IFPUG) oluşturuldu. IFPUG yazılımın işlevselliğini ölçmek için, FPA yönteminin kullanımını teşvik eden, kar amacı olmayan ve üyeleri tarafından idare edilen bir örgüttür


FPA’yı yazılım büyüklüğü için standart metodoloji olarak kabul etmektedir.


İşlev Puanı (Function Points)


Bu yaklaşım, verimliliğin üretilen işlev puanına göre adam-ay olarak belirlenmesini öngörür.

Eğer proje ile ilgili girdi çıktı gibi özellikler tahmin edilebiliyorsa, bunlar kullanılarak geliştirilecek sisteme ait bir İşlev Puanı (Function Points) hesabı yapılabilir ve sonuçlar Satır Sayısına (LOC) çevrilebilir. Bu satır sayısından maliyet, emek ve süre tahmini yapılabilir.
İşlevsellik doğrudan ölçülemeyeceğine göre, bir yazılım projesinde işlevselliğe etkisi olan birçok etken bir arada incelenerek ürüne olan yansımaları ağırlıklandırılır. Sonuçta bir rakam ortaya çıkar ve bu rakam değişik projeleri göreceli olarak değerlendirmede yararlı olur.


UFP = Dış Girdiler x W(1) + Dış Çıktılar x W(2) + Dış Sorgular x W(3) + 
            İç Dosyalar  x W(4) + Dış Arayüz Dosyaları x W(5)

İşlev Puanında sistemin işlevselliği 5 ayrı bileşenle incelenmektedir.

1. Dış Girdiler: Veri giriş ekranları, mantıksal dâhili dosyalar.
2. Dış Çıktılar: Ekran çıktıları, raporlar.
3. Dış Sorgular: Kullanıcı isteği doğrultusunda alınan hızlı veri çıkışları.
4. İç Dosyaları: Dâhili kullanıcı verileri, saklanan veriler.
5. Dış Arayüz Dosyaları: Başka bir sistemle paylaşım.

Her bir bileşenin zorluk derecesi basit, orta ve karmaşık gibi Tablo’da verilen rakamsal değerlere bağlı olarak ölçülebilmektedir. Bu ölçülen değerler toplanarak Düzeltilmemiş İşlev Puanı’nı (Unadjusted Function Points - UFPs) oluşturmaktadır.

14 Genel Sistem Özelliğine göre sistemin beklenilen uygulama zorluğu için ilave bir teknik karmaşıklık faktörü hesaplanır.

0: hiç yok ya da etkisiz,
1: önemsiz etki,
2: az etkili ,
3:orta düzeyde etkili 
4: önemli düzeyde etkili,
5: güçlü etki





İşlev Puanı aşağıdaki formül ile hesaplanır:
FP = UFP x TCF

İşlev Puanı’nı, Satır Sayısına dönüştürmek için aşağıdaki formülden yararlanılır.
LOC = İşlev Puanı x  Programlama Dili LOC Katsayısı


Kan tahlili yapan bir laboratuarın aynı şehir içerisinde 5 şubesi vardır. Her şubede yaklaşık 10 adet veri giriş operatörü bulunmaktadır.
Sistem laboratuardaki tahlillerin fiyatlarını tutacaktır.
Hasta bilgileri kaydedilecektir.
Yeni tahliller eklenebilecek, güncelleme yapılabilecektir.
Tahlil sonuçları laboratuar yetkilisi tarafından onaylandıktan sonra görüntülenebilecektir.
İstenen laboratuar tahlillerinin tutarı hesaplanacak ve  faturası basılacaktır.
Sonuç raporları basılacaktır. Eğer müşterinin daha önceki kayıtları varsa rapor önceki sonuçları da içerecektir.
Müşteriler sisteme web üzerinden verilecek şifrelerle  bağlanarak tahlil no ile sonuçlarını öğrenebileceklerdir.
Sistemin kan analiz cihazıyla arayüzü olacak, sonuçlar direkt olarak cihazdan sisteme aktarılacaktır.
Sistem malzeme yönetimi yapacak, malzeme stok bilgilerini tutacaktır. Her laboratuar ana depodan haftalık malzeme isteği yapacaktır.  Laboratuarlardan birinde ana malzeme deposu yer alacak, depoya girişler  ve  birimlere çıkışlar kaydedilecektir. Her malzeme için kritik stok seviyesinin altına düşen  malzemeler için sistem uyarı verecek ve rapor yayınlayacaktır. Birim bazında aylık malzeme raporu yayınlanacaktır.
Laboratuarın ana sunucusu şubelerden birinde yer alacak ve herhangi bir arıza olduğunda sistem diğer şubedeki yedek sunucuya  bağlanacak ve oradan işleme kesintisiz devam edecektir. İletişim altyapısında leased line kullanılacaktır.
Sistemi geliştirecek ekip, Java konusunda ve analiz konularında orta deneyimdedir.  İşlevsellik konusunda çok fazla deneyimi yoktur.  Bir kaç benzer yönetim bilgi sistemi geliştirmiştir. CASE aracı kullanılacaktır.

Örnek Proje – Üst Düzey Sistem Mimarisi













İşlevsel Büyüklük Kestirim Yöntemleri


En fazla kullanılan diğer bir yazılım büyüklük ölçüm grubu, uzunluk niteliğinin aksine yazılımın işlevsellik niteliği ile ilgilidir.


İşlevsel Büyüklük Ölçümü (Functional Size Measurement - FSM), kullanıcıya teslim edilecek yazılımın işlevselliğini temel alır.

FSM, işleve göre karmaşıklığın ve büyüklüğün belirlenmesi ile ölçülmektedir.

Teknik Büyüklük Ölçütleri -  geliştirici bakış açısından…

İşlevsel Büyüklük Ölçütleri - kullanıcı bakış açısından…


İşlev Puanı (Function Points - FP),
IFPUG İşlev Puanı Analizi (IFPUG Function Points Analysis – IFPUG FPA),
Mark II İşlev Puanı (Mark II Function Points – MK II FP),
Nesma İşlev Puanı (Nesma Function Points),
Tam İşlev Puanı (Full Function Points – FFP),
COSMIC Tam İşlev Puanı (COSMIC Full Function Points – COSMIC FFP),
Nesne Puanı (Object Points),
Nesne-Tabanlı İşlev Puanı (Object-Oriented Function Points – OO FP),
Nesne-Tabanlı Yöntem İşlev Puanı (Object-Oriented Method Function Points – OOmFP),

İlk olarak İşlev Puanı (Function Points) ve İşlev Puan Analizi (Function Points Analysis - FPA) 1979 yılında IBM’in satır sayısına alternatif olarak yazılım büyüklük ölçümü için Allan Albrecht tarafından ortaya çıkartılmıştır. 1983 de ise, Allan Albrecht ve John Gaffney tarafından Yönetim Bilgi Sistemlerinin büyüklüğünü ölçmek için FSM yöntemi geliştirilmiştir. Daha sonra farklı kitleler tarafından orijinal FPA yöntemi üzerinde yapılan oynamalarla, aralarında ölçüm yöntemi farklı birçok FSM yöntemi geliştirilmiştir.

Teknik Büyüklük Kestirim Yöntemleri




Satır Sayısı (Lines of Code - LOC): Uygulamanın büyüklüğünü anlamak için bilgisayar programlarındaki kodların satırlarını sayma en geleneksel ve en yaygın şekilde kullanılan yazılım ölçümüdür.
Kolaylığı ve doğrudan ölçülebilirliği açısından en fazla kullanılan yazılım ölçme yöntemi, satır sayısıdır. Bir programın büyüklüğü denince ilk akla gelen kaç satırlık kaynak kodu ile üretildiğidir.
Satır Sayısı, kod içerisindeki satır sayısını temsil eder.

Kod satır sayısı kestiriminde, proje tahmin edilen alt birimlerine ayrıştırılır. Her bir alt birim için satır sayıları önerilir. Bu kestirimler yapılırken de en küçük, en olası ve en büyük ihtimaller belirlenip, bunlarla bir ortalama işlemi yapılır.

Satır sayısı kestirimi: (k+4o+b)/6 şeklinde hesaplanabilir.


Satır Sayısı (Lines of Code - LOC)

Tabi ki 1000 LOC değeri olan bir Java programı, 100 LOC değerine sahip bir Java programından 10 kat daha büyüktür. Fakat bu sayının içinde yorum satırları var mı? Yorum satırlarını dahil etmeli miyiz?  (Yorum Satırının Avantajı)
Deneyim ile kod oluşturumu (Aynı özellik farklı kod sayısı)
Programlaa dili farkı Assembler <> Visual Basic

Değişkenlerin tanımlanması ? LOC olarak sayılmalı mıdır?
Yorum satırları kodun bize ne yaptığını anlatması açısından önemlidir. Bu aynı zamanda koddaki hataların ayıklanması açısından işleri daha da kolaylaştırır ve diğer insanların programdaki kod parçalarının ne yaptığına dair bir fikir edinmelerini sağlar.

Satır Sayısı (Lines of Code - LOC)

İki başlıca LOC Kaynak Kod Satır Sayısı ölçüm çeşidi vardır. Bunlar;
Fiziksel LOC
Mantıksal LOC

Örnek 1:
for (i=0; i<100; ++i) printf ("hello"); /* How many lines of code is this? */

1 Fiziksel Kod Satırı
2 Mantıksal Kod Satırı (for ve printf ifadesi)
1 Yorum Satırı

Satır Sayısı (Lines of Code - LOC)

Örnek 2:
Programcıya göre ve/veya kodlama standartlarına göre Örnek 1’deki kod aşağıdaki şekilde de yazılabilir.

for (i=0; i<100; ++i)
 {
      printf("hello");
  } /* Now how many lines of code is this? */

4 Fiziksel Kod Satırı
2 Mantıksal Kod Satırı (for ve printf ifadesi)
1 Yorum Satırı

Yazılımda Ölçme

Yazılım ölçümünü (software metrics) bir yazılımın yada yazılım projesinin ölçebildiğimiz herhangi bir özelliği olarak tanımlayabiliriz.

Her yazılım projesinin temel hedefi, müşterinin ihtiyaçlarını karşılayan, öngörülmüş bütçe ile zamanında teslim edilen hatasız bir yazılım geliştirmektir.

Yazılımda ölçüm yöntemlerinin kullanılması, yazılım sektöründe gittikçe önem kazanır olmuştur.

Kurumlar üç ana amaçla yazılımda ölçümü gündemlerine almaktadırlar:
Yazılım projesini anlamak ve modellemek,
Yazılım projelerinin yönetilmesine yol göstermek,
Yazılım süreç geliştirme ve iyileştirme çalışmalarını yön vermek,
Ne yazık ki yazılım projelerinde bu üç koşulun bir arada sağlanması genelde mümkün olmamaktadır.

Yazılımın ölçülebilmesi, harcanılan zaman, emek, proje büyüklüğü ve kalite gibi faktörlerin belirlenmesine olanak sağlamaktadır.

Organizasyonlar, bu verilere dayanarak ileride alacakları projeler için kestirim yapabilme imkânı bulabileceklerdir.

Yazılım projelerinde kaliteyi arttırmak, her şeyden önce doğru ölçme yöntemlerine bağlıdır. Birden fazla kestirim yöntemi kullanılmalıdır.
Örnek olarak, ele alınan projedeki personel gereksiniminin tam olarak belirlenebilmesi için ürün büyüklüğü bilgisi gereklidir.

Beş Temel Yazılım Ölçütü

Büyüklük (Size),
Emek (Effort),
Maliyet (Cost),
Zaman (Duration),
Kalite (Quality).

Büyüklük; kodun satır sayısı.
Emek; proje kapsamında ayda kaç kişi çalışacak.
Maliyet; projenin ne kadara mal olacağı.
Zaman; proje kaç ayda tamamlanacak.
Kalite; projenin kalitesi tespit edilen hata sayısından ölçülebilir.


Yazılım Büyüklük Kestirim Yöntemleri

Yazılım büyüklük kestiriminde kullanılan yöntemler;
teknik büyüklük kestirim yöntemleri,
işlevsel büyüklük kestirim yöntemleri
 olarak sınıflandırılmıştır.

YAZILIM BÜYÜKLÜK ve EMEK KESTİRİMİ

Bu bölüm kapsamında, Yazılım Büyüklük ve Emek Kestirimi ile ilgili temel kavramları inceleyeceğiz. Bu bağlamda, önce yazılımda ölçme kavramından bahsedip, yazılım büyüklük ve emek kestirimine giriş yapacağız.

Yazılım geliştirme sürecinin başında, büyüklük, emek ve maliyet kestirimleri geliştiricilerin ve yöneticilerin karşılaştığı en önemli problemlerdir.

Yazılım proje yönetiminde çok önemli olan ölçme ve bu kavram çerçevesinde yapılanan kestirim yöntemleri aracılığı ile zaman ve işgücü gibi planlamaların yapılabilme gereği açıktır.

Bitcoin Hesap Açma Cex.io

Sahip olduğumuz yada sahip olacağımız Bitcoinleri yatırmak için bir hesaba ihtiyacınız olacaktır. Bu hesabı paranızı yatırdığımız bir banka hesabı olarak düşünebilirsiniz. Bitcoin hesabını ücretsiz olarak açmak için Cex.io isimli web sitesini kullanabilir. Yüzmilyonlarca dolarlık işlemin yapıldığı bu siteyi kullanarak bir Bitcoin hesabı açabilirsiniz.(ücretsiz olarak) Bu siteye kayıt yaptıktan sonra, web sitesin üst kısmında bulunan Finance (Hesap) menüsünden, Balace (Miktar) alt menüsünü seçelim.



Balance yazan menünün altındaki Crypto Balance bölümüne gelelim.(sayfanın aşağısında). Burada BTC (Bitcoin) yazısının sağında 2 adet buton bulunmaktadır. Bu buttonlar; Deposit (Bitcoin yatırma) Withdraw (Bitcoin çekme) işlemleri için kullanılmaktadır.



Deposit yazan butona tıkladığımızda karşımıza çıkan ekranda Bitcoin hesap numaranız görülmektedir. Bitcoin numaranız ekranın orta kısmında bulunan text kutusunda yazmaktadır (Harflerden ve rakamlardan oluşan yazı). Örnek olarak aşağıdaki resme bakabilirsiniz.



Kredi Kartı ile Bitcoin Alma

Cex.io isimli  web sitesi üzerinden hesap açtıktan sonra, Kredi kartınızla (yada sanal kredi kartınızla) kolayca Bitcoin alabilirsiniz. Bu iş için Kredi kartınızın onaylanıp sisteme eklenmesi gerekmektedir. Kredi kartınızın nasıl sisteme ekleneceği ile ilgili bilgileri öğrenmek için aşağıdaki videoyu ve sitenin kredi kartı ekleme ile ilgili hazırladığı dökümanı kullanabilirsiniz.






Kredi Kartı Ekleme Rehberi

https://support.cex.io/hc/en-us/articles/215994438

Sadece sanal kredi kartınızı sisteme girerekte Bitcoin satın alabilirsiniz. Sanal kredi kartının onaylanması için sanal kredi kartınızla birlikte bir resim çektirmeniz (bilgisayar ekranı ile sizin yüzünüzün görüldüğü) ve bu resmi sisteme yüklemeniz gerekmektedir.

Site ayrıca anlık mesajlaşma ile kullanıcıların sorunlarını gidermeye çalışmaktadır. Bunun için Cex.io isimli  sitenin alt kısmında bulunan Help menüsüde kullanılabilir.



Buy Bitcoins with Credit Card

23 Ocak 2017 Pazartesi

Bitcoin Satın Alma

Sahip olduğumuz yada sahip olacağımız Bitcoinleri yatırmak için bir hesaba ihtiyacınız olacaktır. Bu hesabı paranızı yatırdığımız bir banka hesabı olarak düşünebilirsiniz. Bitcoin hesabını ücretsiz olarak açmak için Cex.io isimli web sitesini kullanabilir. Yüzmilyonlarca dolarlık işlemin yapıldığı bu siteyi kullanarak bir Bitcoin hesabı açabilirsiniz.(ücretsiz olarak) Bu siteye kayıt yaptıktan sonra, web sitesin üst kısmında bulunan Finance (Hesap) menüsünden, Balace (Miktar) alt menüsünü seçelim.



Balance yazan menünün altındaki Crypto Balance bölümüne gelelim.(sayfanın aşağısında). Burada BTC (Bitcoin) yazısının sağında 2 adet buton bulunmaktadır. Bu buttonlar; Deposit (Bitcoin yatırma) Withdraw (Bitcoin çekme) işlemleri için kullanılmaktadır.



Deposit yazan butona tıkladığımızda karşımıza çıkan ekranda Bitcoin hesap numaranız görülmektedir. Bitcoin numaranız ekranın orta kısmında bulunan text kutusunda yazmaktadır (Harflerden ve rakamlardan oluşan yazı). Örnek olarak aşağıdaki resme bakabilirsiniz.



Kredi Kartı ile Bitcoin Alma

Cex.io isimli  web sitesi üzerinden hesap açtıktan sonra, Kredi kartınızla (yada sanal kredi kartınızla) kolayca Bitcoin alabilirsiniz. Bu iş için Kredi kartınızın onaylanıp sisteme eklenmesi gerekmektedir. Kredi kartınızın nasıl sisteme ekleneceği ile ilgili bilgileri öğrenmek için aşağıdaki videoyu ve sitenin kredi kartı ekleme ile ilgili hazırladığı dökümanı kullanabilirsiniz.






Kredi Kartı Ekleme Rehberi

https://support.cex.io/hc/en-us/articles/215994438

Sadece sanal kredi kartınızı sisteme girerekte Bitcoin satın alabilirsiniz. Sanal kredi kartının onaylanması için sanal kredi kartınızla birlikte bir resim çektirmeniz (bilgisayar ekranı ile sizin yüzünüzün görüldüğü) ve bu resmi sisteme yüklemeniz gerekmektedir.

Site ayrıca anlık mesajlaşma ile kullanıcıların sorunlarını gidermeye çalışmaktadır. Bunun için Cex.io isimli  sitenin alt kısmında bulunan Help menüsüde kullanılabilir.



Buy Bitcoins with Credit Card

Step Wise Adımları


1. Adım: Proje Kapsam ve Hedeflerini Belirleme


1.1. Hedefler ve bu hedeflerin karşılanmasına yönelik ölçütler belirlenir.
Başarılı olup olmadığımızı nasıl bileceğiz?
1.2. Proje otoritesi oluşturulur.
Patron kim?
1.3. Kurumsal paydaşlar belirlenir.
Projeye kim dahil olacak?
Kurumsal paydaşlar proje ile alakalı herkes olabilir. Kurumsal paydaşlar uygulamanın son kullanıcıları olabileceği gibi, proje geliştirme ekibi içersinde yer alan herhangi bir kimse de olabilir.
1.4. Kurumsal paydaş analizi ışığında hedefler düzenlenir.
Kurumsal paydaşları kazanmak için yapılması gerekenler nelerdir?
Bu adım paydaşların projeye bağlılığını sağlamak için gereklidir.
1.5. Tüm taraflar arasında iletişim yöntemleri oluşturulur.
Temas halinde nasıl olacağız?
Özellikle büyük projelerde, proje içersindeki koordinasyonu sağlamak için bir iletişim planı oluşturulur. Proje geliştirme ekibi, projenin gidişatı ile ilgili olarak kiminle temas halinde olacağını mutlaka bilmelidir.

2. Adım: Proje Altyapısını Belirleme


2.1. Proje ile stratejik planlama arasında ilişki oluşturulur.
Proje neden istenmektedir?

2.2. Kurulum standartları ile prosedürleri belirlenir.
Hangi standartları takip etmemiz gerekir?

2.3. Proje ekibi belirlenir.
Kim nerede görevlendirilecek?

Hem proje hedeflerini belirleyen hem de projenin geliştirilmesinden sorumlu olan kişi örgütsel çevre hakkında çok az şey biliyor olabilir.


3. Adım: Proje Karakteristiklerinin Analiz Edilmesi

3.1. Proje hedef ya da ürün tabanlı olarak ayırt edilir.
Başarıya ulaşmanın birden fazla yolu var mı?
Bir ürün-tabanlı proje ile geliştiriciler, özellikleri açıkça tanımlanmış bir ürün yaratmak zorunda kalabilirler. Ancak nesne-tabanlı bir projede, bir sorunun çözümüne yönelik birden fazla seçenek tanımlanmıştır.
3.2. Diğer proje karakteristikleri analiz edilir.
Bu projeyi diğer projelerden ayıran fark nedir?
Geliştirilecek proje bir bilgi sistemi mi? bir gömülü sistem mi? bir gerçek zamanlı sistem mi? yoksa bir  multimedya uygulaması mı?
3.3. Yüksek-seviyeli proje riskleri belirlenir.
Proje süresince ne ters gidebilir?
Riski önlemek ne yapılabilir?
Yüksek seviyeli riskler belirlenirken, proje genel yaklaşımı bundan etkilenebilir. Proje gereksinimlerini daha iyi belirlemek üzere bir prototip modelin kullanımını içeren daha iteratif yaklaşımlar tercih edilmelidir. Bunun yanında daha büyük ve karmaşık projelere artımsal yaklaşımları kullanarak devam etmek iyi bir yol olabilir.

3.4. Uygulama ile ilgili kullanıcı gereksinimleri dikkate alınır.

3.5. Genel yaşam döngü yaklaşımı seçilir.
Waterfall Yaşam Döngü Modeli?
Iterative-and-Incremental Yaşam Döngü Modeli?
Rapid-Prototypes Yaşam Döngü Modeli?

3.6. Kaynak kestirimlerinin tamamı gözden geçirilir.
Proje sürecinde meydana gelebilecek artışın maliyeti nedir?


4. Adım: Proje İşlemleri ve Ürünlerini Belirleme

4.1. Proje ürünleri belirlenir ve tanımlanır.
Ne üretmek zorundayız?



4. Adım: Proje İşlemleri ve Ürünlerini Belirleme


4.2. Genel ürün akışı dokümante edilir.
Yanda verilmiş olan ürün akış diyagramı, tamamlanmak zorunda olan ürünlerin sırasını göstermektedir. Bu akış diyagramı sayesinde etkili bir çalışma yöntemi tanımlanmış olur.



4.3. Ürün örnekleri gerçekleştirilir.

Ürün analiz yapısı ve ürün akış diyagramı kullanımı ile yazılım modülleri gibi genel ürünler tanımlanmış olacaktır.

Bu yazılım modülleri içersinde belirli modülleri tanımlamak mümkündür.
Örneğin: A modülü, B modülü …

4.4. İdeal işlem ağı üretilir.
Ürün akış diyagramı içindeki her bir ürünü yaratmak için gereksinim duyulan işlemler belirlenir.
Tek bir ürünü yaratmak için bir den fazla işleme gereksinim duyulabilir.




4.5. İhtiyaç duyulan adım ve kontrol noktaları gözden geçirilir.

Kaliteyi kontrol etmek için proje içinde bazı noktalar vardır.

"In the example we have decided to check that all the module designs are compatible with one another before continuing. Note that the benefit of reducing wasted work at a later stage when incompatibilities lead to products being reworked, has to be balanced against the delay caused by the check-point. The start of coding of modules A, B and C all have to wait for the completion of the design of all the modules A,  B and C. With no check-point, module A could be coded as soon as the design of module A had been done without having to wait for B and C."


5. Adım: Her Bir İşlem İçin Emek Kestirimi


5.1. Yukarıdan-aşağı kestirim yöntemi uygulanır.
Proje için gerekli süre ile emek arasında dikkatli bir ayrım yapılması gerekir.
Emek bir görevi tamamlamak için harcanan gerekli adam-saat veya adam-gün vb. sayıdır.
Gerekli süre, projenin başlangıcı ile bitişi arasında geçen takvim zamanıdır.

5.2. Kontrol edilebilir işlemler yaratmak için plan gözden geçirilerek düzenlenir.


6. Adım: İşlem Risklerinin Belirlenmesi

Risk oluşması durumunda, bu para kaybına mı yoksa zaman kaybına mı neden olacak? sorularına yanıt aramak amacıyla riskler sayısal olarak belirlenir.

Aslında işlemler için süre ve emek tahminlerinde bulunmak zor olabilir. Bir işlem için bir üretilen tahminler, olaylar yaklaşık olarak yansıtan değerlerdir. Varsayımlar üzerine yapılan tahminler her zaman doğru olmayabilir.

Örneğin; riski azaltmak için işlem durdurulabilir.

Riskin çok yüksek görüldüğü durumlarda, riski azaltmak için özel olarak tasarlanmış yeni işlemleri uygulamayı denemeliyiz.

6.1. İşlem-tabanlı riskler nicel olarak belirlenir.
Risk oluşması durumunda, bunun projeye zararı ne olur?
Risk oluşma ihtimali nedir?

6.2. Risk azaltma planı yapılır.
Riski azaltmak için ne yapılması gerekir?
Beklenmedik bir anda risk oluşursa ne yapılacak?

6.3. Riskler dikkate alınarak tahmin yapılır ve planlar uyarlanır.
Eğitim, deneme çalışmaları, bilgi toplama gibi diğer işlemlerle ilgili riskleri azaltmak için yeni işlemler eklenir.

7. Adım: Kaynakların Tahsisi

7.1. Kaynaklar belirlenir ve tahsis edilir.

7.2. Kaynak kısıtları dikkate alınarak tahminler yapılır ve planlar düzenlenir.
Örneğin; sonraki bir tarihe kadar personelin müsait olmaması durumu.
Proje dışı faaliyetler…

Önceki planlamalardan yararlanılarak kaynaklar ve kaynak tipleri belirlenir.  Asıl amaç projenin verimli bir şekilde yürütülebilmesidir. Bu ancak tüm kaynaklar verimli bir şekilde kullanılabilirse gerçekleşir.

Başarı, projede geçen kaynakların doğruluğuna bağlıdır. Kaynak planlama tekrarlamalı bir süreçtir. Projede kullanılan kaynakların optimize edilmesi, proje uygulamasının daha iyi işlemesine olanak tanır. Çeşitli kaynaklar vardır. Bunlar; araçlar, personel, tesis, para, etc. 
Kaynak kısıtlarının olduğu yerlerde, planlanan zamanda paralel çalışan tüm işlemleri başlatmak için yeterli personel yoksa, uygun kaynaklar mevcut olana kadar bazı işlemlerin başlatılması gecikebilir.



Çizelge oluşturmak ve raporlamak için Gantt şemaları gibi popüler programlar kullanılabilir.
Bir plan üretmek için gerekli olan temel bilgilere sahip olmalıyız. Planı sunmanın bir yolu Gantt şemalarını kullanmaktır. Kaynakların tahsis edilmesi aşamasında, Gantt şemalarından yararlanılabilir.



8. Adım: Planın Gözden Geçirilmesi

8.1. Proje planının kalitesi gözden geçirilir.
Proje planlama sürecinin başında, tüm proje adımlarını doğru olarak üretmenin mümkün olmadığını gözlemleyebiliriz.
Ancak bu daha sonraki aşamalarda ayrıntılı planlama için gerekli tüm bilgilerin elde edilmesiyle sağlanacaktır.

8.2. Planlar dokümante edilir ve anlaşma sağlanır.

Başlangıçta projenin tamamı için bir taslak plan ve ilk adım için ise bir detaylı bir plan üretilmiş olacaktır.

9. Adım: Planın Gerçekleştirilmesi

Önceki planların her birinde kullanılan girdiler bir araya toplanır.

Tüm aktiviteleri içeren detaylı bir iş dökümü yapılır.

Görevler, önceki planlarda kullanılan girdiler yardımıyla çizelgelenir.

Tüm varsayımlar, aktiviteler, zaman çizelgeleri projeyi yönlendirir.

Tüm görevler ve aktiviteler periyodik olarak izlenir.

Takım ve paydaşlar süreç hakkında bilgilendirilir.