在入大学之前,我对软件这方面的知识完全不了解,也从来没有想要去了解。入大学之后,学习了几种编写程序的语言,虽然对这几种语言并不是很精通,但是也算有了一定的了解。看了《构建之法》第一章后,我对软件,程序有了更多的认识。
程序,指的是源程序,就是一行行的代码。每一个软件都是由程序写成。程序还要对数据进行操作,这些数据有些有些是静态的,有些是动态的,但是光有代码和静态数据是不行的,工程师要把他们构建为机器能懂的可执行代码。
一个人是很难完成一整个软件的开发,运营及维护的,需要团队的合作。程序员在写程序之前,需要先构建一下所做软件能实现的功能。一个软件要起到作用,就要满足人群的需求,这些需求有些靠谱,有些不靠谱,有些容易做到,有些很难做到,所以程序员要从需求分析开始,把合适的需求梳理出来,然后逐步展开后续工作。
人们在开发、运营、维护软件的过程中有很多技术、做法、习惯和思想体系,这些相关的技术和过程统一到一个体系中,叫软件开发流程。它的目的是为了提高软件开发、运营、维护的效率,并提高软件的质量、用户满意度、可靠性和软件的可维护性。
软件团队的成员每天都在写代码,改代码,他们必须要保证软件能实现某个功能,并且运行顺畅,而且有些代码并不是需要自己写的,有些代码段是别人原来就写好了的,只需要调用就可以了。有时候,程序员要为某个需求写一些特殊功能,不久后又要把这些功能再合并回主要版本,有些程序还要配置不同的界面,运行在中文、英文或者其他语言的操作系统上,或者支持不同的系统。就像一个游戏软件,比如说阴阳师,这个游戏可以支持iOS系统的,可以支持安卓系统的,也有一个双平台的。
软件的开发过程中存在很多的难题,比如复杂性,不可见性,易变性,服从性,非连续性等,软件的这些本质特性让“做一个好软件”变得很难,但是也让软件工程更加具有挑战性。计算机科学的理论研究部分,大多与数学、离散数学、数学逻辑相关,其他与实践相关的部分,都与数据及其他学科有关系,而软件工程则是和人的行为、现实社会的需求息息相关的。我认为,软件工程,就是把软件中的Bug都消灭掉的过程。简单来说,Bug就是系统中的问题,也可以说是软件的行为和用户的期望值不一样,而做软件开发的人势必在开发软件过程中会遇到无数的Bug,Bug的多少可以直接衡量一个软件的开发效率等,它也会影响到用户体验。
一个软件由无数行的源代码写成,程序员不可能一下子就能把这个软件写的相当完善,所以一个好的软件需要程序员不断的修改代码,不断的添加代码来增加功能,当然,那些没有什么有用的功能。对我们这些学软件专业的学生来说,以后如果就职的就是软件开发方向的话,需要的不是写几段代码就好,而是应该想办法让开发的软件尽可能的完善。软件开发过程肯定很困难,所以我们应该不断地深入学习,不断地求知探索。
原文:http://www.cnblogs.com/hxy-/p/6682663.html