Bölüm 6 Yazılım Planlama

Slides:



Advertisements
Benzer bir sunumlar
  5.4 PROJE TRAFİĞİ Kırsal yolların tasarımı ile ilgili geometrik standartların seçimine esas olan trafik için genelde 20 sene sonraki trafik değeri alınır.
Advertisements

Enterprise Architecture (EA) KURUMSAL MİMARİ
Unsupervised Learning (Kümeleme)
ALPER LAÇİN SERDAR TAŞAN
Yazılım Projesi Yönetimi
MALZEME İHTİYAÇ PLANLAMASI
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,
Simülasyon Teknikleri
PROGRAM – PROJE YÖNETİMİ YÖNETİŞİM
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 ?
Proje Dosyanızda Yer Alacak Belgeler
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
Maltepe Üniversitesi Mühendislik Fakültesi
BENZETİM Prof.Dr.Berna Dengiz 4. Ders Modelleme yaklaşımları
İÇERİK İhtiyaç Amaç Yazılım Emniyeti Yaşam Döngüsü Süreçleri Sonuç
Yazılım Sertifikasyonunda Karşılaşılan Zorluklar
 Tarih boyunca bazı firmalar stratejik uygulama pahasına stratejik planlamayı vurgulamışlardır.  Pazarlama uygulaması firmanın pazarlama hedeflerinin.
PERFORMANS BÜTÇE HAZIRLIK SÜRECİ
Yazılım Proje Yönetimi
Veri – Bilgi – Karar Kuramları ve Özellikleri
Ar-Ge ve Teknoloji Geliştirme: Rekabet için stratejik yaklaşımlar
Problem Çözme Süreci.
3. Üretim Sistemi Geliştirme Planı ve Üretim Planının Hazırlanması
Öğretim Tasarımı
Proje Yönetimi Proje Yönetimine Giriş
Telif Hakkı  2008 Intel Firması. Tüm hakları saklıdır. Intel, Intel logosu (the Intel Logo), Intel Eğitim Girişimi (Intel Education Initiative) ve Intel.
Chapter 1: Giriş.
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
TESTLER. 2 Değerlendirme  Öğretim sürecindeki değerlendirme basamağı etkili öğretim için vazgeçilmezdir.  Değerlendirme; Konunun ne düzeyde anlaşıldığını.
Kalite Yönetim Prensipleri (Devam)
Prof. Dr. Ahmet AYAR (TÜBİTAK 2237 Programı)
Özgür Kayaş Müzeyyen Tekinşen
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
Karar Bilimi 1. Bölüm.
1 Bölüm 9 İhtiyaçları Anlama (Understanding Requirements) Modified from Software Engineering: A Practitioner’s Approach by Roger S. Pressman For non-profit.
1 Chapter 8 Tasarım Kavramları Modified from Software Engineering: A Practitioner’s Approach, by Roger S. Pressman For non-profit educational use only.
İŞLETME BİLİMİNE GİRİŞ
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Bölüm 8 Proje Takvimi Hazırlama
BBY373 İnsan Kaynakları Yönetimi
Bilimsel Araştırma ve Proje Yönetimi
Mikroiktisat: Teori ve Uygulama Bölüm 2 Arz ve Talep
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Bölümün Amacı Bu bölümün amacı, örgütlerin peşinde koştukları hedeflerin türlerini ve yöneticilerin bu hedeflere ulaşmak için kullandıkları rekabetçi.
Bolum 5 Süreç ve Proje Metrikleri modified from
İNCELEME Bilimin İşlevleri İstatistiksel Yöntemler Değişken Türleri
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.
Bölüm 7 Risk Analizi Software Engineering: A Practitioner’s Approach,
SU KAYNAKLARININ MODELLENMESİ
Nehir Havzaları Su Kaynakları Modelleme Çalışmaları
Strateji Geliştirme Başkanlığı SWOT ANALİZİ 2009 / ANKARA ATİLLA DURMAZ.
Sunum Planı 2 Kurulum Süreci Gerçekleştirilecek Çalışmalar Giriş USBS Hakkında Fizibilite Süreci Hedef & Fizibilite Çıktıları Yapılan Çalışmalar.
 Bir projeyi yönetmek üzere görevlendirilen ve projeyi, mümkün olan en yüksek üretkenlik, en düşük belirsizlik ve risk ile yürütmekten sorumlu kişidir.
