软件工程简述 - STEMHA's Blog

软件工程简述

为了写大型程序,程序员们使用了各种工具和方法,形成了软件工程这门学科。
软件工程这个词由NASA工程师Margaret Hamilton创造。她帮助NASA在阿波罗计划中避免出现严重问题。她的经典名言:

这有点像牙齿的根管治疗:你总是拖到最后才做,但有些事情可以事先做好。有点像预防性体检,只不过是预防软件出错。

对象

尽管可以将大项目分解为小函数,每个人同时工作,不用关心整个项目,只关心自己的函数高效和正确就好啦,然而把代码打包成函数还是远远不够的。
比如微软Office软件有近4000万行代码,打包成函数也还有几十万个,也还是也有点多。
解决办法是,把函数再次打包成为层级,把相关的代码都放到一起,打包成对象(objects)

面向对象编程(object oriented programming)

把函数打包成为对象的思想叫做“面向对象编程”
对象可以包含对象,函数,变量。子对象也是同样的,所以会出现沿着对象层级一层层找执行函数的做法。

API

软件工程的比喻
就像建造摩天大一样,有管道工配置管道,电工装电线,油漆工涂油漆,还有成败上千人做其他的事情。
所以一个大团队中有许多小团队,不同小团队之间负责不同的功能,所以不同团队之间需要文档,才能帮助理解代码都在做什么,还需要定义好的程序编程接口(API)
API帮助不同程序员合作,不需要直到细节,只要直到怎么使用就好了。

然后private与public提供不同的权限,哪些不让外部访问,哪些仅供内部访问。

面向对象的核心

  • 隐藏复杂度
  • 选择性公布功能

IDE与调试(debugging)

代码在编译之前只是文字,可以用任何文本处理程序写代码,但是一般来时,还是会用专门的工具来写比较好。
IDE提供了许多有用功能,因为集成了所有的东西,所以叫IDE。

  • 代码帮助,提示,整理,编译,测试

文档和注释(readme/comment)

程序员另一项重要工作是给代码写文档
文档一般放在readme中
文档也可以写成注释,放在源代码中
好的文档的作用:

  • 能帮助开发者几个月后理解自己和他人的代码
  • 还能提升复用性,与其让程序员一遍遍写已经有的东西,不如直接用别人写好的来解决问题。

版本控制

源代码管理,帮助团队协作,也叫版本控制。弄懂git原理即可。

质量控制

写代码与测试代码密不可分。
测试也称为质量保证测试(QA,quality assurance testing)
严格测试软件的方方面面,看软件会不会出错,也就是找Bug。

Beta Alpha

beta版软件(beta software):意思是软件接近完成,但不是百分之一百通过测试过,公司有时会向公众发布beta版本,以帮助发现问题。
alpha版软件(alpha version software):一般很粗糙,错误多,只在公司内部测试。

参考资料

Crash Course Computer Science

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×