Most projects can be broken down into 2 parts
hardware and software.
When a project entails an application that will be
executed on a personal computer, that computer is the hardware and the
application is the software. The hardware is already established and
therefore the project is entirely software.
The opposite might also be true. A piece of new
hardware may be needed which interfaces with other existing hardware, a PC
perhaps. In some cases one of the standard peripheral interfaces can be
used and the project might require only hardware.
It is more likely that any piece of hardware or any
software application will include some amount of both hardware and software
engineering. To this end, although the interaction between hardware
and software are strongly related, they can be separated in terms of design.
Choosing a technology for hardware may depend on
inventory presently used within the company. While there are cost
benefits, flexibility will achieve a balance between savings and an efficient
design. The best mix is to present your inventory and
allow the designer to use discretion in choosing a direction. You can
designate the use of either standard through-hole or surface mount technology
for the design. Note that this may put some limitations on the design as
not all parts are available in both technologies.
Application software can be written at many
levels. This often depends on where it is being used. Embedded
software (the program that executes directly on a microprocessor or
microcontroller controlling the hardware being developed) is often written in a
lower level language (i.e. 'Assembly'). Application software
(executing on a PC) is often written in a higher level language (i.e. 'C',
'Java', 'Basic'). There are designs where both types of software may
be necessary. This might include an application executing on a PC designed
specifically to interface with a piece of external hardware in which embedded
software is also necessary to control the physical hardware. If your
company already supports the maintenance of existing products, it may be
important to you that this design use the same language(s).