The document discusses task-oriented design for embedded programs. It describes tasks as basic execution units that can run in parallel with separate time domains and different priorities. Tasks should have loose coupling and a single task is recommended for each piece of functionality, especially periodic functions. Methods for inter-task communication include shared variables, event buffers and queues, and synchronization techniques for concurrent access. The task diagram can depict information flow between tasks.