Three very quick steps to get you started:
SELECT [TableName] = OBJECT_NAME(object_id),
last_user_update, last_user_seek, last_user_scan, last_user_lookup
WHERE database_id = DB_ID('DatabaseName')
Will tell you the last time each index was used, including the clustered index. So at least give you a flavor for which tables are being accessed (and which aren't.)
2) Turn on an Extended Events session (or server-side Profiler trace if you're running pre-SQL 2012) for an hour or so while the app is being used. You can also ask a user to perform various actions in the application in a specific order so you can correlate it with the trace / session.
A helpful suggestion: if you can modify the connection string the app uses at all, append ";Application Name=AppNameGoesHere" so you can run a trace filtering on that particular Application Name. Good practice anyway.
3) Get a version of the application working on a non-production server. Develop a list of behavioral-driven tests for the application ("When the user clicks the New Item button, it creates a new item for that user," etc.) Begin soft deleting objects you feel have no bearing on the tests by renaming them (I use a format like objectName_DEPRECATED_YYYYMMDD - with the date being the day I plan to actually delete it.) Reverify all of your tests.
Through a combination of the Extended Events session, the index usage DMV, and your soft deleting, you should be able to identify the main objects being used by the application and a good general consensus on which object does what.