SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Program design concepts - slide 1 Software engineering for real-time systems Section 5 Program design concepts
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Program design concepts - slide 2 Objectives To: Show why quality programs must be well-structured. Explain how structured programming can help to attain quality. Describe the fundamental structures of structured programming. Introduction
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Program design concepts - slide 3 Simple transformation actions
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Program design concepts - slide 4 Complex transformation action
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Program design concepts - slide 5 Basic control structures of structured programming
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Program design concepts - slide 6 Equivalence of iteration structures
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Program design concepts - slide 7 Composition of a structured program
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Program design concepts - slide 8 IF _ _?_ _ THEN GOTO HighTemp ELSE GOTO Continue; HighTemp : Statement 1; Statement 2; Statement 3; Continue : Statement 4; Statement 5; Program fragment HighTemp S1 S2 S3 Corresponding flow diagram ? Continue S4 S5 FalseTrue Well controlled use of the GOTO statement
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Program design concepts - slide 9 Corresponding flow diagram StartTest S1 Entrypoint S2 S3 ? ? S4 T F T F Program fragment StartTest : Statement 1 Entrypoint: Statement 2 If _ _ ? _ _Then gotoStartTest ; Statement 3 If_ _ ? _ _Then gotoEntrypoint Statement 4 Poorly controlled GOTO statements
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Program design concepts - slide 10 Review of ‘Program design concepts’