Hardware, software, firmware allocation of functions in systems development. - David D. Webster (1987)