menu
  • БЪЛГАРСКИ
  • News
  • Articles
  • Projects
  • Downloads
  • Аbout
  • Donation
  • last edited on: 2017-06-25

    An article with a brief introduction on the topic. Definitions, advantages and disadvantages, approaches to developing device-dependent and device-independent software and my personal preferences. 

    Machine-dependent software is software that addresses specific hardware features and works with only one type of peripheral device. Device-dependent software refers to programs that can run only on a certain type of hardware (i.e., their ability to function depends on the devices on which they run). Device-dependent software cannot easily be ported from one type of device to another, and usually requires large-scale modifications or rewriting of the original program. Device dependent components work properly only with a particular model of the device.

    Machine-independent software works with a variety of peripheral devices. Device-independent components work right no matter what model of device you use them with. For example, a given program doesn't have to worry about how to work with every mouse, keyboard, printer, screen, or scanner on the market. Instead, as long as the environment has a software control module (or driver) for the devices in your system, every program will automatically produce the expected results. Alterations to the software are usually not needed, and are minor when they are. Such software, however, has to contain within itself a considerable amount of information on the characteristics and capabilities of the devices it will work with.

    About advantages and disadvantages - keep in mind, that my opinion is subjective and I may be wrong, but it’s still seventeen years’ worth of experience. If you are still interested - read more here.