Advanced software design: a case in problem-based learning | IEEE Conference Publication | IEEE Xplore