Yazılım geliştirmeye artımlı ve yinelemeli yaklaşım arasındaki fark nedir?


17

Artımlı bir yaklaşım ürün tamamlanana kadar modeli (biraz daha her zaman ilave edilir) aşamalı olarak tasarlanan, uygulanan test yazılımı geliştirme için bir yöntemdir. Hem geliştirme hem de bakım gerektirir. Ürün, tüm gereksinimlerini karşıladığında bitmiş olarak tanımlanır

Tasarımların , prototip, analiz, test ve bir ürün veya işlem rafine bir siklik işlemine dayalı bir tasarım yöntemdir. Testin sonuçlarına dayanarak, bir tasarımın en son tekrarı, değişiklikler ve ayrıntılandırmalar yapılır. Bu işlemin sonunda bir tasarımın kalitesini ve işlevselliğini iyileştirmesi amaçlanmıştır. Yinelemeli tasarımda, tasarlanan sistemle etkileşim, bir projeyi bilgilendirmek ve geliştirmek için bir araştırma formu olarak, ardışık sürümler veya bir tasarımın yinelemeleri uygulandığında kullanılır.

Her iki yöntem de sistemin bir parçasını oluşturmak, tüm test senaryolarını geçmek için rafine etmek, sistemin başka bir bileşenini eklemek ve tekrar rafine etmekle ilgilidir, bunlar sistem bitinceye kadar tekrarlanır.

Yazılım tasarlamanın bu iki yolu arasındaki gerçek fark nedir

Yinelemeli ve artımlı tasarım yaklaşımı oluşturmak için bu iki yöntemi birleştirmek nasıl mümkün olur?

Yanıtlar:


13

Artan Yaklaşım adımların belirli sayıda kullanır ve geliştirme ilerlemesi doğrusal yolundaki baştan sona gider.

Artımlı geliştirme, tasarım, uygulama, test / doğrulama, bakımdan adımlarla yapılır. Bunlar alt adımlara ayrılabilir, ancak artımlı modellerin çoğu aynı modeli izler. Şelale Modeli geleneksel artan gelişme yaklaşımdır.

İteratif Yaklaşım adımların belirlenmiş numarası vardır, daha doğrusu geliştirme döngüleri yapılır.

Yinelemeli gelişim, bireysel özelliklerin ilerlemesini izlemekle daha az ilgilidir. Bunun yerine, önce çalışan bir prototip oluşturmaya ve Artırma Geliştirme adımlarının her döngü için yapıldığı geliştirme döngülerinde özellikler eklemeye odaklanır. Çevik Modelleme tipik bir yinelemeli yaklaşımdır.


Artımlı model ilk olarak fabrikalarda kullanılan geleneksel montaj hattı modelini takip etmek için geliştirilmiştir. Ne yazık ki, yazılım tasarımı ve geliştirilmesinin fiziksel mal üretimi ile çok az ortak noktası vardır. Kod, geliştirmenin bitmiş ürünü değil, plan. İyi tasarım seçimleri geliştirme sürecinde sıklıkla 'keşfedilir'. Geliştiricileri uygun bağlam olmadan bir dizi varsayımlara kilitlemek, en iyi durumda kötü tasarımlara veya en kötüsündeki gelişimin tamamen raydan çıkmasına neden olabilir.

Yinelemeli yaklaşım artık yaygın bir uygulama haline geliyor çünkü yazılım geliştirmedeki doğal ilerleme yoluna daha iyi uyuyor. Varsayımlara dayalı 'mükemmel tasarımı' kovalamak için çok fazla zaman / çaba harcamak yerine, yinelemeli yaklaşım, tamamen başlamak için 'yeterince iyi' bir şey yaratmak ve kullanıcının ihtiyaçlarına uyacak şekilde gelişmektir.

tl; dr - Artımlı Model altında bir deneme yazıyorsanız, o anda bir cümleyi bitirmek için baştan mükemmel bir şekilde yazmaya çalışacaksınız. Yinelemeli Model altında yazdıysanız, hızlı bir kaba taslak patlatır ve bir dizi revizyon aşamasıyla geliştirmeye çalışırsınız.


Güncelleme:

'Artımlı Yaklaşım' tanımımı daha pratik bir örneğe uyacak şekilde değiştirdim.

Eğer herhangi bir sözleşme ile uğraşmak zorunda kalsanız, Artan Yaklaşım çoğu sözleşmenin (özellikle ordu için) nasıl yapıldığını gösterir. Tipik 'Şelale Modeli'nin birçok ince varyasyonuna rağmen, çoğu / hepsi pratikte aynı şekilde uygulanır.

Adımlar aşağıdaki gibidir:

  • Sözleşme ödülü
  • Ön Tasarım İncelemesi
  • Kritik Tasarım İncelemesi
  • Şartname Dondur
  • gelişme
  • Fielding / Entegrasyon
  • Doğrulama
  • Güvenilirlik Testi

