There are different software design philosophies and methodologies. A good software architect should understand the difference between them. Hence, he could choose the right approach to solve the problem at hand and deliver a software. A software that meets its requirements specifications.
What is Data Driven Programming?
What is TDD?
What is BDD?
What is DDD?
Domain Driven Design (DDD) abstracts away both the User Interface (UI) and the data storage medium. Thus, it leads the business analysts and the programmers to focus on the domain knowledge and the business logic in the first place. It adds a layer of two way communication with domain experts. The resulting application core being built is therefore not coupled to neither the database schema nor the UI.
Where to use each paradigm?
At the end of this blog post, one should be able to tell the difference between each design paradigm and what each one is good for. Each software company develops its own philosophy according to the resources and tools available. There is no point in religiously following a certain paradigm, if it doesn’t lead in the end to a solution that solves the problem.