Forward and Reverse Engineering of Cellular Decision-Making