kruse/ryba ch011 object oriented data structures programming principles introduction programming...
TRANSCRIPT
![Page 1: Kruse/Ryba Ch011 Object Oriented Data Structures Programming Principles Introduction Programming Style Coding, Testing, Further Refinement Program Maintenance](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649eda5503460f94be98cc/html5/thumbnails/1.jpg)
Kruse/Ryba Ch01 1
Object Oriented Data Structures
Programming PrinciplesIntroduction
Programming StyleCoding, Testing, Further Refinement
Program MaintenanceConclusions and Preview
![Page 2: Kruse/Ryba Ch011 Object Oriented Data Structures Programming Principles Introduction Programming Style Coding, Testing, Further Refinement Program Maintenance](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649eda5503460f94be98cc/html5/thumbnails/2.jpg)
Kruse/Ryba ch01 2
Introduction
Problem SpecificationProgram DesignChoice of Data StructuresAnalysis of AlgorithmsTesting and VerificationProgram CorrectnessMaintenanceC++
![Page 3: Kruse/Ryba Ch011 Object Oriented Data Structures Programming Principles Introduction Programming Style Coding, Testing, Further Refinement Program Maintenance](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649eda5503460f94be98cc/html5/thumbnails/3.jpg)
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
![Page 4: Kruse/Ryba Ch011 Object Oriented Data Structures Programming Principles Introduction Programming Style Coding, Testing, Further Refinement Program Maintenance](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649eda5503460f94be98cc/html5/thumbnails/4.jpg)
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
/********************************/
![Page 5: Kruse/Ryba Ch011 Object Oriented Data Structures Programming Principles Introduction Programming Style Coding, Testing, Further Refinement Program Maintenance](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649eda5503460f94be98cc/html5/thumbnails/5.jpg)
Kruse/Ryba ch01 5
Format
Spaces, blank lines, indentationPrettyprintingConsistency– Like writing an essay
![Page 6: Kruse/Ryba Ch011 Object Oriented Data Structures Programming Principles Introduction Programming Style Coding, Testing, Further Refinement Program Maintenance](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649eda5503460f94be98cc/html5/thumbnails/6.jpg)
Kruse/Ryba ch01 6
Refinement(Refactoring)
SubdivisionTop-down refinementSpecificationsPlain and Simple (KISS)Parameters– Input– Output– InOut
Variables– Local– Global– Magic Numbers
![Page 7: Kruse/Ryba Ch011 Object Oriented Data Structures Programming Principles Introduction Programming Style Coding, Testing, Further Refinement Program Maintenance](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649eda5503460f94be98cc/html5/thumbnails/7.jpg)
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
![Page 8: Kruse/Ryba Ch011 Object Oriented Data Structures Programming Principles Introduction Programming Style Coding, Testing, Further Refinement Program Maintenance](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649eda5503460f94be98cc/html5/thumbnails/8.jpg)
Kruse/Ryba ch01 8
Testing
Unit TestsBlack-Box– Easy values– Typical, realistic values– Extreme values– Illegal values
Glass-Box – White BoxTicking-Box
![Page 9: Kruse/Ryba Ch011 Object Oriented Data Structures Programming Principles Introduction Programming Style Coding, Testing, Further Refinement Program Maintenance](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649eda5503460f94be98cc/html5/thumbnails/9.jpg)
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?
![Page 10: Kruse/Ryba Ch011 Object Oriented Data Structures Programming Principles Introduction Programming Style Coding, Testing, Further Refinement Program Maintenance](https://reader035.vdocuments.us/reader035/viewer/2022072015/56649eda5503460f94be98cc/html5/thumbnails/10.jpg)
Kruse/Ryba ch01 10
Chapter 1 Fades Away