Software architecture homework