Monitoring and designing predictable time-triggered software architecture for real-time embedded applications