İşlevsel ve işlevsel olmayan gereksinim arasındaki fark nedir? [kapalı]


283

Bir yazılım sistemi tasarlama bağlamında işlevsel ve işlevsel olmayan gereksinimler arasındaki fark nedir ?

Her vaka için örnekler verin.



@TravisJ Yine, etiket yakmanın ilk aşaması bitene kadar etiketi sorular üzerinde tutalım.
TylerH

Yanıtlar:


525

İşlevsel bir gereklilik açıklanır neyi işlevsel olmayan gereksinimler üzerine kısıtlamalar yerleştirmek ederken bir yazılım sistemi, yapmalıdır nasıl sistem bunu yapacağız.

Açıklayayım.

İşlevsel bir gereksinime örnek olarak şunlar verilebilir:

  • Bir sistem belirli bir koşul karşılandığında e-posta göndermelidir (örneğin, bir sipariş verildiğinde, müşteri kaydolduğunda, vb.).

Sistem için ilgili işlevsel olmayan bir gereklilik şunlar olabilir:

  • E-postalar, böyle bir aktiviteden 12 saatten daha uzun bir gecikmeyle gönderilmelidir.

İşlevsel gereksinim, sistemin işlevselliği ile ilgili olan sistemin davranışını tanımlamaktır . İşlevsel olmayan gereksinim , sistemin bir performans özelliğini açıklamaktadır .

Genellikle işlevsel olmayan gereksinimler aşağıdaki gibi alanlara ayrılır:

  • Ulaşılabilirlik
  • Kapasite, akım ve tahmin
  • uyma
  • belgeleme
  • Olağanüstü durum kurtarma
  • verim
  • etki
  • uzayabilirlik
  • Arıza toleransı
  • Birlikte çalışabilirlik
  • İdame
  • Gizlilik
  • taşınabilirlik
  • Kalite
  • Güvenilirlik
  • Dayanıklılık
  • Tepki Süresi
  • sağlamlık
  • Ölçeklenebilirlik
  • Güvenlik
  • istikrar
  • Desteklenebilirlik
  • Testedilebilirlik

İşlevsel olmayan gereksinimler için Wikipedia'nın girişinde daha eksiksiz bir liste mevcuttur .

İşlevsel olmayan gereksinimler bazen daha somut hale getirmek için metrikler (yani sistem hakkında ölçülebilen bir şey) olarak tanımlanır. İşlevsel olmayan gereksinimler, sistemin yürütülmesi ile ilgili olmayan, daha ziyade zaman içindeki gelişimi ile ilgili yönlerini de tanımlayabilir (örn. Sürdürülebilirlik, genişletilebilirlik, dokümantasyon, vb.).


İtibarınız ve mesleki çalışma geçmişiniz (bunu yazmadan önce baktım) göz önüne alındığında elbette size erteleyeceğim: işlevsel olmayan gereksinim örneğiniz bir davranış olarak kabul edilemez mi? Yoksa işlevsel olmayan gereksinimlerin davranışlarla ilgili kısıtlamaları tanımladığı gerçeğinden daha mı bahsediyorsunuz?
Thomas

1
Sorumu biraz açıklığa kavuşturmak (ve cevaplanamayabilir): Davranışı oluşturan şeyin sınırını daha iyi açıklamanın bir yolu var mı?
Thomas

artı 1 e-posta sistemi güzel bir örnek vermek için. :)
Ahtisham

33

işlevsel gereksinimler, kullanıcının uygulamadan yeni bir hesap oluşturabilmesi, hesabı güncelleyebilmesi, bir hesabı silebilmesi vb. gibi bir bankacılık uygulaması olması durumunda kullanıcının yazılımdan beklediği temel şeylerdir. fonksiyonel gereksinimler ayrıntılıdır ve belirtilir sistem tasarımında

İşlevsel olmayan gereksinim, sistemin gereksinimini doğrudan ileriye götürmez, bunun yerine kullanılabilirlikle ilgilidir (bir şekilde), örneğin bir bankacılık uygulaması için, işlevsel olmayan büyük bir gereksinim mevcut olacaktır, uygulama, kesinti olmadan 7/24 mevcut olmalıdır Eğer mümkünse.


27

İşlevsel gereksinimler

  1. İşlevsel gereksinimler, bir sistem veya sistem bileşeninin gerçekleştirebilmesi gereken bir işlevi belirtir. Çeşitli şekillerde belgelenebilir. En yaygın olanları belgelerde yazılı açıklamalar ve kullanım durumlarıdır.

  2. Kullanım örnekleri metinsel numaralandırma listeleri ve kullanıcı eylemlerini açıklayan diyagramlar olabilir. Her kullanım durumu, bir veya daha fazla fonksiyonel gereksinimle davranış senaryolarını gösterir. Bununla birlikte, çoğu zaman, bir analist, bir kullanıcının her kullanım durumunu gerçekleştirmesine izin vermek için uygulanması gereken fonksiyonel gereksinimleri türetebileceği bir dizi kullanım durumu ortaya çıkararak başlayacaktır.

  3. İşlevsel gereksinimler, bir sistemin gerçekleştirmesi gereken şeydir . Olabilir

    • Hesaplamalar
    • Teknik detaylar
    • Veri işleme
    • Veri işleme
    • Diğer özel işlevler
  4. Tipik bir fonksiyonel gereksinim benzersiz bir isim ve numara, kısa bir özet ve bir mantık içerir. Bu bilgiler, okuyucunun gereksinimin neden gerekli olduğunu anlamasına yardımcı olmak ve sistemi geliştirerek gereksinimi izlemek için kullanılır.

İşlevsel olmayan gereksinimler

LBushkin , İşlevsel olmayan gereksinimler hakkında daha fazla açıklama yapmıştır. Daha fazlasını ekleyeceğim.

  1. İşlevsel olmayan gereksinimler, işlevsel gereksinimler dışında herhangi bir gereksinimdir. Bu, belirli davranışlardan ziyade bir sistemin çalışmasını değerlendirmek için kullanılabilecek ölçütleri belirleyen gereksinimlerdir .

  2. İşlevsel olmayan gereksinimler , sistemin bir bütün olarak veya belirli bir yönden genel bir özelliği olan ve belirli bir işlev değil , "sistem" olacaktır . Sistemin genel özellikleri genellikle geliştirme projesinin başarılı veya başarısız olup olmadığı arasındaki farkı belirtir.

  3. İşlevsel olmayan gereksinimler - iki ana kategoriye ayrılabilir:

    • Güvenlik ve kullanılabilirlik gibi çalışma zamanında gözlemlenebilen yürütme nitelikleri .
    • Yazılım sisteminin statik yapısında somutlaşan test edilebilirlik, sürdürülebilirlik, genişletilebilirlik ve ölçeklenebilirlik gibi evrim nitelikleri .
  4. İşlevsel olmayan gereksinimler, geliştirilmekte olan ürüne, geliştirme sürecine kısıtlamalar getirir ve ürünün karşılaması gereken dış kısıtlamaları belirtir.
  5. IEEE-Std 830 - 1993 listeleri 13 işlevsel olmayan gereksinimler bir yazılım gereksinimleri Belge dahil edilecek.
  1. Performans gereklilikleri
  2. Arayüz gereksinimleri
  3. Operasyonel gereksinimler
  4. Kaynak gereksinimleri
  5. Doğrulama gereksinimleri
  6. Kabul şartları
  7. Dokümantasyon gereksinimleri
  8. Güvenlik gereksinimleri
  9. Taşınabilirlik gereksinimleri
  10. Kalite gereksinimleri
  11. Güvenilirlik gereksinimleri
  12. Sürdürülebilirlik gereksinimleri
  13. Güvenlik gereksinimleri

Bir gereksinimin işlevsel veya işlevsel olmayan bir gereksinim olarak ifade edilip edilmeyeceği aşağıdakilere bağlı olabilir:

  • gereksinimler belgesinde yer alacak ayrıntı düzeyinde
  • bir sistem müşterisi ile bir sistem geliştiricisi arasındaki güven derecesi.

Ör. Kullanıcıya veritabanındaki kayıtların sayısını gösteren bir sistem sunmak için bir sistem gerekebilir. Bu işlevsel bir gereksinimdir. Bu numaranın ne kadar güncel olması gerektiği [işlevselliği], işlevsel olmayan bir gereksinimdir. Sayının gerçek zamanlı olarak güncellenmesi gerekiyorsa, sistem mimarları sistemin değişen kayıt sayısının kabul edilebilir kısa bir aralığı içinde [görüntülenen] kayıt sayısını güncelleyebildiğinden emin olmalıdır.

Referanslar:

  1. Fonksiyonel gereksinimi
  2. İşlevsel olmayan gereksinim
  3. İhtiyaçların Ölçülmesi ve İzlenebilirliği

1
iyi açıkladı. Teşekkürler!
Arslan Ramay

1
İyi referanslarla güzel cevap. IEEE 830-1993'un yerini aldığı için yalnızca daha güncel standardı eklemek istiyorum. En son standart ISO / IEC / IEEE 29148: 2018 "Sistem ve yazılım mühendisliği - Yaşam döngüsü süreçleri - Gereksinim mühendisliği" ( iso.org/standard/72089.html )
oturum kapatma

8

İşlevsel gereksinimler, sistemin teknik işlevselliği ile ilgili olanlardır.

işlevsel olmayan gereksinim, bir sistemin çalışmasını belirli davranışlardan ziyade belirli koşullarda değerlendirmek için kullanılabilecek ölçütleri belirleyen bir gereksinimdir.

Örneğin, bir alışveriş sitesini düşünürseniz, sepete ürün eklemek, farklı öğelere göz atmak, teklifler ve fırsatlar uygulamak ve siparişleri başarıyla vermek işlevsel gereksinimler altında gelir.

Sistemin yoğun saatlerde performansı olarak, sistemin DB'den veri alması için geçen süre, kullanıcı verilerinin güvenliği, çok sayıda kullanıcının oturum açması işlevsel olmayan gereksinimler altındaysa sistemin işleyebilme yeteneği.


Mükemmel cevap.
Iftekhar

3

FONKSİYONEL GEREKSİNİMLER sistemin gerçekleştirmesi gereken faaliyetleri

  • iş, kullanıcıların gerçekleştirdiği işlevleri kullanır
  • bir bordro sistemi geliştiriyorsanız gerekli durumlar örneği
  • elektronik fon transferi oluşturmak
  • hesaplama komisyonu tutarları
  • bordro vergilerini hesapla
  • vergi indirimini IRS'ye bildirme

2

Ben fonksiyonel gereksinimi yazılımdan kullanıcıya işlevselliği ile ilgili istemciden geliştirici tarafına olduğunu düşünüyorum ve fonksiyonel olmayan gereksinimi geliştiriciden istemciye yani gereksinim istemci tarafından verilmez ama sistemi sorunsuz çalıştırmak için geliştirici tarafından sağlanır örn. güvenlik, güvenlik, esneklik, ölçeklenebilirlik, kullanılabilirlik vb.

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.