当前位置:文档之家› 各种项目开发模型优缺点(瀑布模型 原型模型 增量模型 螺旋模型)

各种项目开发模型优缺点(瀑布模型 原型模型 增量模型 螺旋模型)

各种项目开发模型优缺点(瀑布模型 原型模型 增量模型 螺旋模型)
各种项目开发模型优缺点(瀑布模型 原型模型 增量模型 螺旋模型)

瀑布模型原型模型增量模型螺旋模型的优缺点

瀑布模型的优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。

瀑布模型的缺点:

(1)开发过程一般不能逆转,否则代价太大;

(2)实际的项目开发很难严格按该模型进行;

(3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。

(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。

瀑布模型的使用范围:

(1)用户的需求非常清楚全面,且在开发过程中没有或很少变化;

(2)开发人员对软件的应用领域很熟悉;

(3)用户的使用环境非常稳定;

(4)开发工作对用户参与的要求很低。

快速原型模型的优点:

(1)可以得到比较良好的需求定义,容易适应需求的变化;

(2)有利于开发与培训的同步;

(3)开发费用低、开发周期短且对用户更友好。

快速原型模型的缺点:

(1)客户与开发者对原型理解不同;

(2)准确的原型设计比较困难;

(3)不利于开发人员的创新。

快速原型模型的使用范围:

(1)对所开发的领域比较熟悉而且有快速的原型开发工具;

(2)项目招投标时,可以以原型模型作为软件的开发模型;

(3)进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的。

增量模型的优点:

(1)采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;(2)如果核心产品很受欢迎,则可增加人力实现下一个增量;

(3)可先发布部分功能给客户,对客户起到镇静剂的作用。

增量模型的缺点:

(1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;

(2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。增量模型的使用范围:

(1)进行已有产品升级或新版本开发,增量模型是非常适合的;

(2)对完成期限严格要求的产品,可以使用增量模型;

(3)对所开发的领域比较熟悉而且已有原型系统,增量模型也是非常适合的。

螺旋模型的优点:

(1)设计上的灵活性,可以在项目的各个阶段进行变更;

(2)以小的分段来构建大型系统,使成本计算变得简单容易;

(3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;

(4)随着项目推进,客户始终掌握项目的最新信息, 从而他或她能够和管理层有效地交互。

螺旋模型的缺点:

(1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;

(2)过多的迭代次数会增加开发成本,延迟提交时间。

螺旋模型的使用范围:螺旋模型只适合于大规模的软件项目。

软件过程模型优缺点

软件过程模型优缺点 一、瀑布模型 1、优点 1)它是一种线性的开发模型,具有不可回溯性。2)过程模型简单,执行容易。3)将复杂的软件开发过程明确分解为几个顺序的步骤,降低开发软件的复杂性。 2、缺点 1)无法适应变更,由于开发模型是线性的用户只有等到整个过程的末期才能见到开发成果,从而卡增加了开发的风险。2)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重后果。 二、快速原型模型 1、优点 1)可以得到比较良好的需求定义,容易适应需求的变化。2)开发人员和用户在“原型”上达成一致。可以减少设计中的错误和开发中的风险,也减少了对用户培训的时间,而提高了系统的实用、正确性以及用户的满意程度。3)缩短了开发周期,加快了工程进度,降低成本。 2、缺点 1)不宜利用原型系统作为最终产品。采用原型模型开发系统,用户和开发者必须达成一致。2)不利于开发人员的创新。 三、增量模型 1、优点 1)将待开发的软件系统模块化。可以分批次地提交软件产品,使用户可以及时了解软件项目的进展。2)以组件为单位进行开发降低了软件开发的风险。一个开发周期内的错误不会影响到这个软件系统。3)开发顺序灵活。开发人员可以对构件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生变化时。还能及时第实现顺序进行调整。 2、缺点 1)要求待开发的软件系统可以被模块化。如果待开发的软件系统很难被模块化,那么将会给增量开发带来很多麻烦。

四、螺旋模型 1、优点 1)将风险分析扩展到各个阶段中,大幅度降低了软件开发的风险。2)以小的分段来构建大型系统,使成本计算变得简单容易。3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。 2、缺点 1)模型的控制和管理较为复杂,可操作性不强,对项目管理人员的要求较高。2)过多的迭代次数会增加开发成本,延迟提交时间。 五、喷泉模型 1、优点 喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。 2、缺点 由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。 六、基于组件的开发模型 1、优点 1)用现有的组件和系统框架进行产品开发,可靠性相对新研发组件高。2)开发简单,降低了开发成本和风险。 2、缺点 任何基于组件技术的系统,在开发前期都会面临一定的风险。对于组件式软件开发而言.对象技术不是必需的,但是又不能完全脱离对象技术,而且组件技术还离不开体系结构,大多数组件技术对于组件都有一定的限制。 七、统一软件开发过程模型 1、优点 1)有利于更好地理解需求、设计出合理的系统架构,并最终交付一系列渐趋完善的成功。2)每个阶段结束时都要进行阶段评估,这样可以及早发现软件中的缺陷。

软件工程导论复习题

一、选择题 1、在软件开发模型中,提出最早,应用最广泛的模型是(A) A.瀑布模型 B 螺旋模型C演化模型D原型模型 2、瀑布模型存在的问题(B) A用户容易参与开发B缺乏灵活性C用户与开发者沟通D适用可变需求3、可行性研究一般不考虑(D) A是否有足够的人员和相关技术来支持系统开发 B 是否有足够的工具和相关技术来支持系统开发 C 待开发软件是否有市场、经济上是否合算 D软件开发是否有质量问题 4、软件详细设计的主要任务是确定每个模块的(A) A 算法和使用的数据类型B外部接口 C 功能D编程 5、可行性分析是在系统开发的早期所做的一项重要的论证工作,它统是否开 发的决策依据,因必须给出(B)的回答 A 确定B行或不行C正确D无 6、流程图是用来描述(D) A描绘程序结构B描绘系统的逻辑模型 C表示信息层次结构的图形工具D描绘物理系统 7、为了提高软件的可维护性,在编码阶段应注意(养成良好的程序设计风格) 总体设计阶段注意(提高模块独立性)测试阶段注意(保存测试用例和数据)8、快速原型模型的主要特点之一是(D) A开发完毕才能见到产品B及早提供全部完整的软件产品

C开发完毕后才能见到工作软件D及早提供工作软件 9、软件需求分析的主要任务是准确定义出要开发的软件系统是(C) A 如何做 B 怎么做C做什么D对谁做 10、软件维护产生的副作用,是指(C) A开发时的错误 B隐含的错误C因修改软件而造成错误D运行时误操作 11、软件生命周期中所花费用最多的阶段是(D) A 详细设计B软件编码C软件测试 D 软件维护 12、模块的内聚性最高的是(D) A 逻辑内聚B时间内聚C偶然内聚D功能内聚 13、与确认测试阶段有关的文档是(A) A需求规格说明书B概要设计说明书C详细设计说明书D源程序 14、白盒测试主要用于测试(A) A 程序的内部逻辑B程序的正确性C程序的外部功能D机构合理 性 15、软件开发和维护的工程中出现的一系列的严重问题称(D) A软件工程 B 软件开发C软件周期D内部逻辑 16、在SD方法中全面指导模块划分最重要原则(D) A 程序模块化B模块高内聚C模块低耦和D模块独立性 17、下面属于维护阶段文的档的是(C) A 软件规格说明B用户操作手册C软件问题报告D软件测试分析报告 18、软件按照设计的要求,在规定时间和条件下达到不出故障持续运行的质 量特征为(B) A 可用性B可靠性C正确性D完整性

软件开发模式及优缺点

软件开发模式有哪些? 快速原型模型:(需要迅速造一个可以运行的软件原型,以便理解和澄清问题) 快速原型模型允许在需求分析阶段对软件的需求进行初步的非完全的分析和定义,快速设计开发出软件系统的原型(展示待开发软件的全部或部分功能和性能(过程:用户对该原型进行测试评定,给出具体改善的意见以及丰富的细化软件需求,开发人员进行修改完善) 优点: 克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险 缺点: 、所选用的开发技术和工具不一定符合主流的发展 、快速建立起来的系统加上连续的修改可能会造成产品质量底下 增量模型:(采用随着日程时间的进展而交错的线性序列,每一个线性徐磊产生软件的一个可发布的“增量”,第一个增量往往就是核心的产品) 与其他模型共同之处:它与原型实现模型和其他演化方法一样,本质都是迭代 与原型实现模型不同之处:它强调每一个增量均发布一个可操作产品,(它不需要等到所有需求都出来,只要摸个需求的增量包出来即可进行开发) 优点: 、人员分配灵活,一开始不需要投入大量人力资源 、当配备人员不能在限定的时间内完成产品时,它可以提供一种先推出核心产品的途径,可现发布部分功能给用户(对用户起镇静作用) 、增量能够有计划的管理技术风险 缺点: 、如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析 注: 这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程原型模型:(样品模型,采用逐步求精的方法完善原型)

主要思想: 先借用已有系统作为原型模型,通过“样品”不断改进,使得最后的产品就是用户所需要的。原型模型通过向用户提供原型获取用户的反馈,使开发出的软件能够真正反映用户的需求, 采用方法: 原型模型采用逐步求精的方法完善原型,使得原型能够“快速”开发,避免了像瀑布模型一样在冗长的开发过程中难以对用户的反馈作出快速的响应 优点: ()开发人员和用户在“原型”上达成一致。这样一来,可以减少设计中的错误和开发中的风险,也减少了对用户培训的时间,而提高了系统的实用、正确性以及用户的满意程度。 ()缩短了开发周期,加快了工程进度。 ()降低成本。 缺点: 、当重新生产该产品时,难以让用户接收,给工程继续开展带来不利因素。 、不宜利用原型系统作为最终产品。采用原型模型开发系统,用户和开发者必须达成一致: 喷泉模型:(以用户需求为动力,以对象为驱动的模型,主要用于采用对象技术的软件开发项目) 它认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性 相互迭代:软件的摸个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分 无间隙:它在各项活动之间没有明显边界(如分析和设计活动之间<由于对象概念的应用,表达分析,设计,实现等活动只用对象类和关系>) 优点: 、可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程 不便之处:

《软件工程》期末复习题1

考试时间: 16周周一5,6节 考试地点: 二教419 406 408 考试题型: 选择题:20分 简答题:30分 应用题:50分 各章内容及题型总结: 第1,2章本章的主要题型是选择题和简答题。 1. 软件危机的主要表现是什么?答:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证。 2. 软件工程的定义?答:软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和先进软件开发技术结合起来,运用到软件开发和维护过程中,来解决软件危机。 IEEE的定义:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。 3. 软件工程研究的主要内容是什么?答:软件开发技术和软件开发管理两个方面。软件开发技术方面主要研究软件开发方法、软件开发过程、软件开发工具和环境。软件开发管理方面主要研究软件工程管理学、软件工程经济学、软件工程心理学。 4. 软件工程的7条基本原理是什么?答:①用分阶段的生命周期计划严格管理②坚持进行阶段评审③实行严格的产品控制④采用现代程序设计技术⑤结果应能清楚地审查⑥开发小组的人员应该少而精⑦承认不断改进软件工程实践的必要性。 5. 什么是软件生命周期?答:指一个软件从提出开发要求开始到该软件报废为止的整个时期。通常将软件的生命周期划分为可行性研究、需求分析、设计、编码、测试、集成、维护阶段。 6. 软件过程的定义?答:软件开发过程、活动和任务的结构框架。它能够清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务。 7. 你能举出几个典型的软件过程模型吗?答:主要有瀑布模型、演化模型、喷泉模型、螺旋模型、智能模型。模型的选择是基于软件的特点和应用领域。 8. 目前,主流的软件开发方法有哪些?答:结构化方法和面向对象方法。 9. 软件工程师职业道德规范的8组关键词是什么?1999年由ACM/IEEE-CS软件工程师道德规范和职业实践(SEEPP)联合工作组制订了《软件工程师职业道德规范》,规范含有8组由关键词命名的准则:公众、客户和雇主、产品、判断、管理、专业、同行、自身。 10. 职业化软件工程师要注意的十大问题是什么?答:①高质量地完成任务②遵守行业标准,不能肆意按照自己的想象来发挥③积极帮助他人④版权意识敏感⑤严格遵守计划⑥公私分明⑦注意知识更新⑧善于沟通⑨遵守职业规则⑩诚实和正直。 第3章本章的题型主要是选择题。 1. 可行性研究的目的是什么?答:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2. 可行性研究的四大要素是:经济上可行,技术可行,法律允许、社会环境可行。 3. 可行性研究的实质:是要进行一次简化了的系统分析和设计过程。首先要分析和澄清问题定义,导出系统的逻辑模型,探索若可供选择的方案,对每种方案仔细研究它的可行性。推荐一个较好的解决方案和一个初步的计划。 第4,5章本章的题型有选择题。 2. 什么是需求工程?需求工程是指应用有效的技术和方法进行需求分析,确定客户需求,帮助分析人员理解问题,定义目标系统的外部特征的一门学科。需求工程中的主要活动有:需求获取、需求分析、需求规格说明、需求验证和需求变更管理。

软件过程模型(瀑布,原型,增量,螺旋)的原理及优缺点

典型的开发模型有:瀑布模型(waterfall model)、渐增模型/演化/迭代(incremental model)、原型模型(prototype model)、螺旋模型(spiral model)、喷泉模型(fountain model)、智能模型(intelligent model)、混合模型(hybrid model) 1、边做边改模型(Build-and-Fix Model)遗憾的是,许多产品都是使用“边做边改”模型来开发的。在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改。在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的第一个版本。在提供给用户使用后,如果程序出现错误,或者用户提出新的要求,开发人员重新修改代码,直到用户满意为止。这是一种类似作坊的开发方式,对编写几百行的小程序来说还不错,但这种方法对任何规模的开发来说都是不能令人满意的,其主要问题在于:1)缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无法继续修改; 2)忽略需求环节,给软件开发带来很大的风险; 3)没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难。 2、瀑布模型(Waterfall Model)1970年温斯顿·罗伊斯提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于: 1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量; 2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险; 3)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。我们应该认识到,“线性”是人们最容易掌握并能熟练应用的思想方法。当人们碰到一个复杂的“非线性”问题时,总是千方百计地将其分解或转化为一系列简单的线性问题,然后逐个解决。一个软件系统的整体可能是复杂的,而单个子程序总是简单的,可以用线性的方式来实现,否则干活就太累了。线性是一种简洁,简洁就是美。当我们领会了线性的精神,就不要再呆板地套用线性模型的外表,而应该用活它。例如增量模型实质就是分段的线性模型,螺旋模型则是接连的弯曲了的线性模型,在其它模型中也能够找到线性模型的影子。 3、快速原型模型(Rapid Prototype Model)快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求

软件生命周期模型

瀑布模型/改进的瀑布模型 虽然瀑布模型仍然存在很多的问题有待解决,但瀑布模型仍然是最展本的和最效的?种可供选择的软件开发生命周期模型.瀑布模型要求软件开发严格按照需求-〉分析-〉设计?〉编码-> 测试的阶段进行,每-个阶段都可以定义明确的产出物和验证准则.瀑布模型在每?个阶段完成后都可以组织相关的评审和验证,只有在评审通过后才能够进入到下-个阶段. 由于需要对每?个阶段进行验证,瀑布模型要求每?个阶段都有明确的文档产出,对于严格的瀑布模型每?个阶段都不应该重叠,而应该是在评审通过,相关的产出物都己经基线后才能够进入到下?个阶段. 瀑布模型的优点仍然是可以保证整个软件产品较高的质量,保证缺陷能够捉前的被发现和解决. 采用瀑布模型可以保证系统在整体上的充分把握,使系统具备良好的扩展性和可维护性?但对于前期需求不明确,而又很难短时间明确淸楚的项目则很难很好的利用瀑布模型.另外对于中小型的项目,需求设计和开发人员往往在项目开始后就会全部投入到项目中,而不是分阶段投入,因此采用瀑布模型会导致项目人力资源过多的闲置的情况,这也是必须要考虑的问题. 很多人往往会以进度约束而不选择瀑布模型,这往往是?个错误的观点.导致这种情况的?个关键因素往往是概念需求阶段人力不足.冈此在概念需求阶段人力能够得到充分保证的情况下,瀑布模型和迭代模型在开发周期上并不会存在太人的差别.反而是很多项目对于迭代或嫩捷模型用不好,为了赶进度在前期需求不明确,没有经过?个总体的架构设计情况下就开始编码,后期出现大量的返工而严重影响进度. 架构设计是软件开发中?个重要的关注点.因此在RUP中也捉及到软件开发要以架构为核心.因此在架构设计完成后系统会彼分为相关的f?系统和功能模块.每个功能模块间的接口都可以定义淸楚.在这种情况下,当模块B的详细设计做完成后往往就没有必妥等到其它模块的详细设计都妥完全作完才开始编码,冈此在架构设计完成后可以将系统分为多个模块并行开发,每个模块仍然遵循先设计和编码测试的瀑布模型思路.这是瀑布模型的?种最重要的改进思路,也可以说这是?种增量开发的模型.

V、X、W、H、瀑布、螺旋模型的优缺点

V模型: 优点: 1.既有底层测试又有高层测试。底层:单元测试。高层:系统测试。 2.将开发阶段清楚的表现出来,便于控制开发的过程。当所有阶段都结束时,软件开发就结束 了。 缺点: 1.容易让人误解为测试是在开发完成之后的一个阶段。 2.由于它的顺序性,当编码完成之后,正式进入测试时,这时发现的一些bug可能不容易找 到其根源,并且代码修改起来很困难。 3.实际中,由于需求变更较大,导致要重复变更需求、设计、编码、测试。返工量大。 W模型: 优点: 1.将测试贯穿到整个软件的生命周期中,且除了代码要测试,需求、设计等都要测试。 2.更早的介入到软件开发中,能尽早的发现缺陷进行修复。 3.测试与开发独立起来,并与开发并行。 缺点: 1.对有些项目,开发过程中根本没有文档产生,故W模型无法使用。 2.对于需求和设计的测试技术要求很高,实践起来很困难。 X模型: 优点: X模型定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。

缺点:可能对测试造成人力、物理和财力的浪费,对测试员的熟练程度要求比较高。 1.软件测试过程模型—V模型 是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系; 局限性:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现 2.软件测试过程模型—W模型 在V模型的基础上,增加个开发阶段的同步测试,形成W模型;测试与开发同步进行,有利于尽早的发现问题 局限性:仍把开发活动看成是从需求开始到编码结束的串行活动,只有上一阶段完成后,才可以开始下一阶段的活动,不能支持迭代,自发性以及变更调整 3.软件测试过程模型—H模型 在H模型中,软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段;软件测试可以尽早的进行;软件测试可以根据被测物的不同而分层次进行 测试模型使用软件 在实际工作中应灵活地运用各种模型的优点: V模型:强调了在整个软件项目开发中需要经历的若干个测试级别,并与每一个开发级别对应;忽略了测试的对象不应该仅仅包括程序,没有明确指出对需求、设计的测试 W模型:补充了V模型中忽略的内容,强调了测试计划等工作的先行何对系统需求和系统设计的测试;与V模型相同,没有对软件测试的流程进行说明 H模型:强调测试是独立的,只要测试准备完了,就可以执行测试了

第2章 软件工程 答案

第2章软件工程 一、选择题 1.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致 了___A___ A .软件危机 B .软件工程 C .程序设计革命 D .结构化程序设计 2.“软件工程的概念是为解决软件危机而提出的”这句话的意思是___C______。 A 强调软件工程成功解决了软件危机的问题 B 说明软件危机的存在总是使软件开发不像传统工程项目那样容易管理 C 说明软件工程这门学科的形成是软件发展的需要 D 说明软件工程的概念,即:工程的原则、思想、方法可解决当时软件开发和维护 3.瀑布模型的存在问题是_____B______。 A.用户容易参与开发B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求 4.下列关于瀑布模型不正确的是_____B______。 A 瀑布模型上一阶段的变换结果是下一阶段的输入 B 瀑布模型每个阶段都不需要反馈 C 瀑布模型提供了软件开发的基本框架 D 瀑布模型存在局限性 5.快速原型是利用原型辅助软件开发的一种新思想,它是在研究___A___的方法和技术中产生的。 A 需求阶段 B 设计阶段 C 测试阶段 D 软件开发的各个阶段 6.原型化方法是用户和设计者之间执行的一种交互构成,适用于__A____系统。A.需求不确定性高的B.需求确定的C.管理信息D.实时 7. 信息隐蔽概念与_____A_______这一概念直接的相关。

A 模块的独立性 B 模块类型的划分 C 软件结构定义 D 软件生命周期 8. 为高质量地开发软件项目,在软件结构设计时,必须遵循____A_____原则。 A 信息隐蔽 B 质量控制 C 程序优化 D 数据共享 9._____A_________的目标是确定软件开发工程的总目标,确定工程的可行性。 A 软件定义 B 软件开发 C 软件测试 D 软件维护 10.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出___B____ 的回答。 A.确定 B.行或不行 C.正确 D.无二义 11.经济可行性研究的范围包括___C____。 A.资源有效性 B.管理制度 C.效益分析 D.开发风险 12.需求分析中开发人员要从用户那里了解____A____。 A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模 13. 需求分析阶段的任务是确定____D_____。 A 软件开发方法 B 软件开发工具 C 软件开发费 D 软件系统的功能 14. 需求分析是分析员经了解用户的要求,认真细致地调研、分析,最终建立目标系统的逻辑模型并写出____B_____的过程。 A 模块说明书 B 软件规格说明 C 项目开发计划 D 合同文档 15. 需求规格说明书的作用不包括____C_______ A 软件验收的依据 B 用户与开发人员对软件要做什么的共同理解 C 软件可行性研究的依据 D 软件设计的依据

各种项目开发模型优缺点(瀑布模型原型模型增量模型螺旋模型)

瀑布模型的优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。 瀑布模型的缺点: (1)开发过程一般不能逆转,否则代价太大; (2)实际的项目开发很难严格按该模型进行; (3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。 (4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。 瀑布模型的使用范围: (1)用户的需求非常清楚全面,且在开发过程中没有或很少变化; (2)开发人员对软件的应用领域很熟悉; (3)用户的使用环境非常稳定; (4)开发工作对用户参与的要求很低。 快速原型模型的优点: (1)可以得到比较良好的需求定义,容易适应需求的变化; (2)有利于开发与培训的同步; (3)开发费用低、开发周期短且对用户更友好。 快速原型模型的缺点: (1)客户与开发者对原型理解不同; (2)准确的原型设计比较困难; (3)不利于开发人员的创新。 快速原型模型的使用范围: (1)对所开发的领域比较熟悉而且有快速的原型开发工具; (2)项目招投标时,可以以原型模型作为软件的开发模型;

(3)进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的。 增量模型的优点: (1)采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;(2)如果核心产品很受欢迎,则可增加人力实现下一个增量; (3)可先发布部分功能给客户,对客户起到镇静剂的作用。 增量模型的缺点: (1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构; (2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。 增量模型的使用范围: (1)进行已有产品升级或新版本开发,增量模型是非常适合的; (2)对完成期限严格要求的产品,可以使用增量模型; (3)对所开发的领域比较熟悉而且已有原型系统,增量模型也是非常适合的。 螺旋模型的优点: (1)设计上的灵活性,可以在项目的各个阶段进行变更; (2)以小的分段来构建大型系统,使成本计算变得简单容易; (3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性; (4)随着项目推进,客户始终掌握项目的最新信息, 从而他或她能够和管理层有效地交互。 螺旋模型的缺点:

谈某项目中的问题与解决方案

浅谈某项目中的问题与解决方案 袁志军 2007/07/24 [摘要] 当前,在整个软件行业的激烈竞争下,项目的成败将关系到软件企业的生存与发展,项目需要建立在自我不断创新和高质量满足客户要求的基础上。建立这种基础的前提就是要具备很强的对“需求、问题或机会”的识别能力以及提出相应解决方案的能力。因此如何随时识别项目中各项风险和问题,对整个项目的实施过程中的风险进行预测,进而对各种风险进行跟踪预防、规避,转为问题后妥善的解决这些问题,成为项目成败的关键。 选择适当的软件开发模型能清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务,用来作为软件项目工作的基础。我们公司很多的项目都选用瀑布模型,瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节,其特点是每个阶段有明确的开始和结束点,一个阶段的输出为下一阶段的输入条件。它很难适应需求可变、模糊不定的软件系统的开发,而且在开发过程中用户很难参与进去,只有到开发结束才能看到整个软件系统。这种理想的、线性的开发过程缺乏灵活性,不适应实际的开发过程。我们所使用的实际上是渐增模型。渐增模型是在瀑布模型基础上加以改进而来的增量模型。它是以瀑布模型为基础,按功能增量方式进行增量开发。 [项目背景]某项目是个WEB系项目的典型:工期紧,开发人员能力弱的项目。项目生命周期为渐增模型。项目过程阶段为项目启动阶段、式样理解、编码Coding、Debug)、UT、画面集成、系统验收及维护、项目结束。项目要求2006年12月24日上线,为保证上线前ITF公司的结合测试和系统测试,我们必须于12月10日完成UT和初步的结合测试交货。由于时间仓促,式样设计没有完整的基本设计,详细设计预计于10月30日给我们未经Review的初版,11月10日给出经过Review的版本。项目规模:25人月。 项目的各个阶段都有一些不同的问题存在,对其进行分析并提出解决方案,希望能为以后的项目提供帮助。

软件过程模型的优缺点和适用范围

软件过程模型 1、4种模型的对比 瀑布模型: 优点:文档驱动 缺点:阶段划分固定,大量文档;开发成果最后出增加风险;不适应用户的变化适用范围:需求准确无重大变化的软件项目开发 快速原型模型: 优点:关注了客户的需求,降低了开发风险 缺点:可能导致系统设计差,难维护;不宜用原型产生最终产品,最终产品还是要考虑质 量和可维护性 适用范围:需求复杂,难以确定、动态变化的系统 增量模型: 优点:分批提交产品;减少新软件对用户的冲击;可维护性增加,需求变更只需要更改构 件 缺点:构件逐渐加入,不能破坏已经构造的系统,要求软件具备开放式结构;需 求变化时,适应性大于瀑布和快速原型,但容易退化为边做边盖,失去整体控制性;有无法集成的风险; 适用范围:风险较大用户需求较稳得大型软件系统 螺旋模型: 优点:1)设计上的灵活性,可以在项目的各个阶段进行变更。 2)以小的分段来构建大型系统,使成本计算变得简单容易。 3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。 4)随着项目推进,客户始终掌握项目的最新信息,从而他或她能够和管理层有效地交互。 5)客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。 缺点:建设周期长,和当前技术水平差距大,无法满足需求; 适用范围:庞大复杂并具有高风险的系统,特别适合内部开发的大规模软件项目 2、喷泉模型 特点:无明显边界、阶段内迭代 优点:各阶段无明显界限,开发人员同步进行,提高项目开发效率缺点: 重叠的项目不利于项目管理,审核难度加大 适用:面向对象的软件过程 3、重用构件模型 4、RUP 通用的过程框架 4个阶段 9个核心工作流 前6个为核心过程,后3个是核心支撑

软件工程期末试卷10套(带答案)

软件工程期末试题(一) 单项选择题 1.瀑布模型的存在问题是(B) A.用户容易参与开发B.缺乏灵活性 C.用户与开发者易沟通D.适用可变需求 2.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C) A.软件工程 B.软件周期 C.软件危机 D.软件产生 3.数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到高的顺序是(B) A.数据、公共、标记、控制 B.数据、标记、控制、公共 C.控制、数据、标记、公共 D.控制、数据、公共、标记 4.在SD方法中全面指导模块划分的最重要的原则是(D) A.程序模块化 B.模块高内聚 C.模块低耦合 D.模块独立性 5.软件测试的目的是(B)。 A.评价软件的质量B.发现软件的错误 C.找出软件的所有错误D.证明软件是正确的 6.在设计测试用例时,(A)是用得最多的一种黑盒测试方法。 A.等价类划分B.边界值分析C.因果图D.判定表 7.需求分析最终结果是产生(B)。 A.项目开发计划 B.需求规格说明书 C.设计说明书 D.可行性分析报告 8.Jackson图中,模块框之间若有直线连接,表示它们之间存在(B)。 A.调用关系 B.组成关系 C.链接关系 D.顺序执行关系 9.软件详细设计的主要任务是确定每个模块的(C)。 A.功能 B.外部接口 C.算法和使用的数据结构 D.编程 10.为了提高软件的可维护性,在编码阶段应注意(D) A.保存测试用例和数据 B.提高模块的独立性 C.文档的副作用 D.养成好的程序设计风格 11.设年利率为i,现存入p元,若计复利,n年后可得钱数为(B) A.p﹡(1+i﹡n) B.p﹡(i+1)n C.p﹡(1+i)﹡n D.p﹡(i+n) 12.在考察系统的一些涉及时序和改变的状态时,要用动态模型来表示。动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是(A)。 A.状态图B.数据流图C.系统结构图D.时序图

4种模型的优缺点

模型的优缺点 瀑布模型有以下优点: 1)为项目提供了按阶段划分的检查点。 2)当前一阶段完成后,您只需要去关注后续阶段。 3)可在迭代模型中应用瀑布模型。 瀑布模型有以下缺点: 1)在项目各个阶段之间极少有反馈。 2)只有在项目生命周期的后期才能看到结果。 3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。 快速原型模型有以下优点 1)克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。 快速原型模型有以下缺点 1)所选用的开发技术和工具不一定符合主流的发展; 2)快速建立起来的系统结构加上连续的修改可能会导致产品质量低下; 螺旋模型有以下优点 1)设计上的灵活性,可以在项目的各个阶段进行变更 2)以小的分段来构建大型系统,使成本计算变得简单容易。 3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。 4)随着项目推进,客户始终掌握项目的最新信息, 从而他或她能够和管理层有效地交互。 5)客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。 螺旋模型有以下缺点 很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。

