"Python is inherently an object-oriented language, because
everything in Python is an object. The syntax and structure of the
language make it easy to create small, easy-to-understand functions
to build upon. Designing an application starts with the list of
requirements and uses some type of functional decomposition to
determine what code you will need to write to fulfill them.
"For this application, a top-level requirement is the ability to
enter and save waypoint information. To fulfill this requirement,
you must have some UI elements, such as a text box, a Save button,
and a way to save the information for retrieval later, which
implies some type of database. Identifying the need for a database
drives other code functionality, such as initializing the database
the first time the application is run and, in turn, saving and
retrieving information from the database.
"Coding a function to create an empty database is a good example
of a small, single-function routine. For this project, the code
looks like Listing 1"