kruse/ryba ch011 object oriented data structures programming principles introduction programming...

10
Kruse/Ryba Ch01 1 Object Oriented Data Structures Programming Principles Introduction Programming Style Coding, Testing, Further Refinement Program Maintenance Conclusions and Preview

Upload: alexander-dennis

Post on 02-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Kruse/Ryba Ch011 Object Oriented Data Structures Programming Principles Introduction Programming Style Coding, Testing, Further Refinement Program Maintenance

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

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

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

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

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

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

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

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

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

Kruse/Ryba ch01 10

Chapter 1 Fades Away