软件是什么?
1.(我过去的所做所想)
大学已经马上接近尾声,学了将近三年的计算机,但是当别人问起我这个问题时,仍然不知道该如何回答,或者也是因为不知道如何回答这个问题是正确的。如果真的要让我给出一个答案,我想我会给出一个最简单直白的回答,软件就是一堆程序。这是我最初开始学习软件的真实想法,也是我为软件做的自我注释。在学校读书的这个过程中,没有真正地做过工程项目,学习一门语言课程或者其他课程,或者遇到小学期老师让组队做个小程序的时候,仍然没有树立起工程的思想和概念,第一个原因是我们写的程序都比较小,最多的也就是几百行,实现的功能也比较简单,程序模块之间的显性关联与隐形关联比较少,第二个原因是组队流于形式,不是说我们不可以一起写程序,而是指我们的组队不过是一块拼凑代码数量,对于程序要实现的功能以及各个模块之间的组合从来没有过细致耐心的讨论,更不用说需求分析了。软件就是一堆程序的思想源于这样的实际情况,但是学习了《软件工程》以后,我才发现,这种思想极具片面性,从工程的角度讲,软件就是一堆程序这样的说法就是错误的。
2.(这种思想的误区)
《构建之法》第一章的绪论中就给出了软件的定义,软件=程序+软件工程。对于软件而言,程序是必不可少的,程序对于软件而言,就如同血液、肉体、骨头对人而言,程序的排列组合构建起来的一个可用的整体就是一个软件。但是仅仅包括程序的软件不是一个真正意义上的软件,一个人生下来以后,要想成长,就必须从外界获取营养、学习知识、培养自己的能力、不断提高自己的能力水平,这样才可以让一个人变得越来越优秀,从而可以从这个世界上继续生存下去,那么,软件工程对于软件而言,就是如何让软件生存下去的一套方法,软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。软件工程是一个系统工程,“工程”二字就意味着它和许多的其他学科一样,也有工程理论,质量控制理论等等,如机械工程、土木工程等。软件工程贯穿于软件生产的整个过程中,因为它包含与软件生产相关的各个方面,比如构建管理、源代码管理、软件设计、软件测试、项目管理等等。缺少其中的任意一个过程,软件的生存都有可能受到极大的挑战和威胁。因此,软件是一堆程序是片面的,程序与软件工程有机的结合才能真正的组成一个软件。
3.(以后该如何做)
我认为,就信息学院的学生而言,无论是计算机、软工、信工、教育、网工还是数媒,我们都同属于信息科学的领域,以后的工作大多也是与信息科学工作相关的领域,不论哪个专业,都避免不了和软件打交道,软件更是软工或者计算机的同学的安家之本,因此,在对软件的理解上,必须有一个科学的认识。就我自己的思想认识而言,我过去认为软件就是一堆程序,但是学习了《软件工程》以后,我认识到了这种思想的片面性,那我就应该用科学的认知去替代脑海中的错误认识,将软件工程的理论应用到实际的实践中去。虽然我们现在还处于学习的阶段,而且不会有太多太大的工程项目去做,但是在做小程序的时候,就应该转变思想,树立正确的态度,不能认为一个程序小就可以不按照正常的流程去做。不积硅步,无以至千里;不积小流,无以成江河。软件的学习与开发是一个慢慢积累的过程,只有转变自己的思想认知,并且认真的、按照严格的要求去实践,我们才能不断的积累起更多的经验、教训、方法、知识,从而提高自己的水平,逐渐的成为一个合格的工程师。可能很多的同学感觉学习软件比较辛苦,以后找工作时不会选择软件来作为自己的安家之本,但是我认为学习这种思想还是很重要的,不论是那个行业都有自己的一套规范,缺少了这个规范就很难做大做强,我们学习着如何学习软件,认识软件,就是一个认识标准规范的过程,这种思想对于学习其他领域的知识同样很重要。