Bilgisayar Mühendisliğindeki Yeri
Yazılım Mühendisliği YYurtaY. Ekip çalışması
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
YÖNETİM FONKSİYONLARI
Algoritmalar II Ders 5 Açgözlü Algoritmalar.
ISO 9001:2015 standardı – 8. Maddenin Tanıtımı
Kalite Yönetim Prensipleri (Devam)
Problem Çözme Yaklaşımları
ONTOLOJİ GELİŞTİRME ALANINDA ÇEVİK YAKLAŞIMLAR
Bilgisayar Bilimi Problem Çözme Süreci-2.
Yazılım Mühendisliği Temel Süreçler - Sistem Analizi
Yazılım Mühendisliği Temel Süreçler – PLANLAMA II
BENZETİM 2. Ders Prof.Dr.Berna Dengiz Sistemin Performans Ölçütleri
Sunum transkripti:

Bölüm 6 Yazılım Planlama Modified from Software Engineering: A Practitioner’s Approach, by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 7/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use.

Yazılım Projesi Planlama Proje planlamanın bütün amacı, karmaşık bir projenin kontrol edilmesi, gözlemlenmesi ve izlenmesi için bir strateji geliştirmektir. Neden Ürünün zamanında ve kaliteli bir şekilde teslimi için.

Proje Planlama Görev Kümeleri -I Proje kapsamını tespit et Yapılabilirliği (fizibilite) belirle Riskleri analiz et Risk analizi daha sonra işlenecek Gerekli kaynakları tanımla Gereken insan kaynaklarını belirle Tekrar kullanılabilir yazılım kaynaklarını belirle Çevresel kaynakları belirle

Proje Planlama Görev Kümeleri -II Maliyet ve çabayı (effort) tahmin et Problemi bileşenlerine ayır Boyut, fonksiyon noktaları, süreç görevleri veya kullanım durumlarını (use-cases) gözönüne alarak iki veya daha fazla tahmin belirle Tahminleri detaylandır, karşılaştır Bir proje takvimi geliştir Takvim geliştirme daha sonra tartışılacaktır. Manalı görev kümeleri belirle Görev ağı tanımla Takvim yapma araçlarını kullanarak takvimi hazırla Takvim izleme mekanizması tanımla

Tahmin Bir yazılım mühendisliği çalışmasının gerektirdiği kaynakların, maliyetin ve takvimin tahmini tecrübe iyi geçmiş bilgilere (metrik) erişim varolan kaliteli bilgilerin kullanılarak elle tutuluk bir tahminlerin yapılabilmesi cesareti Tahmin yapısında riski içerir ve bu rist belirsizliğe neden olabilir.

Kayıt altına al! Proje Kapsamı Yazılım Tahminler Projesi Riskler Planı Takvim Kontrol stratejisi Yazılım Projesi Planı

Kapsamı Anlamak için ... Müşteri ihtiyaçlarını anla iş konteksini (şartlarını) anla proje sınırlarını anla müşterinin motivasyonunu (hareket noktasını) anla değişiklikler için olası yolları anla anlaşılmalıki ... Anlasan bile hiçbir şey garanti altına alınmamıştır.

Kapsam nedir? Yazılım kapsamı aşağıdakileri tanımlar son kullanıcıya teslim edilecek fonksiyon ve özellikler girdi ve çıktı olarak kullanılacak veriler yazılımın kullanılması neticesinde kullanıcılara sunulacak içerik sistemi sınırlayan performans, sınırlamalar, arabirimler ve güvenilirlik iki teknikten birisi kullanılarak kapsam tanımlanır: Bütün paydaşlarla yapılan iletişimden sonra yazılım kapsamının hikayemsi tarifi ve açıklaması. Son kullanıcılar tarafından geliştirilen kullanım durumları (use-case)

