Studies of Software Design