Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Maltepe Üniversitesi Mühendislik Fakültesi

Benzer bir sunumlar


... konulu sunumlar: "Maltepe Üniversitesi Mühendislik Fakültesi"— Sunum transkripti:

1 Maltepe Üniversitesi Mühendislik Fakültesi
YazIlIm Projelerİnde Büyüklük Tahmİnİ Yrd.Doç Dr. Emin BORANDAĞ, Yrd.Doç.Dr.Fatih YÜCALAR, Öğr.Gör.Önder ŞAHİNASLAN Yazılım Mühendisliği Bölümü Maltepe Üniversitesi Mühendislik Fakültesi

2 Genel Bakış… İşlev Puanı Yöntemi
Yazılım Projelerinde Büyüklük Konusuna Giriş Yazılım Büyüklük Kestirim Teknikleri Teknik büyüklük kestirim yöntemleri İşlevsel büyüklük kestirim yöntemleri İşlev Puanı Yöntemi Örnek Bir Proje Üzerinden İşlev Puanı Hesabı Sonuç ve Değerlendirme Kaynaklar 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.

3 Yazılım Projelerinde Büyüklük Kestirimine Giriş
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.

4 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.

5 Teknik Büyüklük Kestirim Yöntemleri
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şturulması (Aynı özellik farklı kod sayısı) Programlama dili farkı Assembler <> Visual Basic Değişkenlerin tanımlanması  LOC olarak sayılmalı mıdır? İKİNCİ MADDEDEN SONRA: 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. Tüm bunlara ek olarak, deneyimli programcılar, işe yeni başlayan programcılara göre daha az kod yazmaya eğilimlidirler. Deneyimli bir programcı, işe yeni başlayan bir programcının yazdığı kod ile aynı işlevi gören, daha az sayıda satırdan oluşan ve daha etkili bir kod yazabilir. Aynısı farklı programlama dilleri için de söylenebilir. Assembler’de program yazmak, benzer programı Visual Basic’de yazmaktan daha fazla sayıda satırdan oluşan kod yazmayı gerektirir. LOC bir verimlilik ölçümü olarak kullanılırsa, biri LOC saymanın programcının etkisiz, gereksiz fazladan kod yazmaya özeneceğini iddia edebilir. Sonuç olarak, programı yazmak için gerekli olan kod satır sayısını kestirmektense, yazılmış bir programdaki kodun satırlarını saymak çok daha kolaydır.

6 İşlevsel Büyüklük Kestirim Yöntemleri (devam…)
İş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. İş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 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.

7 İş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.

8 İşlev Puanı (Function Points) (devam…)
FP SLOC LOC’a dönüştürme İşlev Puanını, LOC’a dönüştürmek için programlama diline göre saptanan faktörler kullanılır. Dış Girdilerin sayısı Dış Çıktıların sayısı Dış Sorguların sayısı İç Mantıksal dosyaların sayısı Dış Arayüz Dosyalarının sayısı Ağırlık Faktörleri ile ayarlanma Teknik Karmaşıklık Faktörleriyle ayarlama

9 İşlev Puanında Sistemin İşlevselliği
Bu konu 5 ayrı bileşenle incelenmektedir: Dış Girdiler: Uygulamanın dışından uygulamanın içine doğru olan süreçleri ve işlenebilir verileri gösterir. Veri genellikle uygulamaya içine eklenebilir, silinebilir veya güncellenebilir. Dış girdilere örnek olarak; kullanıcının bilgi girişi yaptığı veri giriş ekranları ve mantıksal dâhili dosyalar verilebilir. Dış Çıktılar: Verinin uygulama sınırları içinden dışarı çıkmasına izin veren süreç veya işlemlerdir. Dış çıktılara örnek olarak; raporlar, doğrulama mesajları ve ekran çıktıları verilebilir. Dış Sorgular: Kullanıcı isteği doğrultusunda alınan hızlı veri çıkışlarıdır Dış sorgular dosyada saklanan veriyi değiştirmez veya güncellemez. Sadece bilgiyi okurlar. İç Mantıksal Dosyalar: Uygulama sınırları ile birlikte verilerin saklandığı mantıksal bir dosyadır. İç mantıksal dosyalara örnek olarak, dâhili kullanıcı verileri, saklanan veriler verilebilir. Dış Arayüz Dosyaları: Başka bir uygulama sistemi ile olan paylaşımı ifade eder.

10 İşlev Puanı (Function Points)
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) Bileşenler Basit Orta Karmaşık (1) Dış Girdiler 3 5 6 (2) Dış Çıktılar 4 7 (3) Dış Sorgular (4) İç Dosyalar 13 15 (5) Dış Arayüz Dosyaları 9 10 İş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.