Kapsamın Belirlenmesinin Aşamaları - 1 İlk aşamada kapsam-bağımsız (Context-free) sorular sorularak: problemi, çözüm isteyen kişileri, istenen çözümü ve çözümün etkinliliğini anlamaya çalışılır. Bu işin yapılmasını kim istiyor? Kim kullanacak? Başarılı bir çözümün ekonomik yararı ne olacaktır? Çözüm için başka bir kaynak varımıdır?

Kapsamın Belirlenmesinin Aşamaları - 2 2. aşamada problemi daha iyi anlamaya ve müşterinin fikirleri anlamaya çalışılır. Başarılı bir çözüm üretildiğinde iyi bir çıkış (çıktı) sizin (müşteri) için ne ifade eder? Bu çözüm hangi problemlere yönelik olacak? Çözümün kullanılacağı ortamı gösterir misiniz? Çözüm ile ulaşılması gereken performans ölçütleri ve şartları var mı?

Kapsamın Belirlenmesinin Aşamaları - 3 3. aşamada toplantı etkinliliğini arttırmayı amaçlar. Bu sorulara cevap verecek doğru kişi sizmisiniz? Cevaplar resmi mi? Sorularım sizin probleminizle alakalımı? Çok fazla soru mu soruyorum? Ekstra bilgi sağlayabilecek başka kişi var mı? Sormak gereken başka bir şey var mı?

Kapsamın Belirlenmesinin Aşamaları Bu aşamalardaki amaç iletişimi sağlamaktır “break-the-ice”

Kaynaklar (şekil 5.2) kişi çevresel proje kullanılabilir yazılım sayı yetenek sayı yer kullanılabilir yazılım OTS komponentleri tam-tecrübe yeni komponent kısmı-tecrübe çevresel donanım araçları ağ kaynakları

Kullanılabilir Yazılım Parçaları Off-the-shelf bileşenler (component) Tam-tecrübe edilmiş bileşenler Kısmi-tecrübe edilmiş bileşenler Yeni bileşenler

Yazılım Projesi Tahmini Önceleri yazılımlar sistemlerin maliyetinin küçük bir kesimini oluşturuyordu. Şimdilerde yazılım sistemlerin büyük bir kesimini oluşturmaktadır. Dolayısı ile yazılım proje maliyet tahmin hatası sistemi yararda sağlayabilir kayıp da. Tahmin işlemini insan, teknik, çevre ve stratejik-politik değişkenler etkileyebilir.

Yazılım Projesi Tahmini Projenin kapsamı anlaşılmalıdır Detaylandırma(bileşenlerine ayırma) gereklidir Geçmiş metrikler yardımcıdır En az iki farklı teknik kullanılmalıdır Belirsizlik kaçınılmazdır

Tahmin Teknikleri Geçmiş benzer proje tecrübesi Geleneksel tahmin teknikleri görev parçalama ve analizi ve çaba tahmini boyut (FP. gibi) tahmini Deneysel (Empirical) modeller Otomatikleşmiş araçlar

Tahminin Doğruluğunu Etkileyen Bileşenler Aşağıdakiler aracılığı ile ifade edilir/ doğrulanır. inşa edilecek ürünün planlayıcı tarafından düzgün bir şekilde tahmin derecesi boyut tahminini insan gücü, takvim zamanı ve para cinsine dönüştürebilme becerisi (geçmişteki projelerden elde edilen güvenilir yazılım metriklerinin kullanılabilirliğinin fonksiyonu) yazılım takımının yeteneklerinin proje planına yansıma derecesi yazılım mühendisliği çabalarının destekleyen çevre ve ürün ihtiyaçlarının dengesi Bu bölümde yazılım boyutlandırılmasına yoğunlaşılacaktır. Yazılım boyutu yapılacak işin boyutunu belirler.