增量模型有以下优点 ?整个项目的资金不会被提前消耗,因为首先开发和交付了主要功能和高风险功能。 ?每个增量交付一个可操作的产品。 ?每次增量交付过程中获取的经验,有利于后面的改进,客户也有机会对建立好的模型作出反应。 ?采用连续增量的方式,可把用户经验融入到细化的产品,这比完全重新开发要便宜得多。 ?“分而治之”的策略,使问题分解成可管理的小部分,避免开发团队由于长时间的需求任务而感到泪丧。 ?通过同一个团队的工作来交付每个增量,保持所有团队处于工作状态,减少了员工的工作量,工作分布曲线通过项目中的时间阶段被拉平。 ?每次增量交付的结为,可以重新修订成本和进度的风险。 ?便于根据市场作出反应。 ?降低了失败和更改需求的风险。 ?更易于控制用户需求,因为每次曾两开发的时间很短。 ?由于不是一步跳到未来,所以用户能逐步适应新技术。 ?切实的项目进展,有利于进度控制。 ?风险分布到几个更小的增量中,而不是集中于一个大型开发中。 ?由于用户能够从早期的增量中了解系统,所以更加理解后面增量中的需求。 增量模型有以下缺点 ?若软件可拆卸度不高,开发人员全局把握水平不高,用户不同意分阶段提交产品,或者开发人员过剩,都不适宜。

一选择题

一、选择题 1.瀑布模型的存在问题是() A.用户容易参与开发 B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求 2.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( ) A.软件工程 B.软件周期 C.软件危机 D.软件产生 3.数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到高的顺序是() A.数据、公共、标记、控制 B.数据、标记、控制、公共 C.控制、数据、标记、公共 D.控制、数据、公共、标记 4.在SD方法中全面指导模块划分的最重要的原则是( ) A.程序模块化 B.模块高内聚 C.模块低耦合 D.模块独立性 5.软件测试的目的是()。 A.评价软件的质量 B. 发现软件的错误 C.找出软件的所有错误 D. 证明软件是正确的 6.在设计测试用例时,()是用得最多的一种黑盒测试方法。 A.等价类划分 B. 边界值分析 C. 因果图 D. 判定表 7. 需求分析最终结果是产生( )。 A. 项目开发计划 B. 需求规格说明书 C. 设计说明书 D. 可行性分析报告 8. Jackson图中,模块框之间若有直线连接,表示它们之间存在( )。 A. 调用关系 B. 组成关系 C. 链接关系 D. 顺序执行关系 9. 软件详细设计的主要任务是确定每个模块的( )。 A. 功能 B. 外部接口 C. 算法和使用的数据结构 D. 编程 10.为了提高软件的可维护性,在编码阶段应注意() A.保存测试用例和数据 B.提高模块的独立性 C.文档的副作用 D.养成好的程序设计风格 11.在考察系统的一些涉及时序和改变的状态时,要用动态模型来表示。动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是()。 A .状态图 B. 数据流图 C. 系统结构图 D. 时序图 12. 对象实现了数据和操作的结合,使数据和操作( )于对象的统一体中。 A. 结合 B. 隐藏 C. 封装 D. 抽象 13.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测试 D.软件维护 14. 在整个软件维护阶段所花费的全部工作中,()所占比例最大。A.校正性维护 B. 适应性维护 C. 完善性维护 D. 预防性维护 15.在对数据流的分析中,主要是找到中心变换,这是从()导出结构图的关键。

软件工程作业1-4 章答案

软件工程作业1(第1~4章) 一、选择题: 1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。 A.软件工程 B.软件周期 C.软件危机 D.软件产生 2.瀑布模型本质上是一种(A)模型。 A.线性顺序 B.顺序迭代 C.线性迭代 D.早期产品 3.瀑布模型存在的问题是(B)。 A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求 4.螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。 A.增量模型B.专家系统C.喷泉模型D.变换模型 5.原型化方法是用户和设计者之间执行的一种交互构成,适用于(A)系统。 A.需求不确定性高的B.需求确定的C.管理信息D.实时 6.下列有关软件工程的标准,属于国际标准的是(C) A.GB B.DIN C.ISO D.IEEE 7.结构化方法是一种基于(D)的方法。 A.数据结构 B.程序结构 C.算法 D.数据流 ------------------以上为第一章知识点---------------------------------------- 8.软件可行性研究实质上是要进行一次(A)需求分析、设计过程。 A、简化、压缩的 B、详细的 C、彻底的 D、深入的 9.可行性研究的目的是(D) A、分析开发系统的必要性 B、确定系统建设的方案 C、分析系统风险 D、确定是否值得开发系统 10.设年利率为i,现存入p元,不计复利,n年后可得钱数为(C)。 A、P×(1+i*n) B、P×(i+1)*n C、p×(1+i)n D、p×(i+n) 11.可行性研究是在(A)之前 A、系统开发 B、测试 C、试运行 D、集成测试 12.可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期 总成本的(C)。 A、1% B、20% C、8% D、50% 13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。 A.《计算机软件保护条例》 B.《中华人民共和国计算机信息系统安全保护条例》

软件过程模型的优缺点对比

