Design Methods in a Nutshell

Functional design is a design approach which considers first what functions a system performs, and postpones consideration of data. It contrasts with OOD, which considers first what data comprise the system, and postpones consideration of its functions.

If you ever wrote a Java program as one big main program, you were doing functional design.

Functional approaches have been in use much longer than OOD. The most well known functional design method is Structured Analysis and Design. OO approaches are the new kid on the block. Currently a lot of effort is going into UML and it is the leading contender among OO methods.
 
Functional
Object Oriented
1. Identify Functions 1. Identify Classes and Attributes
2. Identify Data 2. Identify Operations
3. Establish Hierarchy 3. Establish Visibility
4. Establish Interfaces 4. Establish Interfaces