PDR ve CDR, spesifikasyonun oluşturulduğu ve revize edildiği yerdir. Spec tamamlandıktan sonra, gereken kapsam sünme önlemek için dondurulmuş. Yazılım, önceden var olan bir sistemi genişletmek için kullanılırsa tümleştirme gerçekleşir. Doğrulama, uygulamanın spesifikasyonla eşleşip eşleşmediğini kontrol etmek içindir. Güvenilirlik, uygulamanın uzun vadede güvenilir olacağını kanıtlayan bir testtir, bu, sistemin belirli bir çalışma süresini (3 ay boyunca% 99 çalışma süresi) sürdürmesi gereken bir SLA (Hizmet Düzeyi Sözleşmesi) gibi belirtilebilir. ).

Bu model, kağıt üzerinde belirtilmesi kolay ancak üretimi zor olan sistemler için harika çalışır. Yazılımın kağıt üzerinde kayda değer herhangi bir ayrıntı derecesine (UML'den) belirtilmesi çok zordur. Yönetim / sözleşme sorumlu Çoğu 'işletme türleri' gerçekleştirmek için başarısız - bu yazılım geliştirme konusunda - Kod kendisi olduğunu Spec. Kağıt özellikleri genellikle kodun kendisi kadar yazmak için daha fazla veya daha fazla zaman / çaba gerektirir ve genellikle pratikte eksik / daha düşük olduğunu kanıtlarlar.

Artımlı yaklaşımlar, kodun kendisini şartname olarak ele alarak boşa harcanan zamanı / kaynakları dener. Kağıt spesifikasyonunu birden fazla revizyon adımında çalıştırmak yerine, kodun kendisi birden fazla revizyon döngüsünden geçer.


Artımlı açıklama benim için yanlış görünse de güzel bir örnek için +1
Basilevs

@Basilevs Daha iyi mi?
Evan Plaice

8
Şelale artımlı değildir. Artımsal olarak yazılım parça parça oluşturma (test yoluyla tasarım) anlamına gelir. Geleneksel şelale modelinde, önce tüm tasarımınızı, sonra tüm uygulamanızı ve sonra da tüm testlerinizi yaparsınız. Hiç artımsal değil. İhtiyaç mühendisliğini önünüzde nereye koyacağınız ve projeyi her bir artışın tasarlandığı, uygulandığı, test edildiği (ve diğer artışlarla entegre edildiği ve test edildiği) artışlara böldüğü gibi şelale varyasyonları var, ancak bu geleneksel değil şelale.
Thomas Owens

0

Herhangi bir sıfatta olduğu gibi ve yazılım geliştirmedeki çoğu şey ... buna bağlıdır!

Bağlama ve terimin nasıl kullanıldığına bağlıdır. Yani yazılım geliştirmeye artımlı ve yinelemeli yaklaşımlar arasındaki farkı soruyorsunuz, ancak teklifiniz farklı bir şey olan yinelemeli tasarıma bakıyor (benzer olsa da).

Bu yüzden özellikle yazılım geliştirmeye bir yaklaşım olarak cevap vermek ..

Soru yanlış yerleştirilmiş. Biri ya da diğeri değil. Sürecin farklı kısımlarına atıfta bulundukları için bunları doğrudan karşılaştıramazsınız.

Yinelemeli yazılım geliştirme, doğası gereği artımlıdır. Artımlı yazılım geliştirmenin yinelemeli olması gerekmez.

Bir artış umarım ileriye doğru küçük bir harekettir. Bu, yürütülen işin her adımına atıfta bulunmanın bir yoludur.

Yineleme bir çalışma döngüsüdür.

Dolayısıyla, bir yineleme kullanılan genel geliştirme döngüsünü ifade eder. Bir artış, işin her bir adımını ifade eder. Bir yineleme, yazılıma bir veya daha fazla gerçek artıştan (genellikle daha fazla) oluşan bir artış üretecektir.

Sonuç olarak...

Yinelemeli yazılım geliştirme, geleneksel şelale yaklaşımının aksine yinelemelerde çalışan yazılım geliştirmeye özgü bir yaklaşımdır. Scrum buna iyi bir örnek.

Artımlı yazılım geliştirme daha geneldir ve çoğu (belki de hepsi?) Yaklaşımların bir özelliği olan çalışmaları adım adım ilerletmeyi ifade eder. Bununla birlikte, terim daha çok iki benzer terim arasındaki karışıklığı açıklayan modern, çevik yaklaşımlarla ilişkili olarak daha sık kullanılır.

Ve son olarak, elbette, terimin kullanıldığında nasıl ifade edildiğine bağlıdır, bu da genellikle konuşmacıya, ayın zamanına vb.

Daha ilginç bir soru, yazılım geliştirmeye ampirik bir yaklaşımın tüm bunlara uymasıdır. Yinelemeli bir yaklaşımın güzelliği, büyünün gerçekleştiği ampirizmi mümkün kılmasıdır.

Bu yardımcı olur umarım.

Bu makalede örneklerle iyi açıklanmaktadır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.