Parallel Software Development Techniques for Shallow Water Simulation