Soft Real-Time - when a service can occasionally miss a deadline and over-run it or terminate and drop a service release without system failure, these services are considered soft - e.g. a video encoder compression and transport service might occasionally drop a frame when compression takes too long - as long as the video stream is not critical and an occasional drop-out is acceptable w.r.t. system requirements, this service can be considered a soft real-time service.
Software Profiling - periodically tracing the cycle count and the current PC or actively tracing it by instrumenting all function entry and exit points to save cycle count to a trace buffer allows for determination of where most of the execution time is spent and how many cycles basic blocks of code such as functions requires - this type of tracing provides a profile of the software. Profiles can be at a function level, basic code block level (bounded by branches) or at a C statement level - overhead is higher for lower level profiling.
Software Sanity - software is said to be sane when embedded services check in with a sanity monitor by posting a keep-alive - the sanity monitor itself is known to be sane (functioning correctly) if it resets the hardware watchdog timer.