Hardware development using software methodology
Develop hardware using software methodology
The Rich Picture and the System Definition must be agreed upon between the customer and the developer.
From the Rich Picture it is possible to develop block diagrams.
Each block has a unique name.
The unique name must clearly define what the function of the block is.
The blocks should be easily selected from the drawing.
Naturally, each block has some inputs and outputs which can be translated to variables (x) and functions (f(x)). The functions and variables must be named in accordance with the drawing.
Each block in the block diagram can be made like the one below. Especially software developers like this form which looks like Class Diagrams.
For each class or block, it is possible to make a State Machine Diagram. The states and actions are still derived from the drawing, considering each function. Have a look at some hardware examples.
A common goal of the EUDP method is to find a method that defines the various processes in a project.
The following aspects are important:
- The early processes of the method must be comprehensive for both the customer and the developer.
- The method should enable both hardware and software developers to use the same tools during the analysis of the system-to-be.
Generally, the best method from a hardware developer's point of view is to draw a block diagram, because s/he often uses older constructions from which he develops new parts - re-use!
Software developers use the UML notation. This generally means that the best method is to draw Class Diagrams, Use Cases, State Machine Diagrams, etc.
Block Diagrams and Class Diagrams are very similar. In hardware development, a State Machine Diagram will enhance the understanding of the class or block diagram, because the dynamics of the block will be included. Therefore, we encourage to use these parts of the analysis even while analysing hardware.
While the customer normally cannot understand or read block diagrams, s/he is more likely to be able to understand a drawing. It further enhances his/her understanding if the drawing is made interactively with the developer. Consequently, the first objective is to make a drawing which includes all aspects of the project (a so-called Rich Picture). At this stage, the drawing is important because the customer and the developer can exchange views and discuss things in detail. Additionally, explanations of parts of the drawing may be given when necessary. This ensures a mutual understanding.
Once the Rich Picture is made, it is important that it is accompanied by a project description as well as a System Definition.
When hardware and software developers use the same methodology, it is much easier to decide which blocks to implement in software and hardware, respectively. And as shown above, it is possible to use the object-oriented method in hardware development.
Consequently, using the same method for both software and hardware analysis ensures that the customer has a chance of understanding the results during the process - at least in the early stages of the process.
Example 1: A power supply
Block (Class) Diagram and State Machine Diagram for the power supply.
The power supply has an input and an output. The output depends on the chosen mode. The choices are made by the user, and the power supply gets the information via a microprocessor. The programming possibilities are the pins on/off and high/low and/or the sound only pin high/low. The power supply only works when the mains plug are in. When put in the first time, the power supply must start up in standby mode. The mains plug can be removed at any time. Note that it is not possible to go from one mode to a reduced mode unless the power supply is turned off first.
Example 2: An electrical engine
Block (Class) Diagram and State Machine Diagram for an electrical engine.
The engine only works when the mains plug are in. When power is plugged in, the engine must start up in standby mode. The mains plug can be removed at any time. In standby mode, the engine is not running. The engine can be turned on or off using the on/off pin. The speed of the engine can be increased or decreased by using the increase/decrease pin. The speed will be output.