On the Use of Component-Based Principles and Practices for Architecting Cyber-Physical Systems