There is a program which downloads a bunch of data, generates something like a report/save file from this data, and saves it to disk.
I guess the best user experience with saving the data will be the following: the data is handled internally , just like any common program (word processor, graphic designer, text editor) does it, and the user has to specifically "save"/"save as.." it to the disk. When the program is exited with any changes which were not saved, a dialog box would pop up, asking the user whether they wish to save.
So far so good.
However, the predecessor of this program did not have any save dialog, it just had one singe file. When the downloading process was complete, it saved it to that file. The user then had to copy/rename that file manually outside of the program. So now, if I implement the saving system as described at the beginning, most users would wonder, after the donwload+processing was done, where the file is. First when trying to close the program, or navigating to the File menu would they discover that their data needs to be saved, and this might be a bad experience, "huh, the data was not saved?". Note: the expected user demographic of this program is quite old.
What are the most important issues to be considered here? I'm thinking of the following alternatives. Are there any better ones?
Do as most software does it. Save only when the user explicitly clicks on "save", ask about saving when exiting if there are changes to be saved.
When the downloading and processing is ready, pop up the "save as.." dialog. Do this only if no file has been saved. This means, if the process is started again (can happen often, by selecting different settings and starting the process anew) the "save as.." dialog is not necessary, as we already have a file name. 2a. now save it automatically. 2b. not save it, it will be asked at the end anyway. (this is the solution which I personally like the best)
The "save as.." dialog is opened at the beginning when the user starts the process. Only after specifying the file does the process start and saves it automatically at the end. The advantage vs. Solution 2 is that because the process can take a long time, users would leave the computer, and return assuming everything is finished (just like the very old predecessor of the program did it)