Yazılım Boyutlandırma Yazılım boyutlandırma için 4 farklı yaklaşım vardır. Bulanık mantık boyutlandırma: Yaklaşım teknikleri kullanılır. Fonsiyonel nokta boyutlandırma: Standart bileşen boyutlandırma: Burada amaç sistemde kullanılan standart bileşenlerin (rapot, LOC vs) sıklığının belirlenmesinden sonra tecrübelere dayalı bir tahmin yapılmasıdır. Değişen boyutlandırma: Varolan projede tekrar kullanım, kod değişimi, kod silinmesi gibi durumlar olmasında kullanılır.

Bileşenlerine Ayırma Problemin bileşenlerine ayrılması Sürecin bileşenlerine ayrılması

Fonksiyonel Bileşenlerine Ayırma Kapsamın ifadesi fonksiyonel bileşenlerine ayırma Gramatik çözümleme uygula

Geleneksel Yöntemler:LOC/FP Yaklaşımı bilgileri kullanarak LOC/FP değerlerini hesapla proje tahmini için geçmiş verileri kullan These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.

Örnek Bir CAD sistemi geliştirilecektir. Sistem bir iş istasyonunda çalıştırılacaktır Çeşitli grafik donanımları kullanılacaktır: fare, digitizer, yüksek çözünürlüğü olan monitör, lazer yazıcı. Yazılım 2d ve 3d geometrik veriyi giriş olarak alacaktır. Mühendis iyi bir kullanıcı arabirimi ile CAD sistemini kullanacaktır. Bütün geometrik veri desteği ve gerekli diğer destekler CAD veritabanında olacaktır. Tasarım analiz modülü gerekli çıktıyı üretecektir ve bu çıktı çeşitli grafik donanımları tarafından görüntülenecektir.

Örnek: LOC Yaklaşımı Bu tipteki bir sistem için ortalama üretkenlik = 620 LOC/pm (ayda). Yüklenmiş işgücü oranı =$8000 her ay, herbir satırım maliyeti yaklaşık $13. LOC tahminlerine ve geçmiş üretkenlik verilerine bağlı olarak toplam tahmini proje maliyeti $431,000 ve tahmini insan gücü 54 kişi-ay.

3d Geometric Analysis Function Hesabı optimistic 4600 LOC muhtemel 6900 LOC kötümser 8600 LOC Hesabı – ayırlıklı ortalama kullanılarak Expected Value=(sopt+4smuh+skötümser)/6

Örnek: FP Yaklaşım Türetilen tahmini FP sayısı : FPtahmini = sayı-toplam X [0.65 + 0.01 X Topla (Fi)] FPtahmini = 37^2 organizasyonel ortalama üretkenlik = 6.5 FP/pm. Yüklenmiş işgücü oranı = $8000 her ay, yaklaşık $1230/FP. FP tahminlerine ve geçmiş üretkenlik verilerine bağlı olarak toplam tahmini proje maliyeti $461,000 ve tahmini insan gücü 58 kişi-ay.

Süreç-tabanlı Tahmin süreç anaçatısından bulundu anaçatı aktiviteleri uygulama fonksiyonları herbir uygulama fonksiyonu için herbir anaçatı aktivitesi tarafından ihtiyaç duyular çaba.

Süreç-tabanlı tahmin örneği Aylık 8000 dolar ortalama yüklenmiş işgücü oranına dayanarak, toplam tahmini proje maliyeti $368,000 ve toplam tahmini çaba 46 kişi-aydır

Araç-tabanlı Tahminler proje karakteristikleri kalibrasyon faktörleri LOC/FP verisi

Kullanım-durumları ile Tahminler Bu tip bir sistem için ortalama üretkenlik 620 LOC/pm ve yüklenmiş işgücü oranı aylık $8000 kullanılarak herbir satır için maliyet yaklaşık 13dolardır. Kullanım durumları tahminlerine ve geçmiş üretkenlik verilerine dayanarak, toplam tahmini proje maliyeti $552,000 ve tahmini çaba 68 kişi-aydır..

