If I had to analyze a big application looking for these indications I would run three analyzes on it:
- One that measures cyclomatic complexity, coupling etc.
- A lint program of some sort.
- I would also compile the application myself and look at the warnings the compilation produces.
I would look at these results and if the application is poorly designed it will certainly show. Especially the first test tells a lot, code that has not been properly designed tends to have overly long functions, have complex structures and be tightly coupled. This sort of code also typically has lots of dead code and has a poor comments:code ratio. One free tool I found that does at least some of this analysis is cccc.