Software documentation and modeling