Gereksinim Şartnamesi
Gereksinim şartnamesi, belirlenmiş ve analiz edilmiş gereksinimlerin tasarım, yapım ve kabul için üzerinde anlaşılmış bir temel teşkil edecek şekilde, kesin, tutarlı ve doğrulanabilir bir biçimde belgelenmesi faaliyetidir.
Tanım
Gereksinim şartnamesi, her bir gereksinimin belirsizlikten uzak, doğrulanabilir ve izlenebilir olmasını sağlayacak şekilde yazılmış, ve bir bütün olarak tutarlı ve eksiksiz olan sistem gereksinimlerinin belgelenmiş bir temsilinin üretilmesidir.
Kapsam
Bu konu, bir yazılım gereksinim şartnamesinin yapısını ve içeriğini; yapılandırılmış doğal dilden kullanım senaryolarına (use cases), kullanıcı hikayelerine (user stories) ve biçimsel modellere kadar değişen stilleri; belirsizlikten uzaklık, eksiksizlik, tutarlılık ve test edilebilirlik gibi iyi gereksinimlerin kalite niteliklerini; ve şartname içeriklerini belirleyen ISO/IEC/IEEE 29148 gibi standartları kapsamaktadır.
Temel sorular
- Doğal dildeki gereksinimler nasıl belirsizlikten uzak ve doğrulanabilir hale getirilebilir?
- Biçimsel veya model tabanlı şartnameler ne zaman değerli olmaktadır?
- İyi bir şartnameyi hangi kalite nitelikleri karakterize etmektedir?
- Fonksiyonel ve fonksiyonel olmayan gereksinimler bir belgede nasıl düzenlenmelidir?
Temel kuramlar
- Gereksinimlerin Kalite Nitelikleri
- Bireysel gereksinimler belirsizlikten uzak, doğrulanabilir, uygulanabilir ve gerekli olmalı, küme ise eksiksiz, tutarlı ve izlenebilir olmalıdır; bu nitelikler bir şartnameyi gözden geçirmek için somut kriterler sunmaktadır.
- Biçimsel ve Biçimsel Olmayan Şartname
- Şartnameler, yapılandırılmış doğal dilden ve kullanım senaryolarından (use cases) biçimsel matematiksel gösterimlere kadar çeşitlilik göstermektedir; biçimsellik, çaba ve erişilebilirlik maliyetiyle hassasiyeti ve analiz edilebilirliği artırmaktadır, bu nedenle seviye risk ve hedef kitleye uygun olarak seçilmektedir.
Klinik önem
Açık bir şartname, paydaşlar ve geliştiriciler arasındaki sözleşme ve doğrulama için bir referans niteliğindedir; şartnamedeki belirsizlik veya eksiklik, hatalı tasarımlara ve vaat edilenler hakkında anlaşmazlıklara yol açabilmektedir.
Kanıt ve kılavuzlar
ISO/IEC/IEEE 29148, gereksinim şartnamelerinin tavsiye edilen yapısını ve kalite özelliklerini tanımlamakta olup, içeriklerini düzenleyen başlıca standarttır.
Tarihçe
İlk şartnameler büyük ölçüde serbest biçimli düz yazıdan oluşmaktaydı; IEEE 830 standardı 1990'larda yazılım gereksinim şartnamesini biçimselleştirdi ve daha sonraki çalışmalar kullanım senaryolarını (use cases), kullanıcı hikayelerini (user stories) ve model tabanlı ve biçimsel gösterimleri tanıttı, bu da birleştirilmiş ISO/IEC/IEEE 29148 standardı ile sonuçlandı.
Tartışmalar
- Kapsamlı Belgeler ve Hafif Kullanıcı Hikayeleri
- Plan odaklı uygulamalar kapsamlı şartname belgelerini tercih ederken, çevik uygulamalar tam zamanında detaylandırılan hafif kullanıcı hikayelerini (user stories) yeğlemektedir; bu seçim, titizlik ve sözleşmesel netliği uyarlanabilirlik ve azaltılmış dokümantasyon yükü ile dengelemektedir.
Öne çıkan isimler
- Axel van Lamsweerde
- Michael Jackson
- Ian Sommerville
İlgili konular
Temel eserler
- iso29148
- vanlamsweerde2009
- sommerville2015
Sıkça sorulan sorular
- Bir gereksinimi test edilebilir kılan nedir?
- Bir gereksinim, teslim edilen sistemin onu karşılayıp karşılamadığını nesnel bir prosedürün belirleyebileceği kadar kesin bir şekilde ifade edildiğinde test edilebilir olmaktadır; hızlı veya kullanıcı dostu gibi belirsiz terimler nicelleştirilmeli veya ölçülebilir kabul kriterleri verilmelidir.
- Kullanıcı hikayeleri gereksinim şartnamelerinin yerini alır mı?
- Kullanıcı hikayeleri (user stories), yinelemeli geliştirmeye uygun hafif bir şartname stilidir, ancak yine de kabul kriterleri gerektirmektedir ve karmaşık veya düzenlenmiş sistemler için eksiksizlik ve izlenebilirliği sağlamak amacıyla genellikle daha detaylı belgelerle desteklenmektedir.