Domain Story Telling ve BDD ilişkisi

İş alanı uzmanlarının (domain experts) ifade ettiği kavramları yazılım geliştiriciler ne kadar anlayabiliyor ? Bu problemi ilk ortaya koyan kitaplardan biri Eric J. Evans tarafından yazılan Domain Driven Design kitabıdır. Kitabın içerisinde geçen Ubiquitous Language (ortak dil) oluşturma hedefinden sıklıkla bahsedilir. İş alanı uzmanları ile yazılımcılar arasında ortak dil oluşturmak için etkili olarak gördüğüm Domain Story Telling yaklaşımından sizlere bahsedeceğim. Hemen bir örnek ile başlayalım.

Örneğin bir sinama bileti satış sistemi geliştirmeniz istendi. İş alanı uzmanlarıyla masaya oturdunuz ve onlara tam olarak nasıl bir sistem hayal ettiklerini sordunuz. Şöyle söylediler :

“Müşteri uygun filme yer alsın, ödemesini yapsın ve iş tamamlansın”

Sorun tam bu noktada başlamaktadır. İş alanı uzmanlarıyla tüm süreçleri detayları size aktaramayacaklardır. Bu noktada Domain Story Telling yaklaşımı yardımınıza yetişir. Basit, görsel ve iş detay ve süreçlerini ortaya çıkmasını sağlayan etkili bir yöntemdir. Gelin sinama bileti satış sistemini birde Domain Story Telling ile ortaya koyalım.

Sinama bileti satış sistemi

Sistemin nasıl işlediğini artık çok net görebilirsiniz. Bir cümle ile özetlenen isteğin arka planında 5 farklı adım olduğu ortaya çıkmıştır. Artık iş alan uzmanlarıyla aynı dili konuşma şansımız çok daha yüksektir.

Domain Story Telling ‘den sonra BDD (Behavior-driven development) senaryoları çıkartmak ve buna göre kodlama yapmak daha keyifli bir hal almaktadır.

Given the customer enters the cinema 
When a customer asks for a reservation from cashier // 01
Then cashier find available seats from the cinema system //02
And recommends available seats to the customer  // 03


Given customer approves the recommendation  //03
When customers give her credit card  //04
then the system should commit the transaction // 05

Given customer doesn't approve recommendation // 03 alternative
When customers ask for the new movie  //01
Then Cashier finds available seats from the cinema system //02
And recommends available seats to the customer  // 03

No Comments

Post a Comment

Comment
Name
Email
Website