Gereksinimleri Yazarken Shall ve Must Kullanımı için En İyi Uygulama


22

Daha önce geliştiricilerimize, türetilmiş gereksinimlerinizde 'Shall' kelimesinin kullanılmasının işlevsel gereksinimlerinize uymaması gerektiğini hatırlatan bir e-posta gönderdim . İşlevsel gereksinimler yazılırken, türetilmiş bir gereksinimin yapması gereken işlevi tanımlamak için 'Zorunlu' sözcüğü kullanılır.
Türetilmiş = Sistem Gereklilik
olmalı İşlevsel = Sistem gereklilik yapmalıdır

Büyüklerimizden biri tarafından, yanlış olan ve her şartta kullanılması gerektiği geri gönderildi.

Burada yanlış mıyım ve her şartta kullanılmalıdır. Bunu destekleyecek hiçbir şey bulamadım.


Zorunlu olan her şartta "yapacağım" ı kullanıyoruz. Fakat "gerekir" ve "zorunlu" aşağı yukarı aynı şey anlamına gelir. Ayrıca bkz. Tynerblain.com/blog/2009/04/22/dont-use-shall
Robert Harvey

4
Belki düşünüyor musunuz MUSTvs SHOULDRFC'lerde? ietf.org/rfc/rfc2119.txt
user10326


Euh, parti kakası olmak değil, ama herkes doğru durumda doğru kelimeyi kullandığında ne kazanıyorsunuz?
Peter

Yanıtlar:


43

RFC 2119 "Gereksinim Düzeylerini Göstermek için RFC'lerde kullanılan anahtar kelimeler", gereksinimlerdeki farklı kelimelerin ne anlama geldiğine dair ayrıntılara girer.

Bu belgede "ZORUNLU", "ZORUNLU DEĞİL", "GEREKLİ", "SHALL", "SHALL NOT", "SHOULD", "ÖNERİLMEMELİ", "ÖNERİLEN", "MAYIS" ve "İSTEĞE BAĞLI" anahtar kelimeleri RFC 2119'da açıklandığı gibi yorumlanmalıdır.

Bu belgeden:

  • MUSTeşdeğerdir REQUIREDve SHALLtanımı mutlak bir gereksinim olduğunu gösterir.
  • MUST NOTeşdeğerdir SHALL NOTve spesifikasyonların mutlak yasaklanması olduğunu belirtir.
  • SHOULD, RECOMMENDEDbelirli bir gereksinimi göz ardı etmek için geçerli nedenler olduğu anlamına gelir, ancak sonuçların tartılması gerekir.
  • SHOULD NOTve NOT RECOMMENDEDbelirli bir davranışın kabul edilebilir veya faydalı olabileceği anlamına gelir, fakat yine de etkilerin tartılması gerekir.
  • MAYOPTIONALve gereksinimin gerçekten isteğe bağlı olduğu anlamına gelir . İsteğe bağlı bir gereksinimi yerine getirebilecek veya getirmeyebilecek farklı sistemlerle birlikte çalışabilirlik yapılmalıdır.

Bu RFC'yi takiben SHOULD, kişinin dahili belgeleri ile genel olarak standartlar arasında iletişimin tutarlılığını sağlamak için yapılacaktır.


1
sağlam cevap; kazmak için sahne

1
@ GlenH7 Bunu biliyordum (1 Nisan RFC'leri okumaktan zevk alıyorum ve mizahın bir kısmı 'olmazsa olmaz' ve 'olmazsa olmaz' ve 2119 wikipedia sayfasında bile ) Aradım , buldum ve sonra yorum yapmak üzereydim - iki yukarıda tekrar RFC oldu. Yani onu kazmak için tamamen büyük sahne değil .

Benim düşüncem şuydu: Zorunlu gereksinimler / işlevsel gereksinimler, var olacak türetilmiş bir nesneye tüm işlevselliği gerektirecekti. Ama verilen ve olması gereken tanımlamalar ve herkesin onları nasıl kullandığı göz önüne alındığında ben sadece yanılmışım
Tim Lieberman

6

Sonuçlara nereden geldiğinizden emin değilsiniz shallve mustayrı düzeydeki belgelere aittir. Bu, bildiğim herhangi bir kaynak tarafından desteklenmeyen oldukça keyfi bir ayrım.

Shallve mustsözcük olarak eşdeğerdir. Bu gerekli bir eylem.

Kullanıp kullanmamanız shallya da mustgerçekten yazdığınız belgenin geri kalanına ve bu cümle için dilbilgisel mantıklı olana bağlıdır.

Yani evet, yanılıyorsun. Ama shallbunun yerine her zaman kullanmakta yanılıyorsunuz must. Aynı derecede yükümlülükleri temsil ederler.


3
Shouldve maytam olarak eşdeğer değil. Her ikisi de isteğe bağlı özellikleri gösterir, ancak shouldaksine may, uygulamayı uygulamamak için iyi bir nedeniniz olması gerektiğini ima eder. Ben size katılıyorum shallvs. mustolsa.
Keith Thompson

@KeithThompson - bu iyi bir nokta ve haklısın. Cevaptan o çizgiyi çıkardım.

1
Benim düşüncem fonksiyonel gereksinimlerin kullanılması gerektiği için oldu, çünkü türetilmiş bir nesne varsa tüm işlevselliği işlev görmelidir.
Tim Lieberman

Sanırım bir noktada kafama yeni bir nesne olarak gömülmeliydim ve işlev görmeli.
Tim Lieberman

@TimLieberman - bu, özellikle iki özellik katmanını birbirine bağladığından, şeylere bakmak için kötü bir yol değildir. Aslında bazı türler terimlerin anlambilimi tarafından karıştırıldığından, bir tür yararlıdır. Özellikle "gerekir" yerine "gerekir" yerine kullanılmayan daha sık olduğu süreç belgeleri sabit beri. Bununla birlikte, bunu belirli bir standart olarak gerektirecek kadar yararlı değildir.

2

Eğer çerçevesinde çalışmalarına edersek DO-178 veya DO-254 kılavuzlar, bunlar için kendi tanımları vardır gereksinimleri genel ve türetilmiş gereksinimleri . Bu kurallar, ancak, hangi kelimeyi, mesela belirtmeyen , zorunluluk olmalıdır eder , ihtiyaçlarını belirtmek için kullanılmalıdır.

Senin gereksinimleri yönetimi takım sizin için otomatik olarak türetilmiş gereksinimleri, bir kullanımı ile fonksiyonel gereksinimleri bu farklı yapım işaret etmiyorsa mutlaka yerine eder örneği türetilmiş gereksinimleri için doğrulama amaçları da yerine getirilmiş olduğunu göstermek için, yararlı olabilir. Bu, görünüşte keyfi dokümantasyon gereksiniminin olası bir nedeni olabilir.

Not DO-178 ve DO-254 o türetilmiş gereksinimi aslında bir gereklilik anlamı değil daha üst düzey bir şartı türetilmiş. Bu nedenle türetilmiş gereksinimler, temelde yeni bir izlenebilirlik zinciri başlatır.

Hem DO-178 hem de DO-254, aviyonik yazılım ve elektronik geliştirme için kullanılan ticari kılavuz belgelerdir ve yalnızca www.rtca.org adresinden ücretli olarak temin edilebilir .

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.