https://9lib.net/document/zgwdl412-arch-design-methods-may-june-lecture.html