views:

116

answers:

2

I've read "upstream" program from here ... http://xunitpatterns.com/Back%20Door%20Manipulation.html

If the data store is external to the SUT, such as in a relational database, the Data Loader can be "just another application" that writes to that data store. It would use the database in much the same way as the SUT but it would get its inputs from a file rather than from wherever the SUT normally gets its inputs (e.g. other "upstream" programs.)

Does "upstream" program means some program gives its data through network connection or IPC or some other ways except reading file? I heard upload program or update something, but I've never heard about "upstream" program. Could you explain about it, or give some examples? Thanks in advance.

+1  A: 

An upstream program is one that your own program does not really know or care about the existence off. In the example you quoted, your app knows about the data loader, but it doesn't know or care about where the data loader is getting its data from - the upstream program.

The metaphor is from a river - you see the water flowing past you, but you don't know or care where upstream it is coming from. Well, maybe you do care if you are going to drink it, but then no metaphor is perfect :-)

anon
Thanks a lot...
P-P
A: 

Checklist: Upstream Prerequisites

Have you identified the kind of software project you're working on and tailored your approach appropriately?

Are the requirements sufficiently well defined and stable enough to begin construction? (See the requirements checklist for details.)

Is the architecture sufficiently well defined to begin construction? (See the architecture checklist for details.)

Have other risks unique to your particular project been addressed, such that construction is not exposed to more risk than necessary?

from the book code complete

drorhan