Yazlm Mhendislii Ders 2 Yazlm Gelitirme Hedef Yazlm

  • Slides: 31
Download presentation
Yazılım Mühendisliği Ders 2: Yazılım Geliştirme

Yazılım Mühendisliği Ders 2: Yazılım Geliştirme

Hedef Yazılım geliştirme yaşam döngüsünün temel aşamaları olan, �Planlama aşaması, �Çözümleme aşaması, �Tasarım aşaması,

Hedef Yazılım geliştirme yaşam döngüsünün temel aşamaları olan, �Planlama aşaması, �Çözümleme aşaması, �Tasarım aşaması, �Gerçekleştirim aşaması ve �Bakım aşaması anlatılarak, yaşam döngüsü modellerinin (süreç modelleri) açıklanması hedeflenmektedir. Yazılım Mühendisliği 2

Yazılım Mühendisliği 3

Yazılım Mühendisliği 3

Yazılım Yaşam Döngüsü Yazılım Mühendisliği 4

Yazılım Yaşam Döngüsü Yazılım Mühendisliği 4

Yazılım Yaşam Döngüsü Yazılım Mühendisliği 5

Yazılım Yaşam Döngüsü Yazılım Mühendisliği 5

Yazılım Yaşam Döngüsü Yazılım Mühendisliği 6

Yazılım Yaşam Döngüsü Yazılım Mühendisliği 6

Yazılım Yaşam Döngüsü Yazılım Mühendisliği 7

Yazılım Yaşam Döngüsü Yazılım Mühendisliği 7

Yazılım Yaşam Döngüsü Yazılım Mühendisliği 8

Yazılım Yaşam Döngüsü Yazılım Mühendisliği 8

Yazılım Yaşam Döngüsü Yazılım Mühendisliği 9

Yazılım Yaşam Döngüsü Yazılım Mühendisliği 9

Belirtim Yöntemleri Bir temel sürece ilişkin işlevleri yerine getirmek amacıyla kullanılan yöntemler "belirtim yöntemleri"

Belirtim Yöntemleri Bir temel sürece ilişkin işlevleri yerine getirmek amacıyla kullanılan yöntemler "belirtim yöntemleri" olarak adlandırılmaktadır. Üç sınıfa ayrılabilir: � Süreç Akışı için kullanılan Belirtim Yöntemleri � Süreç Tanımlama Yöntemleri � Veri Tanımlama Yöntemleri Yazılım Mühendisliği 10

Belirtim Yöntemleri Yazılım Mühendisliği 11

Belirtim Yöntemleri Yazılım Mühendisliği 11

Yazılım Süreç Modelleri, Yazılım Yaşam Döngüsü'nde belirtilen süreçlerin geliştirme aşamasında, hangi düzen ya da

Yazılım Süreç Modelleri, Yazılım Yaşam Döngüsü'nde belirtilen süreçlerin geliştirme aşamasında, hangi düzen ya da sırada, nasıl uygulanılacağını tanımlar. Yazılım Üretim Yaşam Döngüsü beş sınıfta incelenebilir. 1. Gelişigüzel Model 2. Barok Model 3. Çağlayan Model 4. V Modeli 5. Spiral (Helezonik) Model 6. Prototipleme Modeli 7. Evrimsel Geliştirme Modeli 8. Artımlı Geliştirme Modeli Yazılım Mühendisliği 12

Gelişigüzel Model-1960 lar Yazılım geliştirme ortamında herhangi bir model veya yöntemin kullanılmadığı, yalnızca geliştiren

Gelişigüzel Model-1960 lar Yazılım geliştirme ortamında herhangi bir model veya yöntemin kullanılmadığı, yalnızca geliştiren kişiye bağımlı, hatta geliştiren kişinin bile aradan belirli bir zaman geçtikten sonra anlayamayacağı ve değiştirme güçlüğü yaşanılan ortamlardaki üretim tarzı "Gelişigüzel Model" olarak adlandırılmaktadır. Bu modelle üretilen ürünlerin izlenebilirliği, bakılabilirliği oldukça zor, bazı durumlarda olanaksızdır. Yazılım Mühendisliği 13

Barok Model-1970 ler Barok modeli, planlama, çözümleme, tasarım ve gerçekleştirim işlevleri içermektedir. Bu modelin

Barok Model-1970 ler Barok modeli, planlama, çözümleme, tasarım ve gerçekleştirim işlevleri içermektedir. Bu modelin ayırıcı özelliği, "Belgeleme" olgusuna ayrı bir önem atfetmesi ve belgelemeyi bir süreç olarak ele almasıdır. Belgelemenin, yazılımın geliştirilmesi ve sınanmasından hemen sonra yapılması öngörülmektedir. Barok modelin zayıf tarafı ise aşamalar arasındaki geri dönüşlerin nasıl yapılacağının tanımlı olmamasıdır. Yazılım Mühendisliği 14

