软考程序员知识点系统开发和运行维护之周期模型

程序员 责任编辑:小狐狸 2016-09-28

添加老师微信

备考咨询

加我微信

摘要:下面希赛小编为大家整理的软考程序员知识点系统开发和运行维护之周期模型,希望能帮助学友们。

>>>>>希赛网改版上线5周年庆,感恩钜惠!全场买就减,较高立减500,还有1元秒杀,5折限时抢购,众多“豪”礼等你来享,进入抢购!


   下面希赛小编为大家整理的软考程序员知识点系统开发和运行维护之周期模型,希望能帮助学友们。具体内容如下:


       周期模型

       任何办公的流程处理;设计一种商务信函打印系统并投放市场。这个概念是不清晰的,但却是较高层的业务需求的原型。这个概念都会伴随着一个目的,例如在一个"银行押汇系统"的目的是提高工作的效率。这个目的将会成为系统的核心思想,系统成败的评判标准。99年政府部门上了大量的OA系统,学过一点Lotus Notes的人都发了财(IBM更不用说了),但是更普遍的情况是,许多的政府部门原有的处理模式并没有变化,反而又加上了自动化处理的一套流程。提高工作效率的初衷却导致了完全不同的结果。这样的软件究竟是不是成功的呢?

       从概念提出的那一刻开始,软件产品就进入了软件生命周期。在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡。这样的一个过程,称为"生命周期模型"(Life Cycle Model)。

       典型的几种生命周期模型包括瀑布模型、快速原型模型、迭代模型。

       瀑布模型

       (Waterfall Model)首先由Royce提出。该模型由于酷似瀑布闻名。在该模型中,首先确定需求,并接受客户和SQA小组的验证。然后拟定规格说明,同样通过验证后,进入计划阶段…可以看出,瀑布模型中至关重要的一点是只有当一个阶段的文档已经编制好并获得SQA小组的认可才可以进入下一个阶段。这样,瀑布模型通过强制性的要求提供规约文档来确保每个阶段都能很好的完成任务。但是实际上往往难以办到,因为整个的模型几乎都是以文档驱动的,这对于非专业的用户来说是难以阅读和理解的。想象一下,你去买衣服的时候,售货员给你出示的是一本厚厚的服装规格说明,你会有什么样的感触。虽然瀑布模型有很多很好的思想可以借鉴,但是在过程能力上有天生的缺陷。

       然而轻易抛弃瀑布模型的观点也是非常错误的,瀑布模型还是所有软件开发模型的基础,体现了软件开发的本质过程。对于一些大型的软件项目,试图过于简化瀑布的前期的需求和设计阶段,用一个简单的原型或者迭代来模拟未来的系统,并试图帮助确认和挖掘客户的需求,是不可能的,不仅此时离客户的最终需求和隔山万千重,系统的架构也会随着过程而有很大被抛弃和大幅调整的过程,原型也就起不到原型的作用,成本和时间反而浪费,所以前期的功课还是少不了的,尤其对于复杂系统。即使对于简单如定制一件衣服,在给客户提出修改的时候,它要基本是一件衣服,而不是几块布片,否则客户无从提出进一步的需求,前期的功夫也是白费的。

       迭代式模型

       迭代式模型是是RUP(Rational Unified Process,统一软件开发过程,统一软件过程)推荐的周期模型,也是我们在这个系列文章讨论的基础。在RUP中,迭代被定义为:迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。所以,在某种程度上,开发迭代是一次完整地经过所有工作流程的过程:(至少包括)需求工作流程、分析设计工作流程、实施工作流程和测试工作流程。实质上,它类似小型的瀑布式项目。RUP认为,所有的阶段(需求及其它)都可以细分为迭代。每一次的迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。迭代的思想。

       迭代和瀑布的最大的差别就在于风险的暴露时间上。“任何项目都会涉及到一定的风险。如果能在生命周期中尽早确保避免了风险,那么您的计划自然会更趋精确。有许多风险直到已准备集成系统时才被发现。不管开发团队经验如何,都绝不可能预知所有的风险。”

       由于瀑布模型的特点(文档是主体),很多的问题在最后才会暴露出来,为了解决这些问题的风险是巨大的。"在迭代式生命周期中,您需要根据主要风险列表选择要在迭代中开发的新的增量内容。每次迭代完成时都会生成一个经过测试的可执行文件,这样就可以核实是否已经降低了目标风险。"

       快速原型模型

       快速原型(Rapid Prototype)模型在功能上等价于产品的一个子集。注意,这里说的是功能上。瀑布模型的缺点就在于不够直观,快速原型法就解决了这个问题。一般来说,根据客户的需要在很短的时间内解决用户最迫切需要,完成一个可以演示的产品。这个产品只是实现部分的功能(最重要的)。它最重要的目的是为了确定用户的真正需求。在我的经验中,这种方法非常的有效,原先对计算机没有丝毫概念的用户在你的原型面前往往口若悬河,有些观点让你都觉得非常的吃惊。在得到用户的需求之后,原型将被抛弃。因为原型开发的速度很快,设计方面是几乎没有考虑的,如果保留原型的话,在随后的开发中会为此付出极大的代价。至于保留原型方面,也是有一种叫做增量模型是这么做的,但这种模型并不为大家所接受,不在我们的讨论之内。上述的模型中都有自己的思想,其实现在的软件组织中很少说标准的采用那一种模型的。模型和实用还是有很大的区别的。

       软件生命周期模型的发展实际上是体现了软件工程理论的发展。在最早的时候,软件的生命周期处于无序、混乱的情况。一些人为了能够控制软件的开发过程,就把软件开发严格的区分为多个不同的阶段,并在阶段间加上严格的审查。这就是瀑布模型产生的起因。瀑布模型体现了人们对软件过程的一个希望:严格控制、确保质量。可惜的是,现实往往是残酷的。瀑布模型根本达不到这个过高的要求,因为软件的过程往往难于预测。反而导致了其它的负面影响,例如大量的文档、繁琐的审批。因此人们就开始尝试着用其它的方法来改进或替代瀑布方法。例如把过程细分来增加过程的可预测性。

       螺旋模型

       1988年,Barry Boehm正式发表了软件系统开发的"螺旋模型",它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。

       螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动:

       (1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;

       (2)风险分析:分析评估所选方案,考虑如何识别和消除风险;

       (3)实施工程:实施软件开发和验证;

       (4)客户评估:评价开发工作,提出修正建议,制定下一步计划。

       螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。但是,螺旋模型也有一定的限制条件,具体如下:

       (1)螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,因此,这种模型往往适应于内部的大规模软件开发。

       (2)如果执行风险分析将大大影响项目的利润,那么进行风险分析毫无意义,因此,螺旋模型只适合于大规模软件项目。

       (3)软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险

       一个阶段首先是确定该阶段的目标,完成这些目标的选择方案及其约束条件,然后从风险角度分析方案的开发策略,努力排除各种潜在的风险,有时需要通过建造原型来完成。如果某些风险不能排除,该方案立即终止,否则启动下一个开发步骤。最后,评价该阶段的结果,并设计下一个阶段。


       返回目录:软考程序员知识点系统开发和运行维护汇总


       希赛网培训优势

       希赛网教研组希赛网课程体系涵盖90%考试知识点,确保通过考试

       往年知识点分析:结合真题,对考试的知识体系进行精细分解

       重点讲解:对考试的重要知识点重点讲解和梳理

       考前串讲:希赛网结合教材和知识点的变化分析梳理核心知识点

       专业的考试培训机构:拥有近十名全职的软件水平考试培训专业讲师。

       多年考试培训经验:希赛网已有十四年的软件水平考试培训经验。

       主编考试辅导教材:全国80%的软件水平考试辅导教材均由希赛网主编。


    希赛软考网,拥有十四年软考培训经验,希赛网一直坚持自主研发,将丰富的软考培训经验有效融入教程研发过程,自成体系的软考在线题库软考历年真题)、软考培训教材软考视频教程,多样的培训方式包括在线辅导面授、和,使考生的学习更具系统性,辅导更具针对性。采用全程督学机制,,软考平均通过率在全国。

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取

!
咨询在线老师!