This means you will have a list of applications and list of users corresponding to each and every application
If you dont have that information ask the customer.
Next comes workflow coding. You need to create "application specific lists" in your project. Use certain prefix to distinguish list of users for one application from other. For example "App1-Users" will be the users belonging to "App1" application
So there will be one list for applications like below (you can name it any name you want)
"Applications_List"
---------------------
App1
App2
App3
....
And then there will be MULTIPLE lists of users (one per application) as below
"App1-Users" List will have list of users beloning to app 1
"App2-Users" List will have list of users beloning to app 1
"App3-Users" List will have list of users beloning to app 1
and so on
Point to remember is that "Applications_List" is the name of list of applications, and "App1-Users", "App2-Users", "App3-Users" are individual names of the lists containing users
Then through workflow code, you'll assign (to Assigned To field) either "App1-Users" list as its source or "App2-Users" list or "App3-Users" list (depending on what was selected under application list)
There are lots of code snipptes around for dynamically populating lists
Good luck!