I know this is allot to get to the question, but I’m looking for a tool that may or may-not exist.

Please use your personal skills of logical abstraction when you answer this question.
Simply saying that the question is vague or requires more specific information is in-correct in this case.

Abstract Problem Description:
Develop a software application which the end-user will interact with (At the Application Level),
which utilizes the hardware functionality of the hardware.

Obviously, this is a general statement of request (or General Question to some logical degree) and assumes the developer will “Know” enough about the hardware to write an application which controls the hardware features and also knows enough to provide a user interface to the end-user which will control the hardware based on how the end-user interacts with the program, all according to the hardware and the constraints (if any) of the software.

With this in mind please help me answer the following question:
Question:
What if any technical method(s) or Methodologies (If you will) have been developed which provide a way to describe the hardware components of a system, the interaction of the hardware components together and how software should control and interact with the hardware.

I’m looking for a “best” or Formal Method/Tool (If one exists) that provides descriptional ways to communicate detailed hardware specifications and their mechanics as a set of requirements to a group of developers who can then…

1) look at these method documents.
2) Use these Method documents to implement the requested features in C++
Thanks for your help,
TreeHead