All software must take data in, send data out and store data in one manner or another. How the data will be structured and inter-related is a key element of pretty much all software projects.