知识点:(概要) 为了保障开发质量,为各阶段都准备了相应的好办法。可以说:你想得到的软件工程好方面,《软件工程》都想到了;你想不到的,《软件工程》更是想了不少。 (1)通过对软件工程的学习,了解了软件工程各个阶段的里程碑,以及在各个阶段完成中
知识点:(概要)
为了保障开发质量,为各阶段都准备了相应的好办法。可以说:你想得到的软件工程好方面,《软件工程》都想到了;你想不到的,《软件工程》更是想了不少。
(1)通过对软件工程的学习,了解了软件工程各个阶段的里程碑,以及在各个阶段完成中采用相应的处理方法,使得各阶段的任务在完成过程中既有条有理,又方便通用。
(2)比如软件工程分六大阶段(计划、分析、设计、编写、测试、维护)(3)在各阶段完成过程中都需要的文档的记录,并成为各阶段的进度的标志和里程碑。
在软件的计划阶段,采用“开发模型”(6种),可以针对企业的不同情况,选择适当的开发方法,解决客户的问题,满足需求。
①瀑布模型:
优点:严格按照软件生存周期进行,每一阶段完成之后,必须进行评审通过后,才能进入下一阶段。发现过程中出现问题,需要返回到相应阶段进行修正、弥补,然后再重复操作,直到通过。
缺点:该模型缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题,这些问题可能导致最终开发出的软件并不是用户真正需要的软件,并且这一点往往在开发过程完成后才有所察觉。面对这种情况,无疑需要进行返工或不得不在维护中纠正需求的偏差,为此必须付出高额的代价,为软件开发带来损失。并且,随着软件开发项目规模的日益庞大,该模型的不足所引发的问题显得更加严重。
②快速原型模型
优点:通过快速开发一个原型来反映用户的需求,这样方便和客户交流,以明确客户的需求,保证软件的质量。
缺点:费用较高,因为初步开发的模型往往与最后的版本相差很大,有的基本不能用,需要全部重新开发。快速原型模型的作用仅仅用于反映客户的需求。这样,有的客户很难接受,缺乏耐心。投资很大,不好承受。
③增量模型
优点:采用先主干后分支,先基本后完善的开发方法。最开始开发出企业的主流业务,解决主要问题。随着开发的进行,在各阶段不断对软件进行完善,通过这样不断完善的开发过程,最终用户得到一个完整功能的软件。这对很多急需使用的企业来说,是不错的选择。
缺点:由于将软件分成了很多的构件,往往需要花费大部分时间在这些构件的集成上。现存的产品必须容易扩充,后开发的构件必须是简单和直观并容易集成。因此,对于增量模型,产品的体系结构的设计必须是开放的。
④螺旋模型
优点:螺旋模型将瀑布模型和原型模型结合起来,不仅体现了两个模型的优点,而且还增加了两个模型都忽略了的风险分析,弥补了两者的不足。
局限:螺旋模型的使用需要具有相当丰富的风险评估经验和专门知识,而且费用昂贵,所以只适合大型软件的开发。
⑤喷泉模型
优点:开发过程各阶段重叠性好,能尽早地发现问题并作出修改,避免问题的积累在后期造成重大损失。尤其很多问题,越早发现越早解决越好,避免返工。整个过程的要求很高,软件可维护性较好。
缺点:很多工作被重复做,过程比较复杂,无形中增大了很多在最后来看无用的工作量,但在过程中是不可能知道的。
⑥形式化方法模型:包括变换模型和净室软件过程模型。
变换模型:在软件需求分析确定以后,便用形式化的规格说明语言将其描述为“形式化软件规格说明”,然后对其进行一系列自动或半自动的变换,最终得到软件系统的目标程序。
净室软件过程模型:力求在分析和设计阶段就消除错误,确保正确,然后在无缺陷或“洁净”的状态下实现软件的制作,以生成极高质量的软件。它是一种严格的软件工程方法,强调数学验证的正确性和软
件认证的可靠性的软件工程模型,其目标和结果是降低出错率,这是使用形式化方法难于或不可能达到的。
(4)很多图的使用,能非常清晰地反映内容、简化工作。
在需求分析阶段,“数据流程图”的使用能够清楚反映企业的功能需求和企业的工作流程,方便后面阶段的进行。
在软件设计阶段,“系统结构图”能方便设计人员对各模块的合理计划和分配。
在软件的编写阶段,更是做了严格的、具有全局观的提出编写的规范,不仅保证功能的实现,而且还要求做到通用性、可移植性。保证数量的同时保证了质量。
在软件的测试阶段,在该阶段是极其重要的,因为在程序员编写过程中,很多的问题是考虑得不到位的,甚至可以说很多问题是无法预料的,它必须要在特定的环境中才会发生,而一旦发生便又是致命性的卡壳。所以在各功能模块的编写过程中需要测试,组合后更是要进行大型测试。以保障为客户提供更加安全、稳定的软件。
在对整个软件工程进行管理时使用“甘特图”,工作量及人力资源的安排,能合理地规划各工程的分配,非常有效地保证了工程的进度。