Deneysel Tahmin Modelleri Genel form: üs çaba = ayar katsayısı * boyut genellikle kişi-ay olarak üretilir deneysel olarak türetilmiş genellikle LOC tur fakat FP de olabilir. ya bir sabittir veya proje karmaşıklığına göre üretilmiş bir sayıdır.

COCOMO-II Constructive Cost Model COCOMO II aşağıdaki alanları işaret eden hiyerarşik bir tahmin modelidir: Uygulama bileşim modeli. Yazılım mühendisliğinin ilk aşamalarında kullanılır (kullanıcı arabirimleri prototiplenirken, yazılım ve sistem etkileşimi gözönüne alındığında, performan değerlendirmesinde ve teknoloji olgunluğu değerlendirmesi üstün olduğu zaman. Erken tasarım aşaması modeli. İhtiyaçlar sabitlendiği zaman ve temel yazılım mimarisi kurulduğu zaman kullanılır. Mimari-sonrası aşaması modeli. Yazılımın inşası sırasında kullanılır.

Yazılım Eşitliği Dinamik çokdeğişkenli bir model E = [LOC x B0.333/P]3 x (1/t4) E = kişi-ay veya kişi-yıl cinsinden efor t = ay veya yıl cinsinde proje süresi, B = “özel yetenek faktörü” P = “üretkenlik parametresi”

OO Projeleri için Tahmin-I Çaba bileşenlerine ayırma, FP analizi ve geleneksel uygulamalar için uygulanabilir herhangi bir metod kullanarak tahminler geliştir. Nesne yönelimli ihtiyaç modelleme kullanarak (sonra işlenecek) kullanım-durumlarını geliştir ve sayısını belirle. Analiz modelinden, anahtar sınıfların sayısını belirle (analiz sınıfları da denir). Uygulama için arabirim tiplerini kategorize et ve destek sııfları için bir çoğullayıcı geliştir: Arabirim tipi Çoğullayıcı No GUI 2.0 Text-based user interface 2.25 GUI 2.5 Complex GUI 3.0

OO Projeleri için Tahmin-II Anahtar sınıf sayıları ile çoğulayıcıları çarp ve destek sınıfları sayısı için bir tahmin bul. Toplam sınıf sayısı ile (anahtar+destek) herbir sınıf için iş-birim ortalama sayısı ile çarp. Lorenz ve Kidd’in önerisi herbir sınıf için 15-20 kişi- gündü. sınıf tabanlı tahmini herbir kullanım-durumu iş- birimlerinin ortalama sayısının çarpımı ile çapraz kontrol et.

Çevik Projeler için Tahmin Herbir kullanıcı senaryosu amaçların tahmini için ayrı ayrı değerlendirilir. Geliştirme için senaryo yazılım mühendisliği görevlerine ayrılır. Herbir görev ayrı ayrı tahmin edilir. Not: Tahmin geçmiş veriye dayalı, deneysel veya tecrübe ile olabilir. Alternatif olarak, senaryonun hacmi, LOC, FP veya diğer hacım tabanlı ölçümler ile tahmin edilebilir. Herbir görev için tahminler, senaryonun tahminin bulunması için toplanır. Alternatif olarak, senaryo için hacim tahminleri geçmiş veriler kullanılarak çaba (efor) cinsine çevrilir. Bir yazılım arttırımı için uygulanacak senaryoların çaba tahminleri, arttırım için çaba tahmini geliştirmek amacıyla toplanır.

Yap-satınal (make-buy) kararı

Beklenen Maliyeti Hesaplama (yol olasılığı) x (tahmini yol maliyeti) i i örnek olarak, inşa için beklenen maliyet: beklenen maliyet = 0.30 ($380K) + 0.70 ($450K) inşa = $429 K benzer olarak, beklenen maliyet = $382K tekrar kullan beklenen maliyet = $267K satın al beklenen maliyet = $410K kontrat