İhtiyaca harcanan zaman ve proje başarısı ve geliştirme zamanı üzerindeki etkisi


15

Yazmak veya gereksinimleri düşünmek için harcanan zamanın gelişim zamanı üzerinde herhangi bir etkisi olacağını gösteren herhangi bir kanıt var mı? Standish (1995) tarafından yapılan çalışma, eksik gereksinimlerin kısmen (% 13.1) projelerin başarısızlığına katkıda bulunduğunu göstermektedir. İhtiyaç analizi için harcanan zamanın bir projenin geliştirme süresi üzerinde veya projenin ne kadar başarılı olacağını gösteren herhangi bir çalışma var mı?


3
Çevik modeller buraya nasıl uyar? Gereksinimler için zaman harcadıklarını iddia edebilir (açık ve kapalı) ancak böyle bir "faz" gereksinimi yoktur.
Raphael

1
@Raphael ile aynı fikirde. Yazılım mühendisliği ile ilgili soruları ele alacağız mı? Yoksa sitenin şu andaki "bilgisayar bilimi" ile "yazılım mühendisliği" arasında ayrım yapmaya değmeyecek resmi politikası mı?
Patrick87

1
@ Patrick87 Bunu meta'ya taşıyalım .
Raphael

Bana öyle geliyor ki, bu soru mevcut Yazılım Mühendisliği ve Proje Yönetimi siteleri için daha uygun olacaktır .
Adam Lear

Yanıtlar:


10

Bkz. Kod Tamamlandı, Steve McConnell, Tablo 3-1. Hataların ne zaman tanıtıldığı ve tespit edildiğine bağlı olarak ortalama sabitleme maliyetini karşılaştırır. İnşaat süresinde algılama, gereksinim zamanında algılanmaya göre 5-10 kat, serbest bırakıldıktan sonra 10-100 kat daha fazladır.

Tablo aşağıdaki kaynaklara dayanmaktadır:

  1. "Program Geliştirmede Hataları Azaltmaya Yönelik Tasarım ve Kod İncelemeleri" (Fagan 1976)

  2. Yazılım Hatası Kaldırma (Dunn 1984)

  3. "Hughes Uçaklarında Yazılım Süreç İyileştirme" (Humphrey, Snyder ve WIllis 1991)

ve daha fazlası


Bu tek başına yeterli değil. Pahalı hatalar zorunda gerçekleşmesi yeterince sık ve lazım yakalandı uygun şartlara kadar gelerek yeterince sık. Aksi takdirde, gereksinimleri karşılamanın ekstra maliyeti yine de hata maliyetlerinden daha ağır basabilir.
Raphael

Bu doğru. Belirli bir noktaya kadar, gereksinimlere acele etmemenin, gereksinimlerde daha az hata olduğu anlamına geldiğini varsaymalıyız, ancak bu çok fazla bir gerginlik gibi görünmüyor.
Joe

10

Evet, bu konuda çok sayıda çalışma var. Tabii ki, soru her türlü yazılım geliştirme projesine cevap vermek için çok geneldir, ancak ihtiyaç analizinin düzgün bir şekilde yapılmasının uygulama aşaması üzerinde olumlu bir etkisi olacağı fikrini destekleyen çeşitli bağlamlardan kanıtlar vardır. Bu kanıt kısmen "yasalar" altında toplanmıştır ve işte üç örnek:

Cam yasası: Gereksinim eksiklikleri proje başarısızlıklarının başlıca kaynağıdır.

Bu yasa, büyük yazılım geliştirme projelerinden alınan örnek olay kanıtlarıyla desteklenmektedir. Glass, başarısız vakalarda çok fazla gereksinim olduğunu, geç değişiklikler nedeniyle kararsız olduklarını ve belirsiz ve eksik olduklarını buldu.

Bu, gereksinimlerin kalitesi ile proje sonucu arasında bir ilişki olduğunu göstermektedir.

Boehm'in ilk yasası: Hatalar, gereksinimler ve tasarım faaliyetleri sırasında en sık görülür ve daha sonra kaldırıldıklarında daha pahalıdır.

Bu aynı zamanda vaka çalışması kanıtlarıyla da desteklenir ve soruyu aşağıdaki şekilde cevaplamaya katkıda bulunur: gereksinimleri doğru bir şekilde yapmak sistemdeki hata sayısını azaltacaktır ve uygulamaya başlamadan önce hataları düzeltmek onları avlamaktan daha ucuz olacaktır. uygulama zaten başladığında (veya sistem zaten gönderildiğinde daha da kötüsü).

Boehm'in ikinci yasası: Prototipleme (özellikle), özellikle kullanıcı arayüzleri için gereksinimi ve tasarım hatalarını azaltır.

Bu, öğrenci bağlamında kontrollü deneylerle desteklenmektedir. Olası yorumlardan biri, gereksinimlerin ve tasarım aşamalarının tamamen dokümantasyona dayalı ve teorik olması gerekmemesidir. Bunun yerine, gereksinim ve tasarım aşamalarının bir parçası olarak prototipleme yapmak - zaman geçirmeye ve gereksinimleri düşünmeye eşittir - proje başarısını ve uygulama süresini etkileyecektir.

Aynı yöne işaret eden başka kanıtlar da vardır: uygulamaya hazırlanmak için zaman harcamak, daha az risk ve sürprizlerden dolayı daha az program aşımı şansı ile sonuçlanır. Soru test ile ilgili olmasa da, uygun hazırlık testi de olumlu yönde etkiler.

Bu yasaların referansları:

Glass yasası: Glass, RL: Yazılım Kaçakları. Büyük Yazılım Proje Arızalarından Çıkarılan Dersler. Yukarı Eyer Nehri, NJ: Prentice Hall 1998

Boehm'in ilk yasası: Boehm, BW, McClean, RK, Urfrig, DB: Büyük Ölçekli Güvenilir Yazılım Tasarımına Otomatik Yardımlarla Bazı Deneyimler. Yazılım Mühendisliği IEEE Trans 1, 1 (1975), 125–133

Boehm'in ikinci yasası: Boehm, BW, Gray, TE, Seewaldt, T .: Prototipleme Versus Belirleme: Çok Yönlü Bir Deney. IEEE Trans Yazılım Mühendisliği Trans 10, 3 (1984), 290-302

Ayrıca, aşağıdaki referans ilgi çekici olabilir: Endres, A. ve Rombach, D. Bir Yazılım ve Sistem Mühendisliği El Kitabı. Ampirik Gözlemler, Yasalar ve Teoriler. Yazılım Mühendisliği Fraunhofer IESE Serisi. Addison Wesley, 2003.

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.