C – A Software Engineering Approach