©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Yazılımın Maliyetinin değerlendirilmesi Software Cost Estimation.

Slides:



Advertisements
Benzer bir sunumlar
HASSAS GÖREV Hakan YÜKSEL Mart.
Advertisements

Sistem Analizi ve Planlama
Component’e Dayalı Yazılım Mühendisliğinde Çözümleme Süreci “Component-Based Software Engineering Analysis” Yusuf Altunel İstanbul Kültür Üniversitesi,
TEDARİK ZİNCİRİ YÖNETİMİ.
Risk Yönetimi.
Bilgi Teknolojisinin Temel Kavramları
Yazılım Mühendisliği Bölüm - 6 Gerçekleştirim
BELGELEME Ian Sommerville, “Software Documentation”,
Proje yönetiminde başarının yeni formülü. Daha başarılı projeler Daha ekonomik çözümler Daha özelleşmiş hizmetler için… Neden ?
Sanayi Ar-Ge Proje Destek Başurusu Hazırlama Becerileri Geliştirme Çalıştayı ArGe_Projesi_Hazirlama_Calistayi (061110)
Kullanıcı Arayüzü Tasarımı
BTP 108 BİLGİSAYAR AĞ SİSTEMLERİ AĞ KAVRAMI Birden çok bilgisayarın birbirine bağlı olarak kullanılmasıyla oluşturulan çalışma biçimine bilgisayar ağı.
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
Maltepe Üniversitesi Mühendislik Fakültesi
PROJENİN PLANLANMASI 1.
Chapter 3 Brainstorming a Game Idea: Gameplay, Technology, and Story
Kaynakların Dağılımı.
Sistem Geliştirme Sistemin tanımı. Sistemin Temel özellikleri
Yazılım Proje Yönetimi
Nesneye Dayalı Programlama
Veri Tabanı Yönetim Sistemleri Ders başladıktan sonra öğrenciler sınıfa alınmayacak.
Projenin sonlandırılması
Proje Yönetimi ve Geliştirilmesi
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Doğrulama ve Geçerlilik- Verification and Validation l Yazılım Sisteminin kullanıcı.
Windows Server 2008’e Genel Bakış Microsoft Windows Server 2008, bilgi teknolojileri (BT) uzmanlarının altyapıları üzerindeki kontrollerini maksimum seviyeye.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Doğrulama ve Geçerlilik.
Bilgi Sistemi Organizasyonlar içerisindeki kontrol ve karar verme mekanizmalarında kullanılacak bilginin toplanması, işlenmesi, saklanması ve dağıtılmasını.
İŞLETİM SİSTEMLERİ Öğr. Gör. S.Serkan TAN.
İNSAN BİLGİSAYAR ETKİLEŞİMİ
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
Chapter 1: Giriş.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 22Slide 1 İnsan Kaynakları Yönetimi Sarı renkli arka planlı sayfalar bilgi amaçlıdır-sınavda.
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
DENEME.
1 Öğr. B.Aliyeva Öğr. B.Aliyeva Bilgisayar Yazılımı.
, Denizli Akademik Bilişim 2006 YAZILIM GELİŞTİRME SÜRECİNDE OTOMATİK KOD ÜRETİCİLER Çağdaş Can BİRANT Kökten Ulaş BİRANT Prof. Dr. Alp KUT.
Özgür Kayaş Müzeyyen Tekinşen
Bilgi Teknolojisinin Temel Kavramları
Şahin BAYZAN Kocaeli Üniversitesi Teknik Eğitim Fakültesi
Karar Bilimi 1. Bölüm.
ISO ÇEVRE YÖNETİM SİSTEMİ TEMEL EĞİTİMİ
İŞLETME BİLİMİNE GİRİŞ
İnsan Kaynakları Bilgi Sistemleri
SİSTEM VE YAZILIM Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur. Yazılım, bilgisayar sistemlerinin bir bileşeni.
Projenin Kontrolü Rogier Tesson Thijs Leijen. Projenin değerlendirilmesine ilişkin kriterler Yatırım kararları, iş planları temel alınarak, mantıklı gerekçelere.
Kurumsal Ağlarda Uzak ve Merkezi İşlem Birimlerinin Sanallaştırılması: Bir Uygulama Emrah ÇOLAK, SGK Aydın ÇETİN, Gazi Üniversitesi ŞUBAT 2016.
Sistem Yaklaşımı.
Genel Kavramlar Bölüm - 1. YAZILIM Bilgisayara işlemler yaptırabilmek ve karar verdirtebilmek için yazılan kalıplara denir. Yazılım, genel olarak donanım.
Bilgisayar Mühendisliğindeki Yeri
Sistem Kullanılabilirlik Ölçeği (SKÖ)
ÇEVİK (Agile) SÜREÇLER Değişen gereksinimler, teknik riskler gibi önceden belirlenemeyen durumlara ve yazılım ürününü etkileyebilecek her tür değişikliğe.
Sistem Analizi ve Tasarımı
YAZILIM ÖLÇÜMÜ Yazılım mühendisliği, yazılım ürününü oluşturmaya, mühendislik yaklaşımı uygulamakla ilgili olan teknikler toplamını tanımlamak için kullanılan.
Nesne Tabanlı Yazılım Geliştirme Bora Güngören Portakal Teknoloji EMO Ankara Şubesi
Ders 3: Yazılım Geliştirme Aşamaları
ANKARA ÜNİVERSİTESİ SAĞLIK BİLİMLERİ FAKÜLTESİ SOSYAL HİZMET BÖLÜMÜ
PROGRAMLAMA TEMELLERİ
SİSTEM ANALİZİ VE TASARIMI
Yazılım Bakımı Yazılım Mühendisliği.
Problem Çözme Yaklaşımları
Fırat Üniversitesi Mühendislik Fakültesi Elektrik-Elektronik Müh.
Bölüm 14 Stratejik Değerleme ve Kontrol
SWOT ANALİZİ TÜRKER DURAN YATIRIM TEŞVİK DANIŞMANI.
Amazon Web Servisleri ve Javascript Dilinin Birlikte Kullanımı
Yazılım Mühendisliği Temel Süreçler - Sistem Analizi
Yazılım Mühendisliği Temel Süreçler – PLANLAMA II
Risk Yönetimi.
Klinik Bilgi Sistemleri
Sunum transkripti:

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Yazılımın Maliyetinin değerlendirilmesi Software Cost Estimation

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 2 Ne öğrenilecek l Yazılım maliyetinin ve fiyatının belirlenmesinin temelleri l Yazılımın verimliliğinin ölçülmesi l Yazılımın değerlendirilmesinde farklı yöntemlerin kullanılması l COCOMO 2 algoritmik maliyet değerlendirme modeli

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 3 Temel değerlendirme soruları l İşlemleri tamamlamak için ne kadar emek gerekmektedir? l İşlemleri tamamlamak için ne kadar zaman gerekmektedir? l İşlemlerin toplam maliyeti ne kadardır?

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 4 Yazılım maliyeti bileşenleri l Yazılımın maliyeti-yazılım geliştirme süreci için gereken kaynakların değerlendirilmesi l Donanım ve yazılım maliyeti l Seyahat ve eğitim maliyeti l Emek maliyeti (ekser projelerde temel etken) Projeye katılmış mühendislerin maaşları Sosyal ve sigorta maliyetleri l Emeğin maliyetini etkileyen diğer etkenler: Bina, ısınma, aydınlatma maliyeti Ağ ve telekominikasyön maliyeti Ortak kullanım maliyetleri (kütüphane, kantin ve s.)

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 5 Maliyet ve fiyatlandırma l Değerlendirme, geliştiricinin yazılım sisteminin maliyetini hesaplaması içindir. l Geliştirme maliyeti ile müşteriye bildirilen fiyat arasında basit bağlılık yoktur l Kurumsal, iktisadi, siyasi ve ticari etkenler fiyatlandırmayı etkiler

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 6 Yazılımın fiyatını etkileyen etkenler l Pazarı kaybetmemek- geliştirici kurum yazılım pazarında yeni olması ve ya pazara yeni ürün sürmesi sebebinden yazılımı düşük fiyatla suna bilir. Bir projede az kar etmek onun gelecekte daha yüksek kar etmesine neden ola bilir. Kazanılmış deneğimler yeni ürünler geliştirmek için temeldir l Belirsizlik içinde fiyatbiçme- Eğer kurum yazılımın fiyatı hakkında tereddütlü ise yazılımın fiyatını yükselte veya normal değerinden daha düşük fiyata suna bilir l Anlaşmalı fiyat- Müşteri, programın kaynak kodunun geliştirici tarafından kullanılmasına veya geliştirilmiş sistemin (veya parçalarının) diğer projelerde de kullanılmasına izin vere bilir. Bu halde projenin fiyatı daha düşük olacak

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 7 Yazılımın fiyatını etkileyen etkenler (devamı) l Gereksinimlerin değişkenliği- Eğer gereksinimler değişime meyilli ise geliştirici kurum projeyi almak için fiyatı düşüre bilir. Anlaşma imzalandıktan sonra ise gereksinimlerin değişmesiyle fiyat arttırılacaktır l Mali sorunlar- Mali sıkıntıları bulunan geliştirici projeyi kazanmak için düşük fiyat önere bilir. İş ortamında kalmak için az kar hiç yoktan daha iyidir

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 8 l Zaman birimi içinde üretilmiş yararlı işlevsellik l Yazılım geliştirme sürecine katılmış mühendisin işini değerlendirme ölçümü l Kaliteye yönelik değildir Programcının verimliliği

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 9 l Boyuta yönelik ölçümler - Bu ölçümler kaynak kodundan alınan kod satırları sayısı, nesne kodları ola bilir l İşleve yönelik ölçümler yazılımın işlevselliğine göre tahmin ediliyor. İşlev puanlar ve nesne puanları ölçümleri bu türden en yaygın kullanılan ölçümlerdir Verimliliğin ölçülmesi

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 10 Yazılımın Verimliğinin ve Kalitesinin ölçülmesi l Yazılım Ölçümleri Boyuta Yönelik Ölçümler İşleve Yönelik Ölçümler l Yazılım Kalitesi için Ölçümler Kaliteyi Etkileyen Etkenler Kalite ölçümleri l Farklı Ölçme Yaklaşımlarının Karşılaştırılması l Yazılım Mühendisliği süreci dahilinde ölçümlerin bütünleştirilmesi

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 11 Yazılım ölçümleri l Boyuta Yönelik ölçümler İşleve Yönelik Yöntemler Kişiye Yönelik Yöntemler Teknik Ölçümler Kalite Ölçümleri Verimlilik Ölçümleri

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 12 Boyuta Yönelik Ölçümler l Yazılımın ve onun geliştirilme sürecinin doğrudan ölçülmesi Projeemek$KLOCBelg.sayf.sayısı Hata sayısı Kişi say. aaa ccc fff

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 13 l Kod satırı nedir? Programcıların her satırda bir komut yazdığı zamanlarda önerilmiş ölçüm Bir komut cümlesinin birkaç satıra yayıla bildiği veya bir satırda birkaç komutun yazıla bildiği çağdaş programlama dilleri ile ne kadar uyumludur? l Hangi programlar sistemin parçası sayılmalıdır? l Bu ölçmede sistemin boyutu ile belgelerin boyutu arasında doğrusal ilişki olduğu düşünülüyor Kod satırları sayısı

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 14 Yazılımı Ölçme Kıstasları Boyuta yönelik ölçümler l Verimlilik = KS/kişi-ay l Kalite = hatalar/KS l Değer = $/KS l Belgeleme = belge sayfaları sayısı/KS (KS-kod satırları sayısı)

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 15 İşlev puan l Programın aşağıdaki özelliklerinin kullanımına dayalıdır: Dış girişler ve çıkışlar Kullanıcı etkileşimleri Dış arayüzleri Sistemin kullandığı dosyalar l Bu özelliklerin her birisine ağırlık değerleri veriliyor l İşlev puan özelliklerin ağırlık değerlerine çarpılması ile alınmış sayıların toplamıdır

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 16 İşlev puanların hesaplanması ÖlçmeparametresiSayı ağırlık etkeni ağırlık etkeni basit orta karm. basit orta karm. Kull. Girişleri sayısı X = Kull. Çıkışları sayısı X = Kullanıcı sorguları sayısı X = Dosyalar sayısı X = Dış arayüzleri sayısı X = ayarlanmamış İP 

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 17 İşlev Puanların (algoritma hesaba alınmakla) hesaplanması Ölçüm parametresi Sayı Sayı Ağırlık Ağırlık Kullanıcı girişleri sayısı X 4 = X 4 = Kullanıcı çıkışları sayısı X 5 = X 5 = Kullanıcı sorguları sayısı X 4 = X 4 = dosyalar sayısı X 7 = X 7 = Dış arayüzleri sayısı X 7 = X 7 = Algoritmalar X 3 = X 3 = ayarlanmamış İP 

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 18 İşlevsel Nitelikler (Fi) l Sistem güvenilir yedekleme ve kurtarma gerektiriyor mu? l Veri iletişimine gerek var mı? l Dağıtık işlem işlevleri var mı? l Başarım çok ciddi mi? l Mevcut işletme ortamında sistem çalışacak mı? l Sistem çevrimiçi veriler gerektiriyor mu? l Esas kütükler çevrim içi güncelleniyor mu? l Giriş ve çıkışlar, kütükler, sorgular karmaşık mı? l Program dahilindeki işlemler karmaşık mı? l Tasarlanan program yeniden kullanılabilen olmalı mı? l Dönüştürme ve sistemi kurma tasarıma dahil mi? l Sistem farklı kurumlarda farklı donatımlar gerektiriyor mu? l Sistemin kullanıcı kolaylığı ve de kolay değiştirile bilme olanağı var mı?

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 19 İşlevsel niteliklerin değerlendirilmesi l İşlevsel niteliklere (Fi) 0-5 arasında ağırlık değeri veriliyor Etkisi yok 0 Tesadüfi 1 Hafif 2 Orta 3 Önemli 4 Gerekli 5

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 20 Yazılımı Değerlendirme Kıstasları İşlev puanların hesaplanması l İP=AİP x [ x  (Fi)] l ( AİP-ayarlanmamış işlev puanlar sayısı) l Verimlilik =İP/kişi-ay l Kalite =hatalar/İP l Değer=$/İP l Belgeleme = belge sayfaları sayısı/İP

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 21 İşlev puan ve kod satırları sayısı l Projenin karmaşıklığı işlev puanlar sayısını etkiler l İşlev puanlar,verilmiş dil için bir işlev puanlar sayısına düşen kod satırları sayısı esasında ortalama kod satırları sayısını bulmak imkanı veriyor: KS = AVC * işlev puanlar sayısı; KS –kod satırları sayısı AVC –dile bağımlı etkendir-assemble dili için , 4GL için 2-40 arasında değişmektedir l İP’ler çok özneldir. Değerleri değerlendiriciye bağlıdır. İşlev puanların otomatik hesaplanması mümkün değildir

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 22 Kod satırlar sayısı ve işlev noktalar sayısı arasındaki ilişki (AVC-etkeni) l Programlama Dilleri LOC/FP ( AVC etkeni ) Assembly 300 COBOL 100 FORTRAN 100 Pascal 90 Ada 70 Nesneye Yönelik diller 30 Dördüncü nesil Dilleri (4GL) 20 Kod üreticileri 15

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 23 Nesne puanları l Nesne puanları işlev puanlar ölçümüne alternatiftir l Nesne puanları nesne sınıfları ile aynı değildir l Programdaki nesne puanları sayısı aşağıdaki etkenlerle belirlenir: Farklı ekranların (formların) sayısı; basit ekranlar 1 nesne puanı, orta karmaşıklı ekran 2 puan, çok karmaşık ekran 3puan Sistemin ürettiği raporlar sayısı; basit raporlar 2, orta karmaşıklı 5, üretimi çok karmaşık raporlar 8 puan Geliştirilen 3GL modülleri sayısı; her modül 10 puan

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 24 Nesne puanları ve işlev puanlar l İşlevsel puanlara nazaran nesne puanlarını belirlemek daha kolaydır l Onlar geliştirme sürecinin erken aşamalarında tahmin edile bilir. Bu aşamada sistemdeki kod satırları sayısını tahmin etmek oldukça zordur

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 25 Farklı seviyeli dillerde sistem geliştirme süreci Verimlilik=boyut/çaba; Dikkat edin: verimlilik için zaman birimi ay, çaba için hafta kullanılmıştır

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 26 l Program seviyesi aşağı oldukça programcının verimliliği yükseliyor?! Aynı işlevsellik aşağı seviyede, yukarı seviye dilleri ile oranda daha çok kod çalıştırılmasını gerektiriyor l Programda gereksiz şeyler ne kadar çok ise programcının verimliliği bir o kadar yüksektir?! Verimliliğin kod satırlarına dayalı olması; gereksiz kodlar yazmakla programı şişiren programcıyı daha kısa program yazmağa çalışan programcıdan üstün buluyor Verimliliğin karşılaştırılması

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 27 l Gerçek zaman sistemleri, KS/kişi-ay l Sistem programları, KS/kişi-ay l Ticari uygulamalar, KS/kişi-ay l Nesne puanları üzere verimlilik destek araçlarına ve geliştiricinin yeteneğine bağlı olarak 4-50 nesne noktası/ay olarak değişir Verimliliğin tahmini

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 28 Verimliliği etkileyen etkenler l Uygulama alanında deneyim- uygulama alanında deneyimli olmak yazılım geliştirmede çok mühimdir. l Süreç etkeni- çözümleme ve tasarım teknikleri,diller l Problem etkenleri- sorunun karmaşıklığı,tasarım sınırlamaları l Ürün etkenleri- başarım ve güvenilirlik l Projenin boyutu- proje büyük oldukça proje grubu üyeleri arasındaki iletişime daha çok ihtiyaç duyuluyor. Doğrudan geliştirmeye ayrılan zaman azalıyor ve böylelikle, bireysel verimlilik düşmüş oluyor l Teknoloji destek,kaynak etkeni- geliştirme araçları, donanım,yazılım kaynakları; iyi teknoloji destek (örn.,CASE araçlarının kullanımı) verimliliği yükseltir l Çalışma ortamı- her birey için ayrıca sakin çalışma ortamının oluşturulması verimliliği yükseltir

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 29 l ‘Boyut/zaman birimi’ne dayalı tüm ölçümler, kaliteyi hesaba katmadıkları için kusurludur l Kalite ve verimlilik ölçümleri arasındaki bağlantı belirgin değil l Eğer programda değişmeler her zaman olacaksa satırlar sayısı ile ölçüm yapmak anlamsızdır Kalite ve verimlilik

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 30 Tahmini değerlendirme yöntemleri l Yazılım sistemini geliştirmek için gereken çabayı kesin değerlendirmek için basit bir yol yoktur Başlangıç değerlendirmeler kullanıcı gereksinimlerinin tanımlamalarından alınan kesin olmayan bilgilere dayanıyor Yazılım yeni bir bilgisayarda veya yeni teknoloji kullanmakla çalıştırıla bilir Projeye katılan kişiler belli değil l Projenin maliyet değerlendirmesi bütçeyi belirler ve ürün bütçeye uygun olarak geliştirilir

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 31 Tahmini değerlendirme yöntemleri l Algoritmik maliyet modeli l Uzman değerlendirmeleri l Benzerlik değerlendirmesi l Parkinson Kuralı l Kazanca yönelik fiyatbiçme-Pricing to win

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 32 Algoritmik maliyet modelleme l istatiksel maliyet verilerine dayalı formal yaklaşım; genellikle yazılımın boyutunu kullanıyor

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 33 Uzman görüşleri l Yazılım geliştirme ve uygulama alanlarından birer veya birkaç uzman yazılımın maliyetini değerlendirmek için deneyimlerini kullanıyorlar. Razılaşma sağlanana dek bu süreç devam ediyor l Artı yönleri: Nispeten düşük maliyetli değerlendirme yöntemi. Uzmanların benzer sistemlerde deneyimleri varsa kesinliği yüksektir l Eksi yönleri: Yöntem, uzman olmayanlar tarafından gerçekleşirse kesinliği çok düşüktür

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 34 Benzerliğe göre değerlendirme l Projenin maliyeti, projenin aynı uygulama alanındaki benzer projelerle karşılaştırılması yolu ile hesaplanıyor l Artı yönleri: Eğer proje verileri mevcutsa kesinliği yüksektir l Eksi yönleri: Karşılaştırma için proje yok ise gerçekleştirilemez. Maliyet veri tabanının sürekli güncellenmesi gerekiyor.

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 35 Parkinson Kuralı l Projenin maliyeti elde olan kaynaklara bağlıdır l Artı yönü: yüksek maliyetli değil l Eksi yönleri: Çoğu zaman sistem tamamlanmamış oluyor Proje 12 aya teslim edilmeli ise ve “el altında” 5 geliştirici var ise çaba 12*5 kişi-ay olarak hesaplanacak

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 36 Kazanmak için fiyatbiçme-Pricing to win l Projenin maliyeti, müşterinin harcayacağı paraya bağlıdır l Müşterinin istediği sistemi elde etmesi ihtimali küçüktür. Maliyet, gereken işleri kesin yansıtmaz l Bu yöntem ahlaki görünmeye bilir l Ama, gereken bilgi yok derecesinde ise bu en uygun yaklaşım ola bilir l Projenin maliyeti öneri temelleri üzerinde razılaştırılır ve geliştirme bu maliyetle sınırlanır l Ayrıntılı belirteç görüşüle bilir veya sistem geliştirmede evrimsel yaklaşım kullanıla bilir

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 37 Yukarıdan aşağıya ve aşağıdan yukarıya değerlendirme l Her bir yöntemde yukarıdan aşağıya ve yukarıdan aşağıya yaklaşımları kullanıla bilir l Yukarıdan aşağıya Sitem seviyesinden başlamalı; tüm sistem işlevlerine erişim; bunlar alt sistemlerden nasıl alınıyor l Aşağıdan yukarıya Bileşen seviyesinden başlamalı; her bir bileşen için gereken çabayı değerlendirmeli; Nihai değerlendirmeği bulmak için bu çabaları toplamalı

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 38 Yukarıdan aşağıya değerlendirme l Bu değerlendirme sistemin mimarisi ve bu sistemin parçası ola bilecek bileşenler hakkında bilgi olmadan da yapıla bilir l Bütünleşme, yapı yöneticiliği ve belgelendirme maliyeti dikkate alınmakla hesaplanıyor l Aşağı seviyede teknik sorunların çözümü ile bağlı maliyetlerin yeterince değerlendirilmemesi sorun oluştura bilir

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 39 Aşağıdan yukarıya değerlendirme l Sistemin mimarisi belli ise ve bileşenler tanımlanmış ise kullanıla bilir l Eğer sistem ayrıntılı tasarlanmışsa kesin sonuçlar veren yaklaşımdır l Bütünleşme ve belgelendirme gibi yüksek seviye girişimleri maliyetlerinin yeterince dikkate alınmaması sorun oluştura bilir

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 40 Değerlendirme yöntemlerinin karşılaştırılması l Her yöntemin güçlü ve zayıf yönleri bulunmaktadır l Değerlendirme birkaç yöntemle yapılsa daha kesin sonuç vere bilir l Eğer farklı yöntemlerle alınmış sonuçlar biri birinden çok uzak ise bu giriş bilgilerinin yeterli olmadığını gösteriyor l Bazı hallarda kazanma için fiyatbiçme tek uygulanabilir yöntemdir

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 41 Değerlendirmenin kesinliği l Yazılım sisteminin boyutu,yalnız yazılım tamamlandıktan sonra kesin belli olur l Yazılımın nihai boyutunu etkileyen etkenler: Yazılım araçlarının kullanımı Programlama dili Sistemin dağınıklığı l Geliştirme sürecinin devam ettiği süreçte değerlendirme gittikçe kesinleşir

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 42 Değerlendirmenin belirsizliği Yapılabilirlik gereksinimler tasarım kodlama teslim

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 43 Deneyime dayalı değerlendirmeler l Değerlendirmeler başlıca olarak deneğime dayalıdır. l Ama, yeni yöntem ve teknolojiler bu tür değerlendirmelerin kesinliğini azaltıyor. İşleve yönelik geliştirme yerine nesneye yönelik Büyük bilgisayar sistemleri yerine istemci-sunucu sistemleri Standart (satılan) bileşenler Bileşen tabanlı yazılım mühendisliği Yazılım Geliştirme araçları ve program üreticileri

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 44 Algoritmik maliyet değerlendirme l Maliyet ürünün, projenin ve sürecin özelliklerinin matematik fonksiyonu gibi hesaplanır. Özelliklerin değerleri proje yöneticileri tarafından belirlenir: Çaba = A  Boyut B  M A kuruluma ve geliştirilen yazılımın türüne bağlı sabittir. B – projenin boyutuna bağlı etkendir (1-1,5 arasında değişiyor). M- ürün, süreç ve kişi özelliklerini dikkate alan katsayısıdır l Ürün özellikleri içinde en yaygın kullanılanı kodun boyutudur l Modellerin pek çoğu benzerdir, yalnız A, B ve M değerleri farklıdırlar

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 45 COCOMO modeli l Proje deneyimlerine dayalı deneysel (empirical) model l İyi belgelendirilmiş, “bağımsız” model-her hangi yazılım satıcısına bağlı değil l 1981’de geliştirilmiş COCOMO-81 modelinden COCOMO 2’ye dek pek çok sürümleri mevcuttur l COCOMO 2 yazılım geliştirmede çeşitli yaklaşımları ( o sıradan yeniden kullanmayı) dikkate alıyor

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 46 COCOMO 81

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 47 COCOMO 2 seviyeleri l COCOMO 2 üçseviyeli modeli yazılımı artan ayrıntılarla değerlendirme imkanı veriyor Erken prototip modeli »Değerlendirmeler nesne puanlarına göre hesaplanıyor ve çabayı değerlendirmek için basit formüle kullanılıyor Erken tasarım seviyesi »İşlev puanları üzere değerlendirme yapılıyor; bu sonra LOC’a dönüştürülüyor Mimariden sonraki seviye-Post-architecture level »Değerlendirmeler kaynak kod satırları üzerinde yapılıyor

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 48 Erken prototip seviyesi l Prototip projelerini ve yeniden kullanımı çok sık olan projeleri destekler l Geliştiricinin verimliliğinin nesne puanları/ay ölçümünün standart değerlendirilmesine dayanmaktadır l CASE araçlarının kullanımını dikkate alıyor PM = ( NOP  (1 - %reuse/100 ) ) / PROD PM - kişi-ayla çaba, NOP nesne noktaları sayısı, PROD – verimliliktir, %reuse -yeniden kullanılabilrilik oranı

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 49 Nesne puanı verimliliği

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 50 Erken tasarım seviyesi l Değerlendirmeler gereksinimler belirlendikten (kesinleştikten) sonra da yapıla bilir l Algoritmik modeller için standart formül kullanılıyor: PM = A  Size B  M + PM m nerede ki, M = PERS  RCPX  RUSE  PDIF  PREX  FCIL  SCED PM m = (ASLOC  (AT/100)) / ATPROD l A = 2.5 başlangıç sabit, Size bin kod satırları sayısı, B arasında değişir ve projenin yeniliğine, geliştirme esnekliğine, risk yönetimine, süreç olgunluğuna bağlıdır l M-katsayılarıdır

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 51 Katsayıları- Multipliers l Katsayıları geliştiricilerin yeteneğini, işlevsel olmayan gereksinimleri, geliştirme ortamının benzerliğini ve s. İfade ediyor. RCPX –proje güvenilirliği ve karmaşıklığı ( product reliability and complexity) RUSE – yeniden kullanılabilirlik (the reuse required) PDIF –platform zorluğu ( platform difficulty) PREX – personel deneğimi (personnel experience) PERS – personel yeteneği (personnel capability) SCED – istenen iş-zaman planı (required schedule) FCIL – destek araçları (the team support facilities) l PM –otomatik üretilen kod sayısı ile belirlenir

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 52 l Ürün özellikleri Geliştirilecek yazılım ürününün istenen nitelikleri l Bilgisayar özellikleri Donanım platformunun yazılıma koyduğu sınırlamalar l Personel özellikleri Proje üzerinde çalışan personelin deneyimin ve yeteneğini dikkate alar l Proje özellikleri Yazılım projesine özgü nitelikleri dikkate alar Katsayıları (devamı)

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 53 Mimariden sonraki seviye- Post- architecture level l Erken tasarımdaki ile aynı formüle kullanılıyor l Boyutun değerlendirilmesi ayarlana biliyor Gereksinimlerin esnekliği. Değişmeleri desteklemek için ilave çalışmalar Mümkün tekrar kullanılırlığın boyutu. Tekrar kullanım yalnızca kod satırları sayısının azaltılması değildir. Diğer maliyet etlileri de vardır ESLOC = ASLOC  (AA + SU +0.4DM + 0.3CM +0.3IM)/100 ESLOC yeni kod satırları sayısıdır; ASLOC yeniden kullanılabilir satırlar sayısı; DM –değiştirilen tasarım yüzdesi; CM –değiştirilen kod yüzdesi; IM tekrar kullanılan yazılımı bütünleştirmek için gereken başlangıç bütünleşme çabası yüzdesi; SU- yazılımı anlama maliyetini yansıtan etken; AA – yazılımın tekrar kullanılacağını dikkate almakla maliyetin başlangıç tahminin yansıtan etkendir

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 54 PM = A  Size B  M + PM m l 6 ölçek etkenine (0-5 arasında) bağlıdır. Onların toplamı/100,1.01 sayısına ilave edilir l Örnek yeni proje - 4 Geliştirme esnekliği – müşteri katılmadan – Çok yüksek - 1 Mimari/risk çözümü – Risk çözümlenmesi yoktur – Çok düşük - 5 Grup bağlılığı – yeni grup - nominal - 3 Olgunluk süreci – bazı denetimler - nominal - 3 l Ölçek etkeni Üst ifadesi (The exponent term)

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 55 Üst ölçek etkeni

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 56 Projenin maliyet belirleyicileri mimari sonrası değerlendirmede maliyet tahminini ayarlamak için kullanılır

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 57 Maliyet belirleyicilerinin etkileri- Effects of cost drivers

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 58 l Algoritmik maliyet modeli proje planlamasında temeldir, böyle ki, karşılaştırma için farklı stratejilere izin veriyor Örnek. uçak sistemi Güvenilir olmalı Ağırlığı en az olmalı (parça sayısı) Güvenilirlik ve ve bilgisayar sınırlamaları katsayısı > 1 l Maliyet bileşenleri Hedef donanım Geliştirme platformu Gereken çaba Proje planlama

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 59 Yönetici tercihleri

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 60 Yönetici tercihlerinin maliyeti

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 61 Tercihlerin değerlendirilmesi (örnek üzerinde) l D tercihi (daha deneyimli personel kullanımı) en iyi alternatiftir Ama bu tercih, deneyimli personel bulunması zorluğu ile bağlı yüksek risk taşımaktadır l C tercihinde (belleğin yükseltilmesi) tasarruf azdır, risk düşüktür l Bütünlükle, model yazılım geliştirmede personel deneyiminin önemli olduğunu ortaya koyuyor

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 62 Proje süreci ve personel l Yönetici projenin tamamlanması için gereken zamanı ve gereken personeli tahmin etmelidir l Proje takvim zamanı COCOMO 2 kullanmakla tahmin edile biler: TDEV = 3  (PM) ( *(B-1.01)) PM hesaplama çabasıdır; B katsayısıdır; erken prototip modeli için B=1; l Bu süre projede çalışan kişiler sayısına bağımlı değil

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 63 Personel gereksinimleri l Gereken personel iş-zaman çizelgelemesine ve geliştirme zamanına uygun olarak hesaplana bilmez l Projede çalışanların sayısı projenin geliştirilme safhalarında farklı ola bilir l Projede ne kadar çok personel çalışıyorsa genelde toplam çaba da bir o kadar çok oluyor

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 64 Sonuç l Verimliliği, bireysel özellikler, alan deneğimi, geliştirilen projenin özellikleri, boyutu, araç desteği ve çalışma ortamı gibi etkenler etkiler l Maliyet değerlendirmesi için çeşitli değerlendirme yöntemlerinin kullanılması tavsiye olunuyor l Yazılım, sözleşmeyi kazanmak için uygun fiyatla sunulmalı ve işlevselliği fiyata uyarlanmalıdır

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 65 Sonuç l Algoritmik maliyet değerlendirmesi nihai ürünün özelliklerinin değerlendirilmesine gerek duyduğu için zordur l COCOMO, gereken çabayı tahmin etmek için proje, ürün,personel ve donanım özelliklerini dikkate alıyor l Algoritmik maliyet modeli niceleyici çözümlemeyi destekler l Projenin tamamlanması için gereken zaman projede çalışanların sayısı ile doğru orantılı değil