当前位置:C++技术网 > 资讯 > 你必须知道的程序那些事:2 写程序、开发软件、开发项目和生产产品的关系

你必须知道的程序那些事:2 写程序、开发软件、开发项目和生产产品的关系

更新时间:2015-06-24 22:41:20浏览次数:1+次

    曾经我还是懵懂的程序员时,只看到黑窗口,只知道.c文件。能编译出一个exe文件,那是莫大的欢喜。就是这么一些乐趣,让我走到了今天。有时候会感叹,一个人摸索实在是辛苦,但是也会庆幸,就是一个人摸索才让兴趣更加浓厚。那种探索中彷徨,从彷徨中走出来的喜悦,无一不是支持我坚持走下去的理由。
    对于软件的认识,从前就一直以为软件和程序一个意思。不要笑我肤浅哦,就是因为无知,才会让自己收获更多的乐趣。如果自己什么都知道了,那还有什么意思,我们就是要去探索未知的世界,在探索中发现快乐,充实自己。所以,在出现彷徨的时候,我往往会感觉,越是彷徨,程度越深,反而觉得打破彷徨离我不远了。每次都能验证,所以也就不再害怕彷徨。所以,即使彷徨也不会失去方向。
    从最初的控制台程序,一个单文件源文件生成的EXE。那个EXE完全就是一个小程序。这样的可以运行的东西就称为程序。就那么一个孤零零的EXE,光杆司令,就是程序。当然,这是我的个人理解,同时也是参考过大量的资料比如软件工程等总结的。程序就是一个执行的单元,就这个执行体本身就是程序。初学者所生产的程序,拿给别人用都是一个单个的EXE,这样的就是程序的范畴。
    不管是控制台还是高大上的windows界面程序,只要是一个孤零零的EXE文件,都可以理解为程序。所以程序我们是很好理解的。我们提到的所谓的写程序,其实就是生产EXE的过程。
    那么,什么是软件呢?
    软件相对于硬件而言。硬件就是看得见摸得着的设备。宏观来看,用你的手可以摸得着的东西都是硬件。桌子椅子都是硬件,而不是平常认为的显示屏键盘等。狭隘到计算机来看,那就是指的计算机相关的看得见摸得着的物理器件,比如主板、电阻,CPU等。
    那么软件就是看得见,但是摸不到的。这是一个相对于硬件来说的。相对于程序而言,那么什么是软件呢?
    软件可以看做是一个EXE文件的箱子。程序是软件的核心部件之一,就像CPU是电脑的核心部件之一一样。软件是一个整体的概念,而不是一个单个的东西。软件还包含了程序使用的依赖库,程序的配置文件等。这些才组成了软件这个整体。
    一般说来,我们可以说在写程序,而不是写软件;可以说是在开发软件,而不是开发程序。开发是应用于软件,从无到有,写程序是开发软件的一个部分。软件开发包含了软件的功能实现设计和代码实现。既有书写设计文档的部分,也有写程序的部分。软件开发是围绕着功能实现所做的所有工作,而写程序只是写代码实现这个功能的部分,只是软件开发最后实施的一步而已。通常的理解就是,写程序的称为程序员,功能架构设计的软件架构师。分工不同,完成的任务不同,因此软件开发可能由多个人一起完成。
    至于说,经常听到的软件设计规划,写软件策划书以及写软件使用说明书等,这不是简单的软件开发了,这是项目开发的范畴了。因为已经把软件开发提升到一个项目的高度。项目开发首先要做各种调查,写出功能需求,这个和软件开发没有关系,这属于产品的设计,只不过这个产品是软件罢了。这个针对业务的实现,业务的逻辑等。这是项目开发的开始环节。
    而项目开发的中间环节(关键环节)就是软件开发。
    项目开发还有很重要的环节就是开发后的环节:测试和写文档。因为软件几乎都是由很多程序组成的,因此程序相互之间的影响都是要测试的范围,这个和程序的调试不一样。所以都说的是软件测试,而不是程序测试。软件测试是由专门的测试人员来使用软件,运行软件,而不是调试软件。测试软件得到测试结果,反馈给开发程序员,然后程序员来调试修改程序。
    如果测试通过,软件开发就走入尾声。最后要投入使用,就要写好软件使用说明书。这是项目开发必不可少的一步。这也是一个产品必须有的一个附属物。
    到此为止,从程序到软件,从软件到项目,从项目到产品,基本就是这个流程。当然,这是我个人的理解,仅作参考。没有使用术语化描述,就是让开始接触编程的朋友们可以快速了解的今后从事工作的一个基本概况。要深入了解,就要参考软件工程相关的书籍了。而我在此说的,就是给大家一个快速的整体的印象,让你知道你所做的是处在什么位置。