А зачем такие подробности? Внутреннюю архитектуру и спецификации к API по идеи должен описать тех.лид или ответственный разработчик - им виднее, а так вы можете написать такое, что на практике придется переделывать.
Для небольшого приложения: рисуем прототипы, делаем описание элементов к ним, описываем общие требования (цели, задачи, термины и т.д) требования к безопасности, тех. платформе (верхний уровень), ну соответственно эргономика, юзабилити, что получаем/что отдаем, администрирование и т.д.