Using patterns to teach software subsystem design | IEEE Conference Publication | IEEE Xplore