После того как мы определились с целями и прежде чем бросаться в бой (пардон, в программирование) необходимо четко сформулировать требования к предстоящей реализации. Таковыми стали.