software design cs342