A System Design Methodology for Software/Hardware Co-Development of Telecommunication Network Applications