你必须知道的软件工程(一)心里话
我对软件工程的认识经历了三个阶段。第一阶段就是大学本科的时候学习的软件工程。那时候印象最深刻的就是几个软件开发模型,画数据流图,还有画伪码,PAD图,N-S图等图。但是那时候虽然不明白软件工程干什么用,不过学的倒是挺好,而且考高级程序员、考研都不怕。但是真的对软件工程不了解,以至于毕业的时候问一个牛人叔叔,学那个方向最好,答曰:软件工程。我当时想软件工程?不就是开发过程知道了,流程图知道了就行了么?有什么好学的,还是计算机应用方向好。不过,毕竟牛人建议 的,我的心里还是深深地记下来了。
第二阶段,后来读研,学了软件需求工程、面向对象两门课,每次上课都特别明白,和实际工作中比较觉得醍醐灌顶,但是一下课,到实际工作中就糊涂了?写需求文档怎么写不太明白, 只知道什么需求文档是不好,就是写不出好的。想设计,想软件过程,也都是似是而非。觉得还是技术好,软件工程也不过如此。
第三阶段,后来跟着王立福老师学习软件工程与过程管理,王老师的讲解深入浅出,让你深得入髓,浅显易懂,顿时茅塞顿开。加上实际完整的带了几个项目了,对此更是深有体会,感觉象老虎查了翅膀一样。处理项目事情比较顺手,项目过程改进也更加有根有据,开发过程中的每个阶段用那个方法、工具也可信手捻来。如今,再听到软件工程没有用,软件工程方法不实用的言论,我已产生不了共鸣了,只能淡然一笑。
然而,就目前我的认识而言,软件工程许多方面仍是一知半解,也生怕过了半年慢慢又忘却了,于是赶忙整理出来,也加深印象,此外,在写作的过程中,把没有弄懂的再学习一下,理解错误的也求高人指点。
不知道大家有没有遇到这种情况,我们做一件事情,偶然成功了,获得了好评,于是大家 就请你讲讲成功的意见,并且人嘛遇到自喜的事情天性也希望总结一下,好能够以后每次都成功。毕竟一次成功并不算什么,重要的每次成功,如果你能让其他人都复制你的成功,那多有成就感。但是,做事的时候不注意,总结的时候还是挺困难的,特别给别人讲没有理论简直张不开口。其实,这就是工程的作用了。软件工程就是让你明白项目的各种事情,明白开发的每个阶段,能够自由的选择每个阶段的方法、工具,能够知道选择的过程、方法、工具的缺点(即风险)并规避这些风险。我们下面的章节就是从这些方面入手,一一展开。
定义参考:
工程:“工程”一词有广义和狭义之分。就狭义而言,工程定义为“以某组设想的目标为依据,应用有关的科学知识和技术手段,通过一群人的有组织活动将某个(或某些)现有实体(自然的或人造的)转化为具有预期使用价值的人造产品过程”。就广义而言,工程则定义为由一群人为达到某种目的,在一个较长时间周期内进行协作活动的过程
软件工程:软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、 技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。