11 İşlev Puanı (Function Points) (devam…)
14 Genel Sistem Özelliğine göre sistemin beklenilen uygulama zorluğu için ilave bir teknik karmaşıklık faktörü hesaplanır. Genel Sistem Özellikleri Kısa Açıklama 1 Veri İletişimleri Sistemin uygulaması ile bilgi değişimi veya transferinde yardımcı olmak için kaç tane iletişim aracı vardır? 2 Dağıtılan Veri/İşleme Dağıtılan bilgi ve işleme fonksiyonları nasıl idare edilmektedir? 3 Performans Hedefler, yanıtlama zamanı ve iş çıkarma performansı önemli midir? 4 Çok Kullanılan Konfigürasyon Uygulamanın idare edileceği mevcut donanım platformu ne kadar yoğun kullanılmaktadır? 5 İşlem Oranı İşlem oranı yüksek midir? 6 Çevrimiçi Veri Girişi Hangi oranda bilgi çevrimiçi girilmektedir? 7 Son Kullanıcı Verimliliği Uygulama son kullanıcı verimliliği için mi tasarlanmıştır? 8 Çevrimiçi Güncelleme Kaç veri dosyası çevrimiçi güncellenmektedir? 9 Karmaşık İşlem Yapma Dâhili işlem yapma karmaşık mıdır? 10 Yeniden Kullanılabilirlik Uygulama yeniden kullanılabilir olması için mi tasarlanmıştır? 11 Dönüştürme/Kurulum Kolaylığı Sistemde otomatik dönüşüm ve kurulum da dâhil edilmiş midir? 12 İşlevsel Kolaylık Yedekleme, başlatma ve kurtarma gibi operasyonlar ne kadar otomatiktir? 13 Çoklu Saha Kullanımı Uygulama çoklu örgüte sahip çoklu sahalar için özellikle mi tasarlanmış, geliştirilmiş ve desteklenmiştir? 14 Değişimi Kolaylaştırma Uygulama kullanıcı tarafından kullanım kolaylığı ve değişimi kolaylaştırmak için özel olarak mı tasarlanmış, geliştirilmiş ve desteklenmiştir? 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 DI = i= Cevapi TCF = 0,65 + 0,01 x DI TCF: Technical Complexity Factors DI: Total Degree of Influence

12 İşlev Puanı (Function Points) (devam…)
İş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ı Programlama Dili LOC/FP C ++ 53 COBOL 107 DELPHI 5 18 JAVA 2 46 VISUAL BASIC 6 24 SQL 13

