https://vulms.org/cs711-software-design/
CS711 - Software Design