软件工程感想
本学期我学习了“软件工程”这门课。软件工程不同于我所学过的那些数学、物理课程,
它不是从严格的理论推导得到结论,而是从实际工作中总结归纳而来的。
20 世纪 60 年代,出现了“软件危机”——指在计算机软件的开发和维护过程中所遇到的一系
列严重问题,例如,软件代价高、开发进度难以控制、工作量难以估计、质量差、修改和
维护困难。为了解决这些问题,软件工程应运而生。
以前,我们开发一个软件,基本上是想到哪里,写到哪里,编码成了最主要的工作,最
多先画个流程图。通过本学期的学习,我才认识到这是一个很大的错误,这种工作方式恰
似“软件危机”之前,软件业的工作方式,在软件规模较小时,问题还不明显。一旦软件规
模大了,“软件危机”中的各种问题就会随之而来。开发一个软件,包括以下几个方面:制定
计划、需求分析和定义、软件设计、程序编写、软件测试、运行/维护。软件开发有不同的
模型:瀑布、原型、增量、螺旋、RUP、Agile 方法等。此外,开发软件还要有合适的软件
工程工具和方法、软件配置管理、软件工程管理,这样软件的质量才能有一定的保障。
通过我们小组的大作业,我更是体会到了“软件工程”这门学科的价值。在编码之前的三个
步骤:制定计划、需求分析和定义、软件设计十分重要。如果没有计划,很可能把事情都
拖到了最后。需求分析不正确会给后面的工作带来极大的麻烦。而我体会最深的是软件设
计的重要性。在我们组开始按照软件设计编写代码时,我们发现原本对“行程辅助安排软
件”的认识不充分,只将大致框架给出来了,而没有认真考虑,导致编程时很不方便,而且
写出的代码,运行占用时间多,占用空间也多。总的来说,学了这门课程,收获很大。
现在谈谈我对这门课的理解:
软件工程是一门研究如何有效开发软件的学科,矛盾永远是事物发展的根本动力,软件
工程这一学科的产生,是随着软件危机的产生而产生,在计算机发展的早期,软件的独立
性相对不高,软件的发展跟随硬件的发展而发展,因此,当时人们如果需要计算机发挥某
些功能,往往自己编写针对某一具体问题的程序,这就造成了软件的“手工作坊”式开发,
到了后期,人们对计算机软件的需求越来越高,因为软件是计算机的灵魂,开始了软件独
立发展,迅速发展的时代,这个时候,由于大规模地开发软件,作坊式生产的弊端就表现
出来了,此被人们成为“软件危机”,它大大地制约了软件的发展:
1.对软件开发的进度和成本估计不足;
2.用户对软件不满意;
3.软件存在质量问题;
4.软件通常是不可维护的;