kruse/ryba ch011 object oriented data structures programming principles introduction programming...
TRANSCRIPT
Kruse/Ryba Ch01 1
Object Oriented Data Structures
Programming PrinciplesIntroduction
Programming StyleCoding, Testing, Further Refinement
Program MaintenanceConclusions and Preview
Kruse/Ryba ch01 2
Introduction
Problem SpecificationProgram DesignChoice of Data StructuresAnalysis of AlgorithmsTesting and VerificationProgram CorrectnessMaintenanceC++
Kruse/Ryba ch01 3
Names (identifiers)
Meaningful – CS Department StandardSimple when localUse common prefixes and suffixesAvoid intentional misspellingsAvoid cuteAvoid similar spellingsBeware of confusing letters – o0, il, 1l, etc.
Accounts_payable
size loopIndex
x
Kruse/Ryba ch01 4
Documentation(Comments)
Prologues for functionsExplain variablesIntroduce significant sectionsIndicate ends of significant sections - //End main( )Avoid redundant & verbose commentsExplain tricky code – Better still avoid it!Documentation explains what not howDocument Modifications/*…*/, //, /// Visual Studio
/********************************/
Kruse/Ryba ch01 5
Format
Spaces, blank lines, indentationPrettyprintingConsistency– Like writing an essay
Kruse/Ryba ch01 6
Refinement(Refactoring)
SubdivisionTop-down refinementSpecificationsPlain and Simple (KISS)Parameters– Input– Output– InOut
Variables– Local– Global– Magic Numbers
Kruse/Ryba ch01 7
Coding, Testing, Further Refactoring
Stubs – Function / ClassDrivers – main call your program function to get startedProgram Tracing– Structured walkthroughs – Single Step– Trace tools – Break Points– Snapshots - cout– Scaffolding– Static analyzer
Kruse/Ryba ch01 8
Testing
Unit TestsBlack-Box– Easy values– Typical, realistic values– Extreme values– Illegal values
Glass-Box – White BoxTicking-Box
Kruse/Ryba ch01 9
Program Maintenance
Solution within specifications?Correct under all conditions?Interface?Logically and clearly written?Well documented?Efficient use of time and space?Reasonable?
Kruse/Ryba ch01 10
Chapter 1 Fades Away