Developing Safety-Critical Software: A Practical Guide for Aviation Software and DO-178C Compliance