Knowledge-Based Software Development for Real-Time Distributed Systems