软件过程模型的比较 瀑布模型 瀑布模型(经典生命周期)提出了软件开发的系统化的、顺序的方法。其流程从用户需求规格说明开始,通过策划、建模、构建和部署的过程,最终提供一个完整的软件并提供持续的技术支持。 优点: 1. 强调开发的阶段性,各阶段具有顺序性和依赖性 2. 强调早期调研和需求分析,推迟编码实现的观点 3. 提供了一个摸板,这个摸板使得分析、设计、编码、测试和支持的方法可以在该摸板下有一个共同的指导 缺点: 1. 文档驱动,用户无法及时了解产品的情况 2. 依赖早期调研和需求分析,很难适应在许多项目开始阶段必然存在的不确定 性。 3. 流程单一,必须要完成前一阶段的任务,才能进行下一阶段,开发过程中的 成功经验无法用于本产品。 4. 测试在后期引入,对于系统存在的重大缺陷,如果在可执行程序评审之前没 有被发现,将可能造成重大损失。 5. 组织庞大,人员闲置。 适用范围:需求确定,工作能够采用线性的方式完成的软件。 增量过程模型 增量过程模型包括增量模型、RAD 模型。 (一)增量模型增量过程模型以迭代的方式运用瀑布模型,把软件产品作为一系列的增量构 件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个增量往往是核心功能。 优点: 1.能在较短的时间内向用户提交可完成部分工作的产品。 2.逐步增加产品功能可以使用户有充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。 3. 规避技术风险 4. 可并行开发构件,加快开发的进度 缺点:

1. 没有考虑软件的整体质量和长期的可维护性。 2. 大部分情况是不合适的操作算法被采用目的为了演示功能,不合适的开发工 具被采用仅仅为了它的方便,还有不合适的操作系统被选择等等。 3. 由于达不到质量要求产品可能被抛弃,而采用新的模型重新设计 适用范围:项目在既定的商业要求期限之前不可能找到足够的开发人员; (二)RAD 模型 RAD 模型是一种侧重于短暂的开发周期的增量软件过程模型,它是瀑布模型的“高速”变体,通过基于构建的构建方法实现快速开发。开发团队能够在非常短的时间内创造出“全功能系统” 优点: 1.开发速度快,质量有保证。 2.对信息系统特别有效。 缺点: 1. 对于大型的可伸缩的项目,RAD 需要大量的人力资源来创建多个相对的独立 的RAD 团队 2. 如果开发者和用户没有为短时间内急速完成整个系统做好准备,RAD 项目将 会失败。 3. 如果一个系统不能合理的模块化,RAD 构件建立会有很多问题。 4. 如果系统需求是高性能,并且需要通过调整构件接口的方式来提高性能,不 能采用RAD 模型 5. 技术风险很高的情况下 适用范围:1、不适合技术风险很高的开发,不适合系统需求是高性能,并且需要通过调整构件接口的方式来提高性能的产品开发。 2、适用于工期紧张,又可细分功能,还要有合适的构件 演化过程模型 演化过程模型包括原型开发,螺旋模型,协同开发模型。 (一)原型开发从需求收集开始,开发者和客户在一起定义软件的总体目标,标识已知的需 求并且规划出需要进一步定义的区域。然后是“快速设计”,它集中于软件中那些对客户可见的部分的表示,这将导致原型的创建,并由客户评估并进一步精化待开发软件的需求。逐步调整原型使其满足客户的需求,这个过程是迭代的。其流程从听取客户意见开始、随后是建造/修改原型、客户测试运行原型、然后回头往复循环直到客户对原型满意为止。由于这种模型可以让客户快速的感受到实际的系统(虽然这个系统不带有任何质量的保证),所以客户和开发者都比较喜欢这种过程模型(对于那些仅仅用来演示软件功能的公司而言或从来不考虑软件质

软件生命周期模型优缺点

软件生命周期模型优缺点 瀑布模型把每个阶段当成瀑布中的一个阶梯,强调由上而下,互相衔接、逐级下落, 固定次序。 优点:开发阶段清晰,便于评审、审计、跟踪、管理和控制 缺点:不可逆或很难可逆 问题会积累,错误会传递发散扩大,导致成本和质量失控 快速原型模型(原型模型)快速原型模型的第一步是快速建立一个能反映用 户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌。 优点:克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险 缺点:所选用的开发技术和工具不一定符合主流的发展,快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。 增量模型增量模型也称为渐增模型。增量模型融合了瀑布模型的基本成分和原型实 现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性系列产生软件的一个可发布的增量。 优点:人员分配灵活,开始不用投入大量的人力资源。如果核心产品很受欢迎,则可增加人力实现下一个增量。增量能够有计划的管理技术风险。 缺点:由于各个构件是逐渐并入已有的软件体系结构中,所以加入构件必须不破坏以构好的的系统部分,这需要软件具备开放式的体系结构。 在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改的模型,从而使软件过程的控制失去整体性。 如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程。 螺旋模型螺旋模型采用一种周期性的方法来进行系统开发。 优点:设计上的灵活,可以在项目的各个阶段进行变更。 以小的分段来构建大型系统,使成本计算变得简单容易。 客户始终参与每个阶段的开发,保证了项目部偏离正确方向以及项目的可控性。 缺点:建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。 喷泉模型喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于采用对 象技术的软件开发项目。 优点:需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。 缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。

相关主题
文本预览
相关文档 最新文档