Don't forget it's called Software... It is MEANT to be changed. This means it should be built to easily be changed over and over.
Think about what the computer is actually doing. At the end of the day, we are programming a real computer; a machine. Think of problems in that way rather than applying overwhelming artificial constructs to the problems in order to fit into some methodology.