Yazılım Mühendisliğinde Fonksiyonel Gereksinim Nedir?

⚡ Akıllı Özet

İşlevsel Gereksinimler, bir yazılım sisteminin sunması gereken her hizmeti tanımlar; girdileri, davranışı ve çıktıları yakalayarak geliştiricilerin, test uzmanlarının ve iş paydaşlarının ürünün gerçekte ne yapması gerektiğine dair tek, doğrulanabilir bir tanımı paylaşmasını sağlar.

  • 📘 Tanım: İşlevsel Gereksinim veya İşlevsel Şartname olarak da adlandırılan bu belge, sistemin ne yapması gerektiğini; kullanıcı veya işletme perspektifinden tanımlanan girdileri, davranışları ve çıktıları belirtir.
  • 📄 Belgenin Kapsamı: İşlevsel Gereksinimler Belgesi, ekran işlemlerini, veri işleme mantığını, raporları, iş akışlarını, izinleri ve mevzuat uyumluluğunu kapsar.
  • 🗂️ Ortak türler: İşlem yönetimi, iş kuralları, raporlama, idari fonksiyonlar, yetkilendirme seviyeleri, denetim tracKral, harici arayüzler ve yasal gereklilikler.
  • ???? Örnekler: Giriş doğrulama, satış kaydı, rol tabanlı gelir görüntüleme, bankacılık API entegrasyonu ve erişilebilirlik uyumluluğu, işlevsel gereksinimler kapsamında yer almaktadır.
  • 🆚 İşlevsel Olmayan Kontrast: İşlevsel gereksinimler bir sistemin ne yaptığını tanımlarken; işlevsel olmayan gereksinimler ise bunu ne kadar iyi yaptığını tanımlar; yani performans, güvenlik ve kullanılabilirlik.
  • En İyi Uygulamalar: Gereksinimleri ayrıntılı, test edilebilir ve iş hedefine bağlı tutun ve bunları görüşmeler ve çalıştaylar yoluyla ortaya çıkarın.

Yazılım Mühendisliğinde Fonksiyonel Gereksinimler

İşlevsel Gereksinim Nedir?

A İşlevsel Gereksinim (FR), yazılımın sunması gereken hizmetin bir açıklamasıdır. Bir yazılım sistemini veya bileşenini tanımlar. Bir fonksiyon, girdiler, davranış ve çıktılarla tanımlanır. Sistemin ne yapması gerektiğini tanımlayan bir hesaplama, veri manipülasyonu, iş süreci veya kullanıcı etkileşimi olabilir. Yazılım Mühendisliğinde Fonksiyonel Gereksinimler ayrıca şu şekilde de adlandırılır: Fonksiyonel Özellikler.

İşlevsel Gereksinim, üst düzey paydaş ihtiyacından detaylı matematiksel spesifikasyona kadar geniş bir yelpazeyi kapsar. Fonksiyonel yazılım Gereksinimler, sistemin amaçlanan davranışını yansıtır.

İşlevsel Gereksinimler Belgesinde Neler Bulunmalıdır?

Bir İşlevsel Gereksinimler Belgesi şu konuları içermelidir:

Örnek İşlevsel Gereksinimler

Örnek İşlevsel Gereksinimler

İşlevsel Gereksinimler Belgesi tipik olarak şunları içerir:

  • Her ekranda gerçekleştirilen işlemlerin detayları
  • Sistemin uygulaması gereken veri işleme mantığı
  • Descriptsistem raporlarının ve diğer çıktıların iyonları
  • Sistemin gerçekleştirdiği iş akışları hakkında eksiksiz bilgi.
  • Sistemde kimlerin veri oluşturma, değiştirme veya silme yetkisi var?
  • Sistemin geçerli düzenleyici ve uyumluluk gereksinimlerini nasıl karşıladığı

Fonksiyonel Gereksinimlerin Faydaları

İyi yazılmış bir Fonksiyonel Gereksinimler Belgesinin başlıca faydaları şunlardır:

  • Uygulamanın belirtilen tüm işlevleri yerine getirdiğini doğrular.
  • Sistemin ve alt sistemlerinin işlevselliğini tek bir yerde tanımlar.
  • İşlevsel gereksinimler, gereksinim analiziyle birlikte, eksik ihtiyaçları belirlemeye ve beklenen sistem davranışını netleştirmeye yardımcı olur.
  • Gereksinim aşamasında yakalanan hataların düzeltilmesi en ucuzudur.
  • Kullanıcı hedeflerini, görevlerini ve faaliyetlerini destekler.

Fonksiyonel Gereksinim Türleri

İşlevsel gereksinimlerin yaygın kategorileri şunlardır:

  • İşlem Yönetimi
  • İş kuralları
  • Sertifika Gereksinimleri
  • Raporlama Gereksinimleri
  • İdari İşlevler
  • Yetkilendirme Seviyeleri
  • Denetim Tracking
  • Dış Arayüzler
  • Geçmiş Veri Yönetimi
  • Yasal ve Düzenleyici Gereklilikler

İşlevsel Gereksinimlere Örnekler

Aşağıda işlevsel gereksinimlere ilişkin pratik örnekler verilmiştir:

  • Yazılım, müşterileri ABC İletişim Yönetim Sistemi'ne göre otomatik olarak doğrulayacaktır.
  • Satış sistemi, kullanıcıların müşteri satışlarını kaydetmelerine olanak sağlamalıdır.
  • Uygulamadaki tüm pencerelerin arka plan rengi, onaltılık RGB değeri 0x0000FF olan mavi olacaktır.
  • Gelir verilerini yalnızca üst düzey yöneticiler görüntüleyebilir.
  • Yazılım sistemi, bankacılık API'si ile entegre olacaktır.
  • Yazılım sistemi şu şartları karşılamalıdır: Bölüm 508 erişilebilirlik gereksinimleri.

İşlevsel ve İşlevsel Olmayan Gereksinimler

İşlevsel ve işlevsel olmayan gereksinimler arasındaki temel farklar şunlardır: Yazılım Mühendisliği:

Parametreler İşlevsel Gereksinim İşlevsel Olmayan Gereksinim
Ne olduğunu Fiil Özellikler
gereklilik Bu zorunludur Zorunlu değildir
Yakalama türü Kullanım durumunda yakalanır. Bir kalite özelliği olarak yakalanır.
Sonuç Ürün özelliği Ürün özellikleri
Yakalama Yakalanması kolay Yakalanması zor
Hedef Yazılımın işlevselliğini doğrulamanıza yardımcı olur. Yazılımın performansını doğrulamanıza yardımcı olur.
Odak alanı Kullanıcı gereksinimlerine odaklanın Kullanıcının beklentisine odaklanır.
Dökümanlar Ürünün ne işe yaradığını açıklayın Ürünün nasıl çalıştığını açıklar
Test Türü Sistem, Entegrasyon, Uçtan Uca gibi Fonksiyonel Testler, API testi, vb. Performans, Stres, Kullanılabilirlik gibi İşlevsel Olmayan Testler, Güvenlik testi, vb.
Test uygulaması Test yürütme işlemi, işlevsel olmayan testlerden önce yapılır. Fonksiyonel testlerden sonra
Ürün Bilgisi Ürün Özellikleri Ürün Özellikleri

Fonksiyonel Gereksinimlerin Yazılması İçin En İyi Uygulamalar

İşlevsel Gereksinimler Belgesi yazımında en önemli en iyi uygulamalar şunlardır:

  • İki gereksinimi tek bir gereksinimde birleştirmeyin; her gereksinimi ayrıntılı olarak ele alın.
  • Her gereksinimi olabildiğince eksiksiz ve doğru bir şekilde belirtin.
  • Belgedeki tüm teknik gereksinimleri taslak haline getirin.
  • Her bir gereksinimi, başarılı yazılım teslimatını yönlendiren amaç ve ilkelerle eşleştirin.
  • Gereksinimleri görüşmeler, çalıştaylar ve gayri resmi sohbetler yoluyla belirleyin.
  • Bir gereksinimi önemli ölçüde etkileyen bilinen ve doğrulanmış her kısıtlamayı belgeleyin.
  • Belgedeki her varsayımı kaydedin.

