Title: Automatically generating software documentation from existing sources Abstract: ======== Program comprehension is a fundamental activity during software maintenance and evolution, accounting for almost half of the resources invested in software change. Together with the source code, software documentation is a critical resource when comprehending a software system. Documentation, however, is far from ideal--more often than not, documentation is missing or it is outdated, it is difficult to access, and it lacks of standard format. This talk will give an overview of my research on supporting developers during software (re)documentation through automatic summarization of various software artifacts. This work includes: the automatic summarization of classes in Object-Oriented systems, the automatic generation of release notes, and mining method API usage examples from existing software. The talk will primarily focus on the automatic generation of release notes, which are complex software artifacts that summarize the changes that occurred between two versions of a software system. I will discuss the different challenges of creating release notes and how my research work addressed them by integrating static code analysis, software summarization, and mining software repositories techniques. The empirical validation of the approach will also be presented. Finally, I will present future directions on the automatic software (re)documentation research.