platform-dependence -- both hardware and OS
programming language -- C/C++, Java, .NET languages
functionality -- graphics, streaming media
deployment -- PC/PDA, local or networked, web deployment