---
title: Combination Therapy for Requirements using BDD and UML
description: Combination Therapy for Requirements using BDD and UML
---

[![e-Zest logo\_An accion lab company\_Colour](https://blog.e-zest.com/hubfs/images/Logos%20with%20Tagline/Corporate/SVG/e-Zest%20logo_An%20accion%20lab%20company_Colour.svg "e-Zest logo_An accion lab company_Colour")](https://www.e-zest.com/)

- [WORK](https://www.e-zest.com/our-work)
- [SERVICES](https://www.e-zest.com/our-services) 
    - [Product Engineering](https://www.e-zest.com/digital-product-engineering-services)
    - [Enterprise Data Services](https://www.e-zest.com/enterprise-data-services)
    - [Digital Commerce](https://www.e-zest.com/digital-commerce-services)
    - [Digital Operations](https://www.e-zest.com/digital-operations)
    - [Digital Consulting](https://www.e-zest.com/digital-transformation-consulting-services)
    - [Digital Experience Design](https://www.e-zest.com/digital-experience-design)
- [INSIGHTS](https://blog.e-zest.com/)
- [CAREERS](https://www.e-zest.com/careers)
- [ENTERPRISE DATA SERVICES](https://www.e-zest.com/enterprise-data-services)
- [GENERATIVE AI](https://www.e-zest.com/generative-ai)
- [Healthcare](https://healthcare.e-zest.com)
- [Contact Us](https://www.e-zest.com/contact-us)

- ![Elevating Product Engineering with AI and ML](https://blog.e-zest.com/hubfs/Elevating%20Product%20Engineering%20with%20AI%20and%20ML.jpg)

  [BLOGS](https://blog.e-zest.com)
  
  #### Elevating Product Engineering with AI and ML

  As technology evolves and customer choices broaden, there is an increasing ...

  [Read more](https://blog.e-zest.com/elevating-product-engineering-with-ai-and-ml)
- ![e-Zest – An Accion Labs Company gets Recognition as a Contender in the ISG Provider Lens™ Study on Digital Engineering Services 2024](https://blog.e-zest.com/hubfs/e-Zest%20%E2%80%93%20An%20Accion%20Labs%20Company%20-%20Gets%20Recognition%20as%20a%20Contender%20in%20the%20ISG%20Provider%20LensTM%20Study%20on%20Digital%20Engineering%20Services%202024.jpg)

  [NEWS](https://blog.e-zest.com/news)
  
  #### e-Zest – An Accion Labs Company gets Recognition as a Contender in the ISG Provider Lens™ Study on Digital Engineering Services 2024

  We are delighted to announce that e-Zest – An Accion Labs Company has been ...

  [Read more](https://blog.e-zest.com/news/e-zest-an-accion-labs-company-gets-recognition-as-a-contender-in-the-isg-provider-lens-study-on-digital-engineering-services-2024)
- ![e-Zest Solutions supports Digital Pune Mission](https://blog.e-zest.com/hubfs/blog-files/Digital%20Literacy%20Bus%20e-Zest.png)

  [CSR](https://blog.e-zest.com/csr)
  
  #### e-Zest Solutions supports Digital Pune Mission

  **Pune, India:** e-Zest Solutions, a leading digital technology innovation ...

  [Read more](https://blog.e-zest.com/csr/e-zest-solutions-supports-digital-pune-mission)

- [Work](https://www.e-zest.com/our-work)
- [Services](https://www.e-zest.com/our-services)
- [Insights](https://blog.e-zest.com)
- [Careers](https://www.e-zest.com/careers)
- [Enterprise Data](https://www.e-zest.com/enterprise-data-services)
- [Generative AI](https://www.e-zest.com/generative-ai)
- [Innovations](https://www.e-zest.com/innovations)
- [Healthcare](https://healthcare.e-zest.com)
- [About](https://www.e-zest.com/about-us)
- [Contact](https://www.e-zest.com/contact-us)

- [Blog](https://blog.e-zest.com/)
- [News](https://blog.e-zest.com/news)
- [CSR](https://blog.e-zest.com/csr)

- [![Linkedin Icon](https://blog.e-zest.com/hubfs/icons/linkedin_icon_white.svg)](https://www.linkedin.com/company/e-zest-solutions/)
- [![Twitter Icon](https://blog.e-zest.com/hubfs/twitter-logo-silhouette%20(5).svg)](https://twitter.com/ezest)
- [![Facebook Icon](https://blog.e-zest.com/hubfs/facebook-app-logo%20(4).svg)](https://www.facebook.com/61259256638)
- [![Instagram Icon](https://blog.e-zest.com/hubfs/instagram-logo%20(4).svg)](https://www.instagram.com/ezestsolutions/)
- [![Youtube Icon](https://blog.e-zest.com/hubfs/icons/youtube_icon_white.svg)](https://www.youtube.com/user/ezestcorporate)

[![Go to top icon](https://blog.e-zest.com/hubfs/AA%20Assets/top%20button.svg)](https://blog.e-zest.com/combination-therapy-for-requirements-using-bdd-and-uml/#top)

Hit enter to search or ESC to close

Insights

e-Zest members share technology ideas to foster digital transformation.

- [Blog](https://blog.e-zest.com)
- [News](https://blog.e-zest.com/news)
- [Podcasts](https://www.e-zest.com/podcasts)
- [Healthcare](https://blog.e-zest.com/healthcare)
- [CSR](https://blog.e-zest.com/csr)
- [Whitepaper](https://blog.e-zest.com/whitepaper)
- [Playbook](https://blog.e-zest.com/playbook)
- [Media Kit](https://www.e-zest.com/media-kit)

# Combination Therapy for Requirements using BDD and UML

[Lalit Kale](https://blog.e-zest.com/author/lalit-kale)  Mar 08, 2010

[Microsoft .Net](https://blog.e-zest.com/topic/microsoft-net-2) [bdd](https://blog.e-zest.com/topic/bdd) [agile](https://blog.e-zest.com/topic/agile-2) [use case](https://blog.e-zest.com/topic/use-case) [requirements](https://blog.e-zest.com/topic/requirements) [Technology](https://blog.e-zest.com/topic/technology)

- <https://www.linkedin.com/shareArticle?mini=true&url=https://blog.e-zest.com/combination-therapy-for-requirements-using-bdd-and-uml/&title=&summary=&source=>
- <https://twitter.com/intent/tweet?source=https://blog.e-zest.com/combination-therapy-for-requirements-using-bdd-and-uml/&text=Combination%20Therapy%20for%20Requirements%20using%20BDD%20and%20UML>
- <https://www.facebook.com/sharer/sharer.php?u=https://blog.e-zest.com/combination-therapy-for-requirements-using-bdd-and-uml/>
- <https://www.instagram.com/ezestsolutions/?u=https://blog.e-zest.com/combination-therapy-for-requirements-using-bdd-and-uml/>

**Problem**

Generally, we write requirements in use case structure. Use case structure gives us all elements required but by design , it is a vague format which are devised around use case diagrams. Every software professional has its own flavor of writing [use cases](http://en.wikipedia.org/wiki/Use_case). Even the sections of use case structure varies person to person.The intrinsic details of the parts of use case specially use case description, preconditions and post conditions etc\] are vaguely defined. Writing use cases in clear format is also a skill and that depends upon the person who is responsible for collecting requirements.Use case are still useful in mature kind of organization but it is not so much effective way when we do not want to have upfront big designs. So dilemma here is how to collect the requirements and the new approach should be better than standard use case structures and should be fairly objective.

There is also a second angle to this use case discussion. Requirements have bigger impact on business and cost part of IT projects. Many times, due to not so clear communication between IT vendor and client over the requirements, this cost of lot of rework and hence the cost to client.From client’s viewpoint ,it is difficult to understand use case type of language and there is a chance to miss out or assume requirements/scenarios ,which becomes cost(in terms of money or time) for them afterword. Situation becomes bad in fixed cost projects. I had experienced this bitter pill many times.

**Solution**

So the solution I am proposing here is , [Behavior Driven Development](http://en.wikipedia.org/wiki/Behavior_Driven_Development) \[BDD\] kind of requirements collection for even the people who are not practicing BDD. From past few months,I am sort of wandering in TDD,BDD forest. Now I am going ahead with [nBehave](http://www.codeplex.com/NBehave) and [Specflow](http://specflow.org/) and Gherkin which has changed whole lot of things for me on coding front.

I totally understand that BDD can’t be fully rolled out in some scenarios/in some organizations\[no silver bullet!, lack of expertise, no enthusiasm to learn, cost of learning curve and transformation etc\] but I am sure that, we can at least move to BDD style of requirement writing which is kind of closer to silver bullet:). See the following example. I had directly taken this example from Dan North's blog. BTW, Dan is pioneer in BDD and I guess, he is the first who coined the term "BDD". He has also compared use case format with BDD style. Here I think, interesting angle from my side is merge both of them to take advantage from both styles of requirements collection.

In BDD, The requirements are collected in story form like:

**Title** (one line describing the story)

**Narrative:**

**As a** \[role\]

**I want** \[feature\]

**So that** \[benefit\]

**Acceptance Criteria:** (presented as Scenarios)

***Scenario 1***: Title

***Given*** \[context\] And \[some more context\]...

***When*** \[event\]

***Then*** \[outcome\] And \[another outcome\]...

Scenario 2: ...

**ACTUAL EXAMPLE:**

**Story:** Account Holder withdraws cash

*As an* Account Holder

*I want* to withdraw cash from an ATM

*So that* I can get money when the bank is closed

**Scenario 1:** Account has sufficient funds

*Given* the account balance is $100 And the card is valid And the machine contains enough money

*When* the Account Holder requests $20

*Then* the ATM should dispense $20 And the account balance should be $80 And the card should be returned

**Scenario 2:** Account has insufficient funds

*Given* the account balance is $10 And the card is valid And the machine contains enough money

*When* the Account Holder requests $20

*Then* the ATM should not dispense any money And the ATM should say there are insufficient funds And the account balance should be $20 And the card should be returned

**Scenario 3:** Card has been disabled

*Given* the card is disabled

*When* the Account Holder requests $20

*Then* the ATM should retain the card

*And* the ATM should say the card has been retained

**Scenario 4:** The ATM has insufficient funds

...

I think Along with story, if we have mockup/screenshot\[off course with Balsamiq mockups! \] of proposed screen and control, [data type](http://en.wikipedia.org/wiki/Data_type) range chart we used to have with our existing UML format, we can move towards clear requirements.

**Benefits**

This will benefit in following ways:

1. It will help to gain common understanding between client and IT Vendor,about what has been covered as requirements and what has not.
2. Client will find easy to go through requirements since requirements are written in very structured fashion and in plain English.
3. Organization wide, requirements will be captured in same fashion and we can really estimate based on stories and find how simple or complex the story is based upon no. and complexity of scenarios it had. Hence its really easy for going with [statistical process control](http://en.wikipedia.org/wiki/Statistical_process_control) for estimation.
4. Change Requests are dealt with adding/removing/updating the feature/story/scenarios.My observation here is they only change the scenarios. In very rare cases, features or stories are changed.
5. Testing team will reap the greater benefits here since they can write these stories as per their understanding and take part in RE process in very active way like finding out the missing/not clear scenarios etc.
6. Testing team do not have to write any other test cases, This can serve as live requirements as well as test cases for them.
7. Unit Testing for Developers will be easy since now they clearly know what kind of scenarios they have to cover which is bit difficult and time consuming in Use case format.

Let me know your thoughts, specially BDD and UML experts...

Many good points are noted as what should be in story by BDD pioneer Dan north in his post ([http://dannorth.net/whats-in-a-story](http://dannorth.net/whats-in-a-story)).

It's really refreshing for me to see the BDD light.

- <https://twitter.com/intent/tweet?source=https://blog.e-zest.com/combination-therapy-for-requirements-using-bdd-and-uml/&text=Combination%20Therapy%20for%20Requirements%20using%20BDD%20and%20UML>
- <https://www.facebook.com/sharer/sharer.php?u=https://blog.e-zest.com/combination-therapy-for-requirements-using-bdd-and-uml/>
- <https://www.linkedin.com/shareArticle?mini=true&url=https://blog.e-zest.com/combination-therapy-for-requirements-using-bdd-and-uml/&title=&summary=&source=>

### Similar Blog

[![How to Use Google Maps in ASP.net MVC Application](https://blog.e-zest.com/hs-fs/file-3395402179-jpg/blog-files/api-applications.jpg) How to Use Google Maps in ASP.net MVC Application **Introduction** By Kirti Bodekar Feb 19, 2015](https://blog.e-zest.com/how-to-use-google-maps-in-asp-net-mvc-application/)

[What did 2014 bring for Microsoft? Microsoft was at its zenith in 2014. There were many strategic moves they had taken in 2014 which are going to impact the ... By Corporate Jan 09, 2015](https://blog.e-zest.com/what-did-2014-bring-for-microsoft/)

[Introduction to ASP.NET Web API? Web API provides you a platform where you can build and consume HTTP services. We can get and post data in XML and JSON format. ... By Trilok Sharma Dec 30, 2014](https://blog.e-zest.com/introduction-to-asp-net-web-api/)

[How to improve the performance of the application in ASP .Net **Introduction** By Swapna Patne Aug 25, 2014](https://blog.e-zest.com/how-to-improve-the-performance-of-the-application-in-asp/)

[Encryption and Decryption of Video Files Using C# Encryption is the process of translating plain text data (plaintext) into something that appears to be random and meaningless ... By swapnil.gade Dec 31, 2013](https://blog.e-zest.com/encryption-and-decryption-of-video-files-using-c/)

<https://blog.e-zest.com/introduction-to-specification-pattern/>

[Introduction to Specification Pattern](https://blog.e-zest.com/introduction-to-specification-pattern/)

[Specification pattern has emerged out of “Domain Driven Design” phenomenon. It is first identified and articulated](https://blog.e-zest.com/introduction-to-specification-pattern/)[here](http://martinfowler.com/apsupp/spec.pdf) by Eric ...

By Lalit Kale Jun 20, 2012

<https://blog.e-zest.com/considerations-for-pa-dss-compliant-solution-development-part-2/>

[Considerations for PA-DSS Compliant Solution Development - Part 2](https://blog.e-zest.com/considerations-for-pa-dss-compliant-solution-development-part-2/)

[For earlier 9 points kindly refer to my earlier blog at](https://blog.e-zest.com/considerations-for-pa-dss-compliant-solution-development-part-2/)[Considerations for PA-DSS Compliant Solution Development – Part 1](https://blog.e-zest.com/blog/considerations-for-pa-dss-compliant-solution-development-part-1/)

By Lalit Kale May 10, 2012

[![Considerations for PA-DSS Compliant Solution Development - Part 1](https://blog.e-zest.com/hs-fs/file-3443236272-png/blog-files/pci.png) Considerations for PA-DSS Compliant Solution Development - Part 1 Following are the considerations for the development and Implementation of software solutions in a PCI-DSS Compliant Environment. ... By Lalit Kale May 04, 2012](https://blog.e-zest.com/considerations-for-pa-dss-compliant-solution-development-part-1/)

[PCI Compliance Overview PCI DSS version 2.0 must be adopted by all organizations with payment card data by 1 January 2011, and from 1 January 2012 all ... By Lalit Kale Apr 30, 2012](https://blog.e-zest.com/pci-compliance-overview/)

[PCI Compliance Introduction The Payment Card Industry (PCI) has developed security standards for handling cardholder information in a published standard ... By Lalit Kale Apr 25, 2012](https://blog.e-zest.com/pci-compliance-introduction/)

## Helping Organizations Thrive in the Digital Age

[Contact Us](https://www.e-zest.com/contact-us)

- [About](https://www.e-zest.com/about-us)
- [Services](https://www.e-zest.com/our-services)
- [Work](https://www.e-zest.com/our-work)
- [Insights](https://blog.e-zest.com/)
- [Healthcare](https://healthcare.e-zest.com/)
- [Accion Labs](https://www.accionlabs.com/)

- <https://www.linkedin.com/company/e-zest-solutions/>
- <https://twitter.com/ezest>
- <https://www.facebook.com/eZest/>
- <https://www.instagram.com/ezestsolutions/>
- <https://www.youtube.com/user/ezestcorporate>

- Dallas
- Detroit
- Hannover
- Vienna
- London
- Pune

 © 2025 e-Zest Solutions

- [Privacy Policy](https://www.e-zest.com/privacypolicy)
- [Cookie Policy](https://www.e-zest.com/cookie-policy)

 Contact us

 Contact us

e-Zest is a leading digital innovation partner for enterprises and technology companies that utilizes emerging technologies for creating engaging customers experiences. Being a customer-focused and technology-driven company, it always helps clients in crafting holistic business value for their software development efforts. It offers software development and consulting services for cloud computing, enterprise mobility, big data and analytics, user experience and digital commerce.