Sorunun Tarihi:
Karmaşık gereksinimler genellikle yüksek soyutlama seviyesinde formüle edilir veya birden fazla gizli koşul ve istisna içerir. Bu tür gereksinimler ayrıştırılmadığı ve netleştirilmediği takdirde, müşteri, geliştiriciler ve testçiler arasında farklı yorumların ortaya çıkmasına neden olabilir.
Sorun:
Belirsiz veya yeterince ayrıştırılmamış gereksinimler, ekibin detayları kendi kendine "düşünmesine" yol açar. Sonuç olarak, iş değeri ya gerçekleştirilmez ya da çarpıtılır ve bunu düzeltmek çok daha zor ve maliyetli hale gelir.
Çözüm:
Sistem analisti, gereksinimlerin detaylı analizini, ayrıştırma tekniklerini (Use Case Diyagramı, Aktivite Diyagramı, INVEST’e göre Kullanıcı Hikayeleri, Olay Fırtınası, ayırma ağacı) kullanarak gerçekleştirir. Temel/alternatif/istisna akışlarını, karar tablaları ve geçiş matrisleri oluşturmak önemlidir ve en sonunda her "düğüm" için edge case örnekleri ile birlikte müşteri ile doğrulama yapılmalıdır. Ayrıştırmadan sonra analist, tüm parçaları toplayarak entegrasyon noktalarını analiz eder ve tutarsızlıkları giderir.
Ana Özellikler:
Bir Kullanıcı Hikayesi senaryosunun sadece metin açıklaması yeterli midir?
Hayır, yalnızca kullanıcı hikayeleri yeterli değildir: karmaşık iş mantığı için sıralama diyagramları, edge case örnekleri, UI mockupları ve karar tablaları gereklidir.
Ayrıştırma, gereksinimler arasında otomatik olarak çelişkisizlik sağlar mı?
Hayır, ayrıştırma, çelişkili gereksinimlerin konsolidasyonu, düzenli gözden geçirme oturumları ve bağımlılık analizi ile desteklenmelidir.
Ayrıştırmayı yalnızca geliştiricilere veya testçilere verebilir miyiz?
Hayır, analist detaylandırmanın bütünlüğünden sorumludur. Bunu diğer rollere devretmek, birçok yorum ve farklılık yaratır.
Negatif Durum:
İş müşterisi "Sistem her bir müşterinin indirimini bireysel olarak hesaplamalı" yazdı. Geliştirmeye katı bir indirim şeması ile gidildi. Testlerde, gizli parametrelerin ondan fazla olduğu ve bunun formülasyon aşamasında ortaya konmadığı anlaşıldı.
Artılar:
Eksiler:
Pozitif Durum:
Analist, Olay Fırtınası oturumu gerçekleştirerek tüm hesaplama parametrelerini ve koşullarını belirledi. Karar tablosu ve sıralama diyagramları oluşturdu, iş ile edge case örneklerini onayladı. Gereksinim net ve test edilebilir hale geldi, hatalar geliştirme başlamadan önce tespit edildi.
Artılar:
Eksiler: