Yazılım Süreçleri Software Processes

advertisement
Yazılım Süreçleri
Software Processes
Yazılım geliştirme Süreç Modelleri
Software Development Process Models
Proje Yönetimi Süreçleri
Project Management Process
Yazılım Geliştirme Süreçleri
Software Development Process
Amaç: Yüksek nitelikli (high quality) yazılım
projeleri geliştirmek software project
Nasıl Gerçekleşir? Tasarım, kodlama, test
aktivitelerine odaklanarak yazılım ürününün
geliştirilmesidir.
Proses Ne demektir?
Girdileri (inputs) , çıktılara (outputs) dönüştüren bir
dizi aktivitedir [ISO 12207]
ISO (International Organization for Standardization)
ISO12207 yazılım yaşam döngüsü prosesleri
(software lifecycle processes) için bir ISO
standartıdır.
Standart sözcüğü bir yazılım ürününün
geliştirilmesi (developing) ve devamlılığının
sağlanması (maintaining) için gereken tüm işleri
tanımlar.
.
Yazılım Projesi
sağlanması
Kullanıcı
İhtiyaçlarını
Yazılım Ürünü
Ürünün Sadece Teslim Edilmesi
Yeterli midir?
Hayır; kesinlikle yeterli değildir.
Yazılım ürünün müşterinin ihtiyaçlarını
(gereksinimlerini) karşılar şekilde çözülmesi yeterli
değildir.
Müşterinin ihtiyaçlarını karşılanırken projenin aynı
zamanda
düşük maliyetle
Hedeflenen zamanda
Yüksek nitelikli
olmasına önem vermek gerekir.
Bu İlave Amaçlar Nasıl Sağlanır?
Yazılım Süreçleri bu sorunun cevabını verir.
Herhangi bir yazılım ürünün geliştirilmesi için çeşitli yazılım
geliştirme süreç tipleri vardır.
Bunların içerisinden optimum olanı seçilerek yüksek nitelikli ve
üretkne ürünler elde edilebilir.
Gerçek ve Planlanmış Süreçler arasında
fark var mıdır?
Bir projedeki gerçekleştirilmiş (implemented)
proses gerçek (actual) prosesdir.
Eğer belirlenmiş (specified) süreç bazı problemler
içeriyorsa, bu proses hiçbir şekilde gerçek proses
değildir.
Planlanmış proses olarak adlandırılabilir.
Proses Modeli: Başarının Reçetesi
Üzerinde çalışılan proje için en uygun olan genel bir
prosesin kullanımına proses modeli adı verilir.
Proses modeli ilgili projenin yapısına uygun iyi
tanımlanmış (well-defined) bir yazılım ürünü
gerçekleştirilir.
Yazılım Prosesi Nasıl Belirlenir?
Bir yazılım prosesi yüksek düzeyde (high level) bir
dizi aşamadan meydana gelir.
Altproses (subprocess) ise bu bir dizi adımın
herhangi bir aşamasıdır.
Diğer Prosesler :
Yazılım Olmayan (Nonsoftware) Prosesler
Yazılım geliştirme aktivitesini etkileyen farklı pek çok
prosesler vardır.
İş Prosesleri (Business process)
Sosyal Prosesler (Social process)
Eğitim Prosesleri (Training Process)
……….
Yazılım Prosesi
(Software Process)
Yazılım ürünü geliştirmenin hem teknik hem de
yönetimsel (management) konuları Yazılım Prosesi
olarak adlandırılır.
Yazılım Prosesinin 2 büyük bileşeni vardır.
Software Process has two major components
Proje Geliştirme Prosesi (tüm mühendislik
aktiviteleri gerçekleştirilir
Proje Yönetimi : projenin planlanması ve
geliştirilmesi süresince kontrolü aktiviteleridir.
Maliyet, zaman çizelgeleri, nitelik ve
diğerleri
Yazılım Geliştirme Proses
Modelleri
Şelale Modeli -Waterfall Model
Prototipleme- Prototyping
İteratif Gelştirme- Iterative Development
Rational Unified Process
Timeboxing Model
Extreme Programming ve Çevik Prosesler (Agile Processes)
Yazılım Geliştirme Proses Modelleri
Amaç: Yüksek nitelikli yazılım ürünü geliştirmek
Bu nedenle uygulanan aktiviteler doğrudan yazılım
ürününün tasatımı, kodlanması ve testi işlemleri ile ilgilidir.
Geliştirme prosesi (Development process) bir yazılım
ürününün çekirdeğidir.
Yönetim sürecine ( management Project) genellikle
geliştirme proseslerine göre karar verilir.
Şelale Modeli -Waterfall Model
Yazılım ürünü geliştirilirken tüm aşamalar lineer olarak
düzenlendiği için en basit model olarak adlandırılır.
Herhangi bir Geliştirme Aşamasının
Diğerinden Ayrılması
Büyük ve karmaşık yazılım sistemleri daha
küçük parçalara ayrılarak yazılım ürününe
dönüştürülür.
Karmaşık gerçek dünya problemlerinin
çözümünde gerek mühendisler gerekse
yöneticiler için daha etkili bir çözüm yoludur.
Yazılım Kalitesi (Software Quality)
Defect Repair Cost
Requirements
Maintenance
Design
Implementation
Test
Yazılım ürününün geliştirilmesi aşamasında hataları
(defects) çalışmanın ilk aşamalarında bulmak daha kolay
ve çok daha az maliyetlidir.
16
Başarılı Sonuçlar Nasıl
Gerçekleşecektir?
V&V
Verification (doğrulama) ve Validation (sağlama)
müşterinin gereksinimlerini karşılayan yazılım
ürünlerine ulaşmanın en önemli koşuludur.
Doğrulama (Verification): Herhangi bir geliştirme aşamasının girdisi ile
birlikte çıktısı
Ürünü doğru mu geliştiriyoruz? sorusunu cevaplar
“Are we building the product right?”
Sağlama (Validation) : Sistemin tüm gereksinimlerine uygun olarak
şekilde her tamamlanmış bir döngünün çıktısı
Doğru ürün mü geliştiriyoruz? Sorusunu cevaplar
“Are we building the right product?”
Bazı betimleme mekanizmaları her aşamada gerçekleştirilmelidir.
Download