Se puede hacer usando técnicas de desarrollo de software, por ejemplo UML.