13 İşlev Puanı (Function Points) – Örnek Proje
Yazılım projesi toplam yedi modülden oluşan bir Windows uygulamasıdır. Programa ilişkin modüller aşağıda verilmektedir. a) Kullanıcı Giriş Ekranı b) Ürün Arama ve Listeleme Ekranı ( ‒ Arama Kriterleri (Ürün Kodu, Ürün Adı, Kategorilere Göre Arama), ‒ Listeleme (Ürün Kodu, Ürün Adı, Kategori Sil, Stok Durumu, Aktiflik) c) Stok Giriş Güncelleme ve Silme Ekran ( ‒ Ürün Adı, Kategori, Adet, Stok Giriş, Tarihi, Hangi Bölüme Gönderilmiş,Aktif) d) Kişisel Bilgiler (‒ Ad, Soyad, Bölüm, Unvan) e) Kategori Bilgileri ve Demirbaş Bilgileri Giriş Ekranı. f) Personel Üzerine Demirbaş Ekranı (‒ Personel unvanına göre, adına,soyadına ve bölümüne göre arama yapabilmektedir. ‒ Personel üzerine demirbaş verme işlemleri yapılabilmektedir.) g) Listeme Raporlama (‒ Stok ismine göre, stok tipine göre, stok türlerine göre arama yapılabilmektedir. ‒ Personel üzerindeki stokları listeleyebilmektedir.

14 Örnek Proje – Stok Takip Sistemi
Arama Listesi (Orta) Login Bilgileri (Basit) Arama Bilgileri Giriş (Orta) Stok Takip Sistemi Stok Listesi(Orta) Stok Girişi(Orta) Personel Eşleştirme (Karışık) Kategori Bilgisi (Basit) İç Dosyalar Listeleme Raporlama(Orta) Dış Arayüz Personel Demirbaş Dosyası(Orta) Personel Verileri (Basit)

15 Örnek Proje – Düzeltilmemiş İşlev Puanı
Girdiler: Basit 2 Orta Çıktılar: Orta 1 Karmaşık İç Dosyalar : Orta Personel Demirbaş Dosyası Dış Arayüz Dosyaları: Orta Personel Listesi UFP = [Dış Girdiler x W(1)] + [Dış Çıktılar x W(2)] + [Dış Sorgular x W(3)] + [İç Mantıksal Dosyalar x W(4)] + [Dış Arayüz Dosyaları x W(5)] UFP = [(2*3) + (2*5)] + [(3*6) + (1*7)] + [1*13] + [1*5] = 59 Basit Orta Karmaşık (1) Dış Girdiler 3 5 6 (2) Dış Çıktılar 4 7 (3) Dış Sorgular (4) İç Dosyalar 13 15 (5) Dış Arayüz Dosyaları 9 10

16 Örnek Proje – Düzeltilmiş İşlev Puanı
1. Sistem güvenilir yedekleme ve kurtarma gerektiriyor mu? 2 2. Veri iletişimi gerekiyor mu? 3. Dağıtık fonksiyon var mı? 3 4. Performans kritik mi? 5. Sistem çok kullanılan bir işletim ortamında mı çalışacak? 6. Sistem on-line veri girişi gerektiriyor mu? 7. On-line veri girişi, giriş işlemlerinin birden fazla ekran ya da işlem üzerinden olmasını mı gerektiriyor? 4 8. Ana dosyalar on-line mı güncelleniyor? 9. Girdiler, çıktılar, dosyalar ve sorgular karmaşık mı? 1 10. Kod yeniden kullanabilir olarak mı tasarlanmış? 11. İç süreç karmaşık mı? 12. Dönüşüm ve kurulum tasarım içerisinde mi? 13. Uygulama değişik kuruluşlarda birden fazla kurulum gerektirecek şekilde mi tasarlanmış? 14. Uygulama kullanıcı tarafından kolaylıkla kullanmayı ve değiştirmek üzere mi tasarlanmış? 5 DI = i= Cevapi = 34 FP = UFP x (0,65 + 0,01 x DI) = 144 x (0, ,01 x 34) = 58.41 LOC = 46 x = 1401,84

17 Projenin Geliştirilmesi Sonrasında Elde Edilen Ölçütler
Aynı yazılım projesi, üç farklı yazılım ekibi tarafından gerçekleştirilmiştir. Bu yazılım ekipleri aynı teknolojik altyapıyı kullanarak bu yazılım projesini geliştirmişlerdir. Yapılan çalışmalar sonucunda projeye ilişkin veriler, “SourceMonitor V3.3” kullanılarak elde edilmiştir.

18 Projenin Geliştirilmesi Sonrasında Elde Edilen Ölçütler
Proje başında FP yöntemi kullanılarak tahmin edilen proje büyüklüğü 1402 satır olarak elde edilmişti. Aynı yazılım projesi, üç farklı ekip tarafından gerçekleştirildikten sonra, projelerin büyüklüğüne bakıldığında, bu üç yazılım projesinin ortalama olarak 1553 kod satırından oluştuğu görülmektedir.

19 Sonuç ve Öneriler Burada sunulan çalışmada yazılım projelerinde büyüklük kestirimi konusu ele alınmıştır. Yazılım büyüklük kestirim yöntemi olarak İşlev Puanı (FP) kullanılmıştır. Aynı yazılım projesi üç farklı ekip tarafından gerçekleştirilmiştir. Çalışma sonucunda elde edilen bulgular aşağıda verilmektedir: Büyük ölçekli yazılım projelerinde olduğu gibi; küçük ölçekli yazılım projelerinde, büyüklüğü tahmin etmek için FP yönteminin kullanılabilir olduğu görülmüştür. İleri ki aşamada yapılacak çalışmalarda, nesne-tabanlı diller göz önünde bulundurularak, farklı bir yazılım büyüklük kestirim yönteminin oluşturulması amaçlanmaktadır.

20 Kaynaklar Fenton, N. E., “Software Measurement: A Necessary Scientific Basis”, IEEE Transactions on Software Engineering, Vol.20(No.3), , March, (1994). Fetcke, T., Abran, A., & Dumke, R., “A Generalized Representation for Selected Functional Size Measurement Methods”, 11th International Workshop on Software Measurement, Montreal, Canada, (2001). Symons, C. R., “Function Point Analysis: Difficulties and Improvements” IEEE Transactions on Software Engineering, Vol. SE- 14, No. 1, Jan. 1988, S Congress/Conference/Publication (1988) Hughes, B., & Cotterell, M., “Software Project Management”, 5th Edition. McGraw-Hill Education, (2009). SourceMonitor 3.3 Kurulum Adresi, (2012).


"Maltepe Üniversitesi Mühendislik Fakültesi" indir ppt

Benzer bir sunumlar


Google Reklamları