Seilevel
Seilevel Home
Back to Blog Home - Requirements Defined

Wednesday, September 26, 2007

Requirements for Batch Processes

A batch process is used to do an automated manipulation of data, often for a bulk transfers of data. They execute transactions automatically without real time user input data.


You would typically implement a batch process if you needed to schedule the update or manipulation of data for a time in which the systems and data involved were less “busy”.


As an example, we might need to update changed product data every day, from one system to another. It may be important to do this update when there are not a lot of users trying to hit an application that uses that product data because it could slow down system response time for the users. In this case we would want to use a batch process. In the implementation, the changed product data would be extracted from the main system and imported into another system nightly. Then there may also be manipulations such as upon importing, such as concatenating the productName and productDescription fields into the productDescription field in the new repository.


There was a post on the messageboard recently about what models to use to capture batch process requirements. Use cases do not work well, and while process flows might sometimes work, the model choice really depends on the complexity of the transactions.


When I think about something like a batch process to load data, I start with a set of questions. To answer each of those questions, I employ the appropriate model:


Use data models, such as data dictionaries, ERDs, state tables:



  • What data needs to be manipulated?

  • What data needs to be batched?

  • What are the attributes on the data to be batched?

  • What is the desired end state of the data after running the process? (This might be a state of the data or it might be an output format.)

  • What manipulations are executed on the data as part of processing? (If the manipulations get complicated, then a process flow diagram might help describe those steps.)


Use system models, such as context diagrams:



  • Where does the data come from?

  • Where does the data need to go?

  • What other systems have data that is used in the manipulation?


Use people or system models, such as actor lists or context diagrams:



  • What or who triggers the batch process to run?

Use non-functional models to identify non-functional requirements:



  • When does the process execution need to be completed by?

  • How frequent does the process need to run?

In capturing the requirements for batch processes, you need to start with a set of questions that have to be answered to gather the basic data, and then apply the known models to answer those questions.

Requirements Defined Newsletter Bookmark and Share

6 Comments:

Anonymous Anonymous said...

Since the batch process proposed here is not seen by a user, how can it be a requirement? I think you have slide over into design, which is a long way from requirements elicitation. As an elicitor, I'm not going to specify any architecture. If I did that, I'd be inserting volatility into the requirements.

Realization is reached through successive layers of decision making by the elicitor, designers, programmers,.... Who makes the responsibility allocations in all of this? What is your allocations?

9/26/2007 12:49 PM  
Blogger Joy said...

Thanks for the comment!
We will discuss this on the message board:
http://www.seilevel.com/messageboard/showthread.php?p=3185#post3185

9/28/2007 2:44 PM  
Anonymous Anonymous said...

First commentor said "since not seen by user, how can it be a requirement?" -- this entails a bad assumption that the USER is human.

10/01/2007 9:27 AM  
Blogger Joy said...

Thanks for the latest comment, I added it to the mb thread that is debating this topic!

10/01/2007 10:25 AM  
Anonymous Anonymous said...

Don't know why there would not be a requirement for a batch process. If there was an issue with running the batch process, I would like to know that there was a requirement and that it was tested.

10/12/2007 12:49 PM  
Blogger Anthony C. said...

This post is being discussed here:

http://www.seilevel.com/messageboard/showthread.php?p=3300#post3300

10/15/2007 3:53 PM  

Post a Comment

<< Home