Software analysis and design courses teach students about the steps in building software with various stages, methods and techniques in the software development process, so that students are expected to be able to design software and improve existing software.