views:

1498

answers:

7

I've been tasked at work to write a detailed engineering plan for a logistics application that we are coding to propose to a customer. I have been told that it is a data-driven application. What does it mean for an application to be "data-driven"? What is the opposite? I can't seem to get any really clear answer for this although while web searching I can see many people posting their own examples. Any help would be greatly appreciated.

+11  A: 

"I have been told that it is a data-driven application" - you need to ask whoever told you that.

You don't want to read some plausible answer here and then find out that it's not at all what the person in charge of your project meant. The phrase is too vague to have an unambiguous meaning that will definitely apply to your project.

RichieHindle
I understand what you mean Richie, and that is a good point. However, I was wondering if "data-driven programming" was some sort of term concretely recognized by the software development industry. I won't take any answer from here simply at face value here without checking back with my boss. -Thanks :)
jtbradle
Sure - you were right to ask here. But I think the answer is that there is no universally accepted definition.
RichieHindle
A: 

Sounds like a redundant qualifier to me. I can't think of a very useful logistics application that wasn't built around data.

mgroves
+1  A: 

There is no one at work that can help you with this question? It is very hard to visualize what you are working without without a greater example. But from what I gather it is going to be a program that they primarily enter information into. That will be able to retrieve and edit information that the customer needs to manage.

Best of luck!!

Chris B.
A: 

I think the advice given isn't bad, but I've always thought of Data Driven Design revolves around using existing or given data structures as the foundation for your domain objects.

For instance, the classic salesperson manamgement program might have the following type structure of tables:

  • Salesperson
  • Region
  • Customers
  • Products

So, your application would be centered around managing these data structures, instead of taking an straight API which does things like - "make sale" etc...

Just my opinion as the other answers suggest ;)

altCognito
+8  A: 

Data driven progamming is a programming model where the data itself controls the flow of the program and not the program logic. It is a model where you control the flow by offering different data sets to the program where the program logic is some generic form of flow or of state-changes.

For example if you have program that has four states: UP - DOWN - STOP - START

You can control this program by offering input (data) that represents the states:

  • set1: DOWN - STOP - START - STOP - UP - STOP
  • set2: UP - DOWN - UP - DOWN

The program code stays the same but data set (which is not of a dynamic input type but statically given to the computer) controls the flow.

nojevive
+1  A: 

This article explains most clearly what I understand the term to mean:

What is Table-Driven and Data-Driven Programming? http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=31

Data/Table-Driven programming is the technique of factoring repetitious programming constructs into data and a transformation pattern. This new data is often referred to by purists as meta-data when used in this fashion.

Robert Harvey
A: 

Data-Driven design can cut a lot of repetitive work. For example, if your application has a lot of tables, and you have a form to insert records in each one, creating each new form may be a repetitive and time consuming task.

Instead of writing one form per table, you can write just one generic form and create a table in your DB with the metadata of the business tables. One row for each table, or one row for each form.

And another table specifying the fields of each form, type of data, range of accepted values, etc.

Then your database will be divided into the metadata tables and the data tables.

This is just an example based on my experience.

Mariano Dupont