Fonksiyonel Gereksinimler Yazarken Yapılan Sık Hatalar

Fonksiyonel Gereksinimler Belgesi oluşturulurken yapılan yaygın hatalar şunlardır:

  • Geliştiricileri kafa karıştıran, gerekçesiz ek bilgiler eklemek
  • Geliştiricilerin özelliği oluşturmak için ihtiyaç duyduğu ayrıntıları atlamak.
  • Karıştırma kuralları, örnekler, puanlarping beyanları veya hedefleri, gerekliliğin kendisine dahil etmek.
  • Gereksinimi eksiksiz ve doğru bir şekilde ifade etmek için gerekli olan bilgileri atlamak.
  • Değişiklik talebi geldiğinde doğru cevabı bulmak yerine, mevcut bir gereksinimi savunmak.
  • Herhangi bir amaç veya ilkeye bağlı olmayan yazma gereksinimleri.

SSS

Yapay zeka araçları, görüşme notlarını kümelendirir, taslak kullanıcı hikayeleri oluşturur, belirsiz ifadeleri işaretler ve büyük gereksinim kümelerinde tekrarları tespit eder. İş analistleri ise onaylanmış temel plana girmeden önce her öneriyi gerçek paydaş ihtiyaçlarına göre doğrulamaya devam eder.

Copilot ve GPT, kısa komutlardan taslak kullanıcı hikayeleri, kabul kriterleri ve gereklilik bildirimleri oluşturur. Bir İş Analisti, resmi incelemeden önce her çıktıyı test edilebilirlik açısından düzenler ve iş hedefleriyle uyumluluğunu doğrular.

İş gereksinimi, bir projenin neden var olduğunu belirtir; örneğin gelir artışı veya uyumluluk. Fonksiyonel gereksinim ise sistemin bu sonucu elde etmek için ne yapması gerektiğini belirtir; örneğin ödemeyi doğrulamak veya rapor oluşturmak gibi.

Açık bir özne, "şarttır" kelimesi ve her ifade için test edilebilir tek bir eylem kullanın. "Hızlı" gibi belirsiz kelimelerden kaçının ve tek bir davranışı ele alın, böylece gereksinim tek bir geçme veya kalma kontrolüyle test edilebilsin.

EARS (Easy Approach to Requirements Syntax), beş şablon sunar: her yerde bulunan, olay odaklı, durum odaklı, isteğe bağlı özellik ve istenmeyen davranış. Her biri, "TETİKLENDİĞİNDE sistem YANIT VERMELİDİR" gibi test edilebilir bir yapıyı zorunlu kılar.

Yazılım Gereksinimleri Spesifikasyonu, bir sistemin ne yapması gerektiğini açıklayan ana belgedir. Fonksiyonel gereksinimler, arayüzler, fonksiyonel olmayan gereksinimler, kullanım senaryoları ve kısıtlamalarla birlikte en büyük bölümü oluşturur.

Fonksiyonel gereksinimler, sistem, entegrasyon, uçtan uca, API ve kullanıcı kabul testlerinde test senaryolarını yönlendirir. Her gereksinim en az bir test senaryosuna karşılık gelir ve Gereksinimler TracUygunluk Matrisi, yayınlanmadan önce kapsama alanını doğrular.

Çevik ekipler, işlevsel gereksinimleri "Bir rol olarak, şu değere sahip bir yeteneğe ihtiyacım var" formatını kullanarak kullanıcı hikayeleri olarak ifade eder. Hikayeye eklenen kabul kriterleri, gereksinimi test edilebilir bir tamamlanma tanımına dönüştürür.

Bu yazıyı şu şekilde özetleyin: