I think you'll find that, as with software development in general, some Unity developers follow formal software engineering practices and some don't. Game development attracts more hobbyists, so the balance skews more toward off-the-cuff hacking, but I'd wager that a lot of large studios and professional developers use decent engineering practices. There's nothing stopping you from doing UML with Visual Studio Ultimate, or using Unity's Test Tools (with a nice tutorial now), etc
Patterns that fit well with Unity (Singleton, Observer, MVC ...). No complete drag-and-drop scripting, but rather some good concepts . When to use arrays, when to use Lists, Dictionarys etc, good libraries, sample snippets for various use cases.
Something that's kind of unity specific, the RequireComponent instead of just extending a class.
Or a completely new diagramm type for Prefabs and their components.
Of course you can use external software. But code generaters and patterns turned out to be useless for me, since it's all a little bit different inside unity.
I think gathering those best practices and unity patterns might be worth to build in an asset that fits well within unity itself rather than some external software.
Its all depend on your game architecture. Which architecture you are following. For example if you are following MVC then you can draw diagram of model class and their relationship with each other, controllers and views same way. In Unity Views will be your Mono Classes.