BMH-405 YAZILIM MÜHENDİSLİĞİ Yazılım Mühendisliği Yöntembilimleri (Methodologies) veya Yazılım Geliştirme Süreç Modelleri Dr. Musa ATAŞ Siirt Üniversitesi Bilgisayar Mühendisliği musa.ataş@siirt.edu.tr Ref list: Dr. Yunus Emre SELÇUK ve http://www.yazgelistir.com/makale/proje-yonetimsurecleri
Yazılım Geliştirme Modelleri Şelale Modeli (Waterfall) Sistem maliyetine etki eden faktörler Yapılabilirlik araştırması (Feasibility study) Proje yaşam çevrimi Proje yönetimi Sistem isterleri belirtimi Sistem tasarımı Sistem gerçekleştirme Sistem testi
Şelale Modeli Bu modele Klasik çevrim de denilmektedir. Bu model yazılım sektöründe en yaygın kullanılan modellerden birisidir. Model süreci müşteriden isteklerin alınması ile başlar. Müşteriden alınan istekler analistlere iletilerek şelale modeline uygun bir tasarımın çıkartılması istenir. Analistler aşağıda bulunan resimde ki sıraya tamamıyla bağlı kalarak modeli hazırlamaya başlarlar. Aşağıda ki şekil de şelale modeline bir örnek verilmiştir.
Şelale Modeli
Şekilde görüldüğü üzere onaylama aşamasında tekrar analiz aşamasına dönülmektedir. Bu demek oluyor ki, her onay aşamasında müşteri onay vermez ve istekte bulunursa bu süreç yeniden dizayn edilecektir. Süreç bu aşamada sıkıntıya düşmektedir. Fakat plansız çalışmaktan iyi olacağı kesindir. Şelale modelinde karşımıza bir takım sorunlar çıkmaktadır. Bunlar, Müşteri isteklerinin alındığı aşamada müşteri isteklerini tamamen aktarsa bile projenin ilerleyen safhalarında proje özelliklerinde yeni bir özellik keşfedebilir. Bu durum analizi tamamen revize etmeyi gerektirebilir. Yazılımcı ve müşteri arasında her hangi bir bağ olmadığından yazılımcı proje modeline göre yazılımı hazırlayıp ilgili kişiye teslim eder. Bu gibi durumlarda yazılım teslim süresi 1 ay ile N yıl arasında olabileceğinden müşteri bu aşamada bekler ve çıkan yazılımı incelediğinde isteklerinin yapılmadığı veya yetersiz olduğunu tespit eder. Oysa yazılımcı ile her aşamada iletişimde bulunsa bu sorunlar olmayacaktı. Müşteri yazılımını ancak tamamıyla kodlandıktan sonra test edebilir. Bu süre içerisinde ihtiyaçlar gelişmiş olabilir ve yazılım yetersiz kalabilir. Müşteri artı ve eksileriyle yazılımı kabul etmek zorunda kalabilir. Ek bir konu proje dokümanının oluşturulmasıdır. Proje dokümanı eş zamanlı olarak oluşur ve inanılmaz bir vakit kaybıdır. Kısaca şelale modeli için, plansız çalışmaktansa bu model tercih edilebilir söylemi kullanmak yersiz olmaz.
Need for a Prototype in Software Development There are several uses of a prototype. An important purpose is to illustrate the input data formats, messages, reports, and the interactive dialogues to the customer. This is a valuable mechanism for gaining better understanding of the customer s needs: how the screens might look like how the user interface would behave how the system would produce outputs This is something similar to what the architectural designers of a building do; they show a prototype of the building to their customer. The customer can evaluate whether he likes it or not and the changes that he would need in the actual product. A similar thing happens in the case of a software product and its prototyping model.
Another reason for developing a prototype is that it is impossible to get the perfect product in the first attempt. Many researchers and engineers advocate that if you want to develop a good product you must plan to throw away the first version. The experience gained in developing the prototype can be used to develop the final product. A prototyping model can be used when technical solutions are unclear to the development team. A developed prototype can help engineers to critically examine the technical issues associated with the product development. Often, major design decisions depend on issues like the response time of a hardware controller, or the efficiency of a sorting algorithm, etc. In such circumstances, a prototype may be the best or the only way to resolve the technical issues. Examples for prototype model: A prototype of the actual product is preferred in situations such as: user requirements are not complete technical issues are not clear
X Model
Arttırımsal Model (Yinelemeli, Incremental veya Iterative) Arttırımsal model projenin küçük parçalara ayrılarak yapılması esasına dayanır. Projenin analizi yani gereksinimleri belirlendikten sonra arrtırımsal bazda ayrıştırma yapılır. Gereksinimler daha küçük parçalara bölünür ve projenin parça parça testine dayanarak ilerlemesi sağlanır. Şelale modeline oranla biraz daha esnek ve riski düşüktür. Aşağıdaki şekil de arttırımsal modelin işleyişine bir örnek verilmiştir.
Spiral Model Hem klasik çevrim hem de prototipleme yöntemlerinin en iyi yönlerinin birleştirilmesiyle oluşturulmuştur. Bu modele helozonik model adı da verilebilir. Spiral yazılım geliştirme modeli temel olarak 4 bölümden oluşmaktadır. Bunlar, planlama, risk yönetimi, üretim ve kullanıcı değerlendirmeleridir. Planlama aşamasında projenin analizi yapılır ve her modül ayrıntısıyla dokümante edilir. Risk analizi aşamasında projenin ne kadar risk taşıdığı, hangi modüllerde sorun olabileceği gibi durumların risk analizleri yapılarak risk yönetimi sağlanır. Üretim kısmında projenin kodlanması gelir. Kullanıcı değerlendirmeleri, adından da anlaşılacağı gibi müşterinin son değerlendirmelerini içerir. Aşağıdaki şekil de spiral modelin işleyişine bir örnek verilmiştir.
Spiral Model Spiral model risk analizi ve prototipler üzerine kurulmuş bir modeldir. Her döngü başlamadan önce modül için risk analizi yapılır. Daha sonra risk analizi yapılmış olan modülün prototipi çıkartılır. Her döngü sonunda yeniden analiz yapılır. Risk analizleri, gereksinimler ve kısıtlamalar çıkartılır. Spiral model için daha önce geliştirilmiş ve yeni projede kullanılacak olan modüller için kullanılması uygundur diyebiliriz. Spiral modelin en büyük avantajlarından birisi risk analizlerinin yapılmasıdır. Bu sayede maliyet ve kalite kontrol altında tutulur. Fakat önemli bir dezavantajı vardır; Spiral model küçük projelerde kullanılamadığı gibi risk analizi üzerine uzmanlık gerektiren bir modeldir. Bu nedenle tercih edilen bir model olduğu söylenemez.