Çağlayan Model-(Klasik Model) Yazılım Mühendisliği 15

Çağlayan Model-(Klasik Model) Yazılım Mühendisliği 15

Çağlayan Model Eksiklikler § Gerçek yaşamdaki projelerin çok azı yineleme gerektirmez. § Yazılımın kullanıcıya

Çağlayan Model Eksiklikler § Gerçek yaşamdaki projelerin çok azı yineleme gerektirmez. § Yazılımın kullanıcıya ulaşma zamanı oldukça uzundur. § Gereksinim tanımları çoğu kez net olarak yapılamaz, bu konudaki eksiklik ya da yanlışın ortaya çıkma zamanı gerçekleştirim sonrasına rastlar. Bu durumda yanlışların düzeltilme ya da eksikliklerin giderilme maliyetleri yükselir. § Çağlayan model ise söz konusu işleri üretim aşamasının sonunda öngörmekte, bu aşamaya kadar yapılması gereken işler (planlama, çözümleme, tasarım, kalite etkinlikleri vb. ) teknik personel için çoğu kez önemsiz olarak görülebilmektedir. Bu nedenle bu model ile yapılan üretimlerde yazılım ekipleri mutsuz olmakta ve kod yazma dışında olan ve iş yükünün yaklaşık %80'ini kapsayan kısma yeterli önemi vermemektedir. § Üst düzey yönetimlerin hedeflenen ürünü görme süresinin uzun oluşu projelerde sorunlara yol açmaktadır. Yazılım Mühendisliği 16

V Modeli Yazılım Mühendisliği 17

V Modeli Yazılım Mühendisliği 17

V Modeli V-Süreç Modeli, Çağlayan Modelinin uygulanmasını, "Üretim" ve "Sınama" işlevlerinin ne zaman yapılacağını

V Modeli V-Süreç Modeli, Çağlayan Modelinin uygulanmasını, "Üretim" ve "Sınama" işlevlerinin ne zaman yapılacağını vurgulayarak daha anlamlı hale getirmektedir. V modelinin sol tarafı üretim, sağ tarafı ise sınama işlevleri ile ilgilidir. Model aynı zamanda sınama işlemlerinde hata bulma durumunda nereye dönüleceğini de belirtmektedir. Sağ tarafta yapılan sınama işlemlerinde bulunan bir hata durumunda, yatay olarak karşısına gelen sol taraf işlevlerine dönülmektedir. Örneğin sistem sınama işlemlerinde bulunan yanlışların düzeltilmesi amacıyla mimari modelin sol tarafındaki sistem tasarımına dönülmekte, alt sistem tasarımı, modül geliştirme, modül sınama, alt sistem sınama ve sistem sınama işlemleri yinelenmektedir. Yazılım Mühendisliği 18

V Modeli Çıktıları Yazılım Mühendisliği 19

V Modeli Çıktıları Yazılım Mühendisliği 19

Spiral (Helezonik) Model Yazılım Mühendisliği 20

Spiral (Helezonik) Model Yazılım Mühendisliği 20

Spiral Modelin Üstün Yönleri Yazılım Mühendisliği 21

Spiral Modelin Üstün Yönleri Yazılım Mühendisliği 21

Prototipleme Modeli Prototipleme işlevinin temel amacı, ilgili alt modellerde ortaya çıkabilecek belirsizlikleri azaltmaktır. Prototip

Prototipleme Modeli Prototipleme işlevinin temel amacı, ilgili alt modellerde ortaya çıkabilecek belirsizlikleri azaltmaktır. Prototip çalışması araştırma türü bir çalışma olabileceği gibi sonradan atılacak bir yazılım parçası da olabilir. Yazılım Mühendisliği 22

Prototipleme Modeli Prototip geliştirmedeki iş adımları: 1. Belirsizliği tanımla 2. Çözümleri tanımla 3. Prototip

Prototipleme Modeli Prototip geliştirmedeki iş adımları: 1. Belirsizliği tanımla 2. Çözümleri tanımla 3. Prototip çalışması yap 4. Belirsizliğin sonucunu elde et Prototipleme modelinin temel zayıf yönü, kaynak maliyetlerinin kestirimindeki zayıflığıdır. Bir prototip çalışmasının ne kadar süreceği, ne kadar iş yükü gerektireceği kolayca kestirilememekte ve dolayısıyla yönetimi zorlaşmaktadır. Yazılım Mühendisliği 23

Evrimsel Geliştirme Süreç Modeli Evrimsel Geliştirme Süreç modeli, daha çok coğrafik olarak geniş alana

Evrimsel Geliştirme Süreç Modeli Evrimsel Geliştirme Süreç modeli, daha çok coğrafik olarak geniş alana yayılmış, çok birimli organizasyonlar için önerilmektedir. Yazılım Mühendisliği 24

