当机房收费系统完美收官之后,我开始学习软件工程,我发现了一个重大的问题,我居然导致了软件危机的爆发!!!开个玩
笑,为什么这么说呢?先让我们看看软件危机爆发的原因:
(1)软件开发费用和进度失控
(2)软件的可靠性差,没有统一规范
(3)成产出来的软件难以维护,没有资料和文档的记录
回顾我们机房收费系统的制作过程,简直就是不忍直视,我觉得能把这个软件制作出来都算一个奇迹,那么我们究竟该如何完
成一个软件才算是正规并且合格的呢?那么就让我们来了解一下软件工程到底能带给我们什么?
软件工程就是用科学工程管理的方法来指导软件的开发、设计、维护、调试等一系列的活动。也就是说,软件工程的产生就是
为了摆脱软件危机,把软件开发推进一步,提高软件的质量与生产率,最终实现软件的工业化生产。那么首先我们要了解下一个软
件的开发过程。
如上图所示,软件工程的主要环节有:人员管理、项目管理、可行性与需求分析、系统设计、软件测试、维护等。当然,每一
个阶段都要编写相应的文档。
软件工程的设计模型有很多,常见的模型有:线性模型(瀑布模型)、渐增式模型、螺旋模型、快速原型模型、形式化描述模
型等等。
最早出现的软件工程模型是线性模型(瀑布模型),线性模型太理想化,不适合现在的软件开发模式,但我们应意识到线性模
型是人们最容易掌握并能熟练应用的思想方法。所以,渐增模型使之就是分段的线性模型,螺旋模型则是接连弯曲的线性模型,在
其它模型中也能找到线性模型的影子。所以,在解决问题的时候,化繁为简才是真正的解决之道,了解部分才可理解全部。所以,
为了开发出低成本高质量的软件产品,我们应该好好的学习软件工程这门学科。
总体规划是软件开发的第一步,重点完成软件的可行性和需求分析,回答系统“是什么”的问题,为软件开发指明方向,具有战略地
位。
在系统开发前对项目进行可行性的论证十分必要,一般从下面五个方面讨论:
需求分析的任务就是深入描述软件的功能和性能、确定软件设计的约束和软件同其他系统元素的接口细节和定义软件的其它有
效性需求。
如果说可行性和需求分析解决了系统“是什么”和“干什么”的问题,那么系统设计就解决了“怎么干”的问题,可分为总体设计和详
细设计。
软件测试的目的是为了发现尽可能多的缺陷,这里的缺陷是一种泛称,它可以指性能低下,易用性差等等。
软件测试的原则有:
(1) 应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭
(2) 测试用例应由测试输入数据和对应的预期输出结果这两部分组成
(3) 程序员应避免检查自己的程序
(4) 再设计测试用例时,应当包括合理的输入条件和不合理的输入条件。
软件维护就是在软件运行/维护阶段对软件产品进行的修改。一些人将软件维护划分为三类,即纠错性维护、适应性维护和完善
性维护。编程大师曾说:“哪怕程序只有三行长,总有一天你也不得不对它维护。”所以,我们必须将维护的重要性意思提高起来。
总结:软件工程主要讲述软件开发的道理,基本上都是软件实践者的成功经验和失败教训的总结。软件工程是每一个编程人员所
必须掌握的一门技能,没学过软件工程编出的程序不能被称作是一个软件,最多也就是代码的集合。熟练的运用软件工程并结合软
件的科学制作方法,才是一个IT人应具备的素质。软件工程是一种思想,应该深深的扎根在我们的脑海里,作为我们软件开发的一把
标尺。