硬件是看得见、摸得着的物理部件或设备。在研制硬件产品时,人的创造性活动表现在把原材料转变成有形的物理产品。
在研制软件产品的过程中,人们的生产活动表现在要创造性地抽象出问题的求解模型,然后根据求解模型写出程序,最后经过调试、运行程序得到求解问题的结果。整个生产、开发过程是在无形化方式下完成的,其能见度极差,这给软件开发、生产过程的管理带来了极大的困难。
质量体现方式不同表现在两个方面。硬件产品设计定型后可以批量生产,产品质量通过质量检测体系可以得到保障。但是生产、加工过程一旦失误。
硬件产品可能就会因为质量问题而报废。而软件产品不能用传统意义上的制造进行生产,就目前软件开发技术而言,软件生产还是“定制”的,只能针对特定问题进行设计或实现。但是软件爱你产品一旦实现后,其生产过程只是复制而已,而复制生产出来的软件质量是相同的。
设计出来的软件即使出现质量问题,产品也不会报废,通过修改、测试,还可以将“报废”的软件“修复”,投入正常运行。可见软件的质量保证机制比硬件具有更大的灵活性。
硬件产品的成本构成中有形的物质占了相当大的比重。就硬件产品生存周期而言,成本构成中设计、生产环节占绝大部分,而售后服务只占少部分。
软件生产主要靠脑力劳动。软件产品的成本构成中人力资源占了相当大的比重。软件产品的生产成本主要在开发和研制。研制成功后,产品生产就简单了,通过复制就能批量生产。
硬件产品存在老化和折旧问题。当一个硬件部件磨损时可以用一个新部件去替换他。硬件会因为主要部件的磨损而最终被淘汰。
对于软件而言,不存在折旧和磨损问题,如果需要的话可以永远使用下去。但是软件故障的排除要比硬件故障的排除复杂得多。软件故障主要是因为软件设计或编码的错误所致,必须重新设计和编码才能解决问题。
软件在其开发初始阶段在很高的失败率,这主要是由于需求分析不切合实际或设计错误等引起的。当开发过程中的错误被纠正后,其失败率便下降到一定水平并保持相对稳定,直到该软件被废弃不用。在软件进行大的改动时,也会导致失败率急剧上升。
硬件产品一旦设计定型,其生产技术、加工工艺和流程管理也就确定下来,这样便于实现硬件产品的标准化、系列化成批生产。
记得上学那会儿刚接触电脑,软件和硬件的区别是个热门话题,而记忆最深刻的有个说法是光盘和软盘是软件,其他的都是硬件。那阵同学们对电脑都还不懂,因为那时候很多的数据和程序都是存储在光盘和软盘里的,所以好多人都说光盘和软盘就是软件。当然这是错误的,光盘和软盘也是硬件的一种。
由于是自动化专业,当时大家做课题和研究的时候每个人侧重点都不一样,当时也同学们之间也有了“我主要做硬件”和“我主要做软件”之分。
做硬件的同学花费的主要时间在:设计设备的机械机构并把它做出来,设计单片机的电路并在PCB板子上把电路搭建出来,设计PLC和外围的控制器并将这些东西搭建起来,等等;
做软件的同学花费的的主要时间在:根据自己思考的控制算法,用C语言或者其他语言将控制逻辑用代码写出来,做PLC控制的用梯形图把控制逻辑写出来并写入到PLC中,做纯管理软件的根据业务和流程情况,将管理逻辑用代码和图形编辑到一起生成可执行的文件可以供用户在电脑上操作。
其实做硬件的同学在用很多常用的CAD,ProE,ProTel等软件来辅助完成硬件的搭建的;而做软件的同学也需要通过电脑显示器,键盘,硬盘这些将程序和代码存入到PC里并运行在电脑上,再通过各种PC硬件展示出来给用户使用。
工作了之后,进入仓储物流自动化行业,接触到了更多的更大的硬件,不光是电子电路,电脑外设这些,更多的接触到托盘,货架,堆垛机,机器人等这些更大的硬件,而这些硬件背后的驱动由是由控制工程师便携的控制代码软件来进行逻辑判断并约束执行的。而所有的这些动作执行由与上位管理软件进行数据交互,上位软件收集着现场的数据并根据工艺要求实时下发指令和数据给现场的硬件。
当然随着时代的发展,软件和硬件也越来越多,范围也越来越光,以前从来没有的各种智能手机,触摸屏,PAD,VR新奇硬件层出不穷,而在这些硬件上又有新的软件比如各种APP,各种游戏等等运行在这些硬件上。