Artımsal Geliştirme Süreç Modeli Modelde üretilen ve uygulamaya alınan her ürün sürümü birbirini içerecek

Artımsal Geliştirme Süreç Modeli Modelde üretilen ve uygulamaya alınan her ürün sürümü birbirini içerecek şekilde giderek artan sayıda işlev içerecek biçimde geliştirilmektedir. Öncelikle ürüne ilişkin çekirdek bir kısım geliştirilerek uygulamaya alınmakta ardından yeni işlevsellikler eklenerek yeni sürümler elde edilmektedir. Yazılım Mühendisliği 25

Artımsal Geliştirme Süreç Modeli Yazılım Mühendisliği 26

Artımsal Geliştirme Süreç Modeli Yazılım Mühendisliği 26

Araştırma Tabanlı Süreç Modeli • Araştırma ortamları bütünüyle belirsizlik üzerinde çalışan ortamlardır. • Yapılacak

Araştırma Tabanlı Süreç Modeli • Araştırma ortamları bütünüyle belirsizlik üzerinde çalışan ortamlardır. • Yapılacak işlerden edinilecek sonuçlar belirgin değildir ve bir sonraki adımın iş tanımları büyük ölçüde bir önceki adımın sonuçlarına bağlıdır. • Bu nedenle gerek zaman gerekse işgücü planlamasında zorluklarla karşılaşılır. • Helezonik modelin küçük dönüşleri biçiminde gerçekleştirilir. • Geliştirilen yazılımlar genellikle sınırlı kez kullanılır ve kullanım bittikten sonra işe yaramaz hale gelir ve atılırlar. Yazılım Mühendisliği 27

Metedolojiler Metodoloji, bir Bilgisayar Yazılım Tasarım projesi ya da yazılımın yaşam döngüsü aşamaları boyunca

Metedolojiler Metodoloji, bir Bilgisayar Yazılım Tasarım projesi ya da yazılımın yaşam döngüsü aşamaları boyunca kullanılacak ve birbiriyle uyumlu yöntemler bütününü içerir. Herhangi bir metodoloji, 1. Bir süreç modeli 2. Belirli sayıda belirtim yöntemi içerir. Günümüzde uygulamada yüzden fazla metodoloji kullanılmaktadır. Bir çok kuruluş, belirli bir süreç modelini temel alarak kendi metodolojilerini geliştirmekte ve uygulamaktadır. Metodolojiler genelde Çağlayan ya da Spiral modeli temel almaktadır. Örnek: Yourdon tarafından geliştirilmiş olan "Yapısal Sistem Tasarımı" metodolojisi. Yazılım Mühendisliği 28

Metedolojiler Bir metodolojide bulunması gereken temel bileşen ya da özellikler aşağıdaki gibidir: Yazılım Mühendisliği

Metedolojiler Bir metodolojide bulunması gereken temel bileşen ya da özellikler aşağıdaki gibidir: Yazılım Mühendisliği 29

Yourdon Yapısal Sistem Tasarımı Metodolojisi Yazılım Mühendisliği 30

Yourdon Yapısal Sistem Tasarımı Metodolojisi Yazılım Mühendisliği 30

Çalışma Soruları 1. Yazılım yaşam döngüsünün temel adımlarını açıklayınız. 2. Süreç modelleri ve belirtim

Çalışma Soruları 1. Yazılım yaşam döngüsünün temel adımlarını açıklayınız. 2. Süreç modelleri ve belirtim yöntemlerinin önemi nedir? 3. Süreç modelleri ile belirtim yöntemleri arasındaki farklılıklar nelerdir? 4. Barok modeli tanımlayınız, yararlarını ve aksak yönleri nelerdir? 5. Şelale modeli tanımlayınız, yararlarını ve aksak yönleri nelerdir? 6. Spiral modeli tanımlayınız, ayırıcı özelliklerini belirtiniz. Yararlarını ve aksak yönlerini açıklayınız. 7. V model kullanılarak geliştirilecek örnek bir proje tanımı yapınız. 8. Prototip Geliştirme modeli ile geliştirilecek bir projede uygulanabilecek üç prototipleme örneği veriniz. 9. Evrimsel Geliştirme süreç modelinde Konfigürasyon yönetimi ve değişiklik denetimi neden sorundur? 10. Artımsal geliştirme süreç modelini tanımlayınız, yararlı ve aksak yönlerini belirtiniz. 11. Artımsal geliştirme süreç modeli kullanılarak geliştirilecek bir proje örneği veriniz. Gerekçenizi açıklayınız. 12. Araştırma tabanlı süreç modeli için uygun proje örnekleri veriniz. 13. Yourdon Yapısal Sistem Geliştirme Metodolojisini tanımlayınız. Yazılım Mühendisliği 31