Software Development for Safety Critical Systems