1.Yazılım Geliştirme Metotları1 1.1 Klasik Çevrim(Waterfall) 1.2 V Modeli 1.3 Prototipleme/Örnekleme 1.4 Spiral Model 1.5 Evrimsel Geliştirme 1.6 Evrimsel Prototipleme 1.7 Artımlı Geliştirme 1.8 Araştırmaya Dayalı Geliştirme 1.9 Gelişigüzel Geliştirme 1.10 Özneye Yönelik Geliştirme 1.11 Bileşen Tabanlı Geliştirme 1.12 Özelliğe Yönelik Programlama 1.13 Uç Programlama(Extreme Programming - XP) 1.14 1 Çevik Yazılım Geliştirme Yöntemi ……… Bu düzenleme Yazılım Mühendisliği Bölümü 4. sınıf öğrencisi Kerem Vatandaş tarafından yapılmıştır. 1.1 Klasik Çevrim(Waterfall) Müşterinin tüm isterleri bir defada ve açıklayıcı tanımlayabilmesi çoğu zaman mümkün değildir. Müşteri, ürünün tamamı bitinceye kadar beklemek durumundadır. Waterfall modelde yazılımın gelişimi doğrusaldır. İyi tanımlı, isterleri kesinleşmiş, fazla zaman olması beklenmeyen projeler için uygun bir yöntemdir. 1.2 V Modeli İsterlerin iyi tanımlandığı, belirsizliklerin az olduğu ve aşamalar halinde ilerlenmesi erken projelerde V modeli iyi sonuçlar verir. Sistem geçerleme sırasında karşılaşılan sorunu gidermek için sistem isterleri çözümlemesinin tekrarlanması gerekir. 1.3 Prototipleme/Örnekleme ve müşteri Bu modelde çabuk tasarım, prototip geliştirme değerlendirmesinden sonra prototip iyileştirilip referans ürün ortaya konur. Müşteriye sunulan ön ürün ilk ürün olarak kabul edilir ya da iptal edilip en baştan yapılabilir. 1.4 Spiral Model Klasik çevrim ve prototipleme yöntemlerinin iyi yönlerinin birleştirilmesiyle oluşmuştur. Bu yöntemde önce gereksinimlerin bir kısmı belirlenir ve ön ürün yapılır, daha sonra sistemin geri kalan kısmı yapılır. Genel olarak, art arda tekrarlanan dört aşamadan meydana gelir. 1.5 Evrimsel Geliştirme Her evrimde geliştirilen ürünler uygulama alanında tam işlevselliğine sahiptir. Modelin uygulamadaki başarısı ilk evrimde ortaya çıkan ürüne bağlıdır. 1.6 Evrimsel Prototipleme Evrimsel geliştirmeden biraz farklı olarak, her evrimde ortaya bir prototip yani ön ürün çıkarılır. Ön ürünün uygulama alanında denenmesinden sonra, kullanıcı girdileri alınarak bir başka ön ürün oluşturulur ve denemeye sunulur. Bu şekilde geliştirmeye devam edilerek ürün son haline getirilir ve sonra kullanıma sunulur. 1.7 Artımlı Geliştirme İsterlerinin geliştirilmesi göre çekirdek sistemin temel bazı işlevleri tamamı belirli olan bir ürünün sürümler ilkesine dayanmaktadır. Önce en temel isterlere yapıda olan ilk ürün geliştirilir. Bu ürün asıl işlevlerini yerine getirebilecek durumdadır, anacak eksiktir. Her sürüm bir öncekinden daha fazla işlevselliğe sahiptir. Tüm isterleri tanımlı bir yazılımın dört sürüm halinde gerçekleşmesi artımlı olarak gerçekleşmektedir. Bu model evrimsel geliştirmeye benzemekle beraber en büyük farkı, sürümlerin tam işlevsellik içermemesidir. 1.8 Araştırmaya Dayalı Geliştirme: Araştırma projeleri genellikle tam belirsizlik ile başlar. Belirli bir konuda deneyim kazanmak amacıyla geliştirme yapılabilir. Araştırmaya dayalı olduğu için sonuçları hakkında kesin bir şey söylenemez. Bu araştırmalar asıl sistem geliştirme için kullanılacak alt yapıyı oluşturacaktır. 1.9 Gelişigüzel Geliştirme Bazı projeler geliştirilirken herhangi bir model yada yöntem dayandırılmadan gelişigüzel yapılır. Herhangi bir süreç izlemeden ve belgelendirme yapılmadan yalnızca kodlama ile ürün geliştirilir. Çalışan ürün elde etmek için benimsenmektedir ama yazılımda ne destek vardır, ne de disiplin. 1.10 Özneye Yönelik Geliştirme Tasarımın nesneye yönelik olarak yapılması durumunda, özellikle büyük ölçekli yazılımlar için gerçekleştirilmesi gereken nesne adedinin çok fazla olması karmaşıklığa yok açmaktadır. Bu nedenle, nesneden daha yüksek bir soyutlama düzeyine(abstraction level) gereksinim duyulmuştur. Bu düzeyde artık nesneler değil özneler(subject) ile sistem tasarımı ve gerçekleştirimi yapılmaktadır. Bu şekilde yapılan geliştirme işlemine özneye yönelik programlama denilmektedir. Kullanım yerleri; ~> Ofis işlemleri için paket yazılım ~> Geniş alana dağıtılmış merkezler arasında ofis otomasyonu ~> Komuta ve kontrol sistemi gerçekleştirimi 1.11 Bileşen Tabanlı Geliştirme Önceden geliştirilmiş uygun bileşenlerle sistem oluşturmaya bileşen tabanlı geliştirme(component-based development) demektedir. Bileşen tabanlı geliştirme soyutlama arayüzler aracılığıyla yapılır. Nesneler mantıksal bir modele karşıklık gelen çalıştırma anı varlıklarını ifade ederken, bileşenler büyük bir yazılımın yapısal parçalarını ifade ederler. Bileşen tabanlı geliştirmenin temelini oluşturan şey yeniden kullanımdır. 1.12 Özelliğe Yönelik Programlama Bazı programlama problemlerine ilişkin tasarım kararlarının ne yordamsal ne de nesneye yönelik programlama teknikleriyle gerçekleştirilemeyeceği durumlar olabilir. Bu tasarım kararlarının kodun dağıtılmasıyla karmaşık bir yapı ortaya çıkar.İşte bu tasarım kararlarından oluşan öğelere özellik adı verilerek özelliğe yönelik programlama adıyla yeni bir teknik ortaya atılmıştır. 1.13 Uç Programlama(Extreme Programming – XP) Değişen müşteri istekleri, ürünün yaşam çevrimi sırasında mutlaka karşılanır. XP ile yazılım projesi dört ilkeye bağlı olarak geliştirilir; ~> İletişim ~> Basitlik ~> Geri Besleme ~> Cesaret XP, geliştirme sırasında isterleri sürekli değişen problem alanları içi Agile(Çevik) yazılım geliştirme yöntemidir. Nedenleri; ~> Agile ile hedeflenen asıl şey süreçleri etkin hızlandırmak ve gerektiğinde bunları dokümantasyonudur. kullanarak ~> Agile Proje Yönetimi dediğimizde bilmemiz gereken; değişime açık olunması, takım içi iletişimin üst düzeyde olması, hızlı ve sürekli ürün teslimi, test odaklı anlayış, basit ve gerçekçi bir planlama olmalıdır. 1.14 Çevik Yazılım Geliştirme Yöntemleri ………………………………….. ……………………………….. ……………………………….
© Copyright 2024 Paperzz