In the upcoming summer semester, Martin Monperrus and I will be teaching a new course on Automated Software Engineering, here at TU Darmstadt. During the course we will look at the entire development life-cycle from a tool perspective: How can automated tools support programmers during the design, implementation, testing and maintenance of a software product? We will talk about approaches to…
- automated analysis & definition of requirements
- computer-aided design of software
- implementation with intelligent IDEs
- automated testing and verification
- computer-aided bug finding
- aiding program understanding by mining latent specifications from existing software
- advanced debugging & profiling techniques
- computer-aided refactoring and documentation
The course webpage contains a rough outline of the topics that we have planned but at this point we are still open for suggestions, as long as they fit the general topic.