当前位置:文档之家› (新)什么是瀑布模型(DOC)

(新)什么是瀑布模型(DOC)

(新)什么是瀑布模型(DOC)
(新)什么是瀑布模型(DOC)

什么是瀑布模型?(DOC)

软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。

软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。

最早出现的软件开发模型是1970年W·Royce提出的瀑布模型。该模型给出了固定的顺序,将生存期活动从上一个阶段向下一个阶段逐级过渡,如同流水下泻,最终得到所开发的软件产品,投入使用。但计算拓广到统计分析、商业事务等领域时,大多数程序采用高级语言(如FORTRAN、COBOL等)编写。瀑布模式模型也存在着缺乏灵活性、无法通过并发活动澄清本来不够确切的需求等缺点。

典型的开发模型有:①瀑布模型(waterfall model);②渐增模型/演化/迭代(inCRemental model);③原型模型(prototype model);④螺旋模型(SPIral model);⑤喷泉模型(fountAIn model);⑥智能模型

(intelligent model) ; 7. 混合模型(hybrid model)

1. 边做边改模型(Build-and-Fix Model)

遗憾的是,许多产品都是使用"边做边改"模型来开发的。在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改.

在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的第一个版本。在提供给用户使用后,如果程序出现错误,或者用户提出新的要求,开发人员重新修改代码,直到用户满意为止。

这是一种类似作坊的开发方式,对编写几百行的小程序来说还不错,但这种方法对任何规模的开发来说都是不能令人满意的,其主要问题在于:(1)缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无法继续修改;

(2)忽略需求环节,给软件开发带来很大的风险;

(3)没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难。

2. 瀑布模型(Waterfall Model)

1970年WinSTon Royce提出了著名的"瀑布模型",直到80年代早期,它一直是唯一被广泛采用的软件开发模型。

瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编

写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。

在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。

瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现*发模式,几乎被业界抛弃,其主要问题在于:

(1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;

(2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;

(3)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。

我们应该认识到,"线性"是人们最容易掌握并能熟练应用的思想方法。当人们碰到一个复杂的"非线性"问题时,总是千方百计地将其分解或转化为一系列简单的线性问题,然后逐个解决。一个软件系统的整体可能是复杂的,而单个子程序总是简单的,可以用线性的方式来实现,否则干活就太累了。线性是一种简洁,简洁就是美。当我们领会了线性的精神,就不要再呆板地套用线性模型的外表,而应该用活它。例如增量模型实质就是分段的线性模型,螺旋模型则是接连的弯曲了的线性模型,在其它模型中也能够找到线性模型的影子。

3. 快速原型模型(RAPId Prototype Model)

快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。

显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。

快速原型的关键在于尽可能快速地建造出软件原型,一旦确定了客户的真正需求,所建造的原型将被丢弃。因此,原型系统的内部结构并不重要,重要的是必须迅速建立原型,随之迅速修改原型,以反映客户的需求。

4. 增量模型(Incremental Model)

与建造大厦相同,软件也是一步一步建造起来的。在增量模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成.

增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。整个产品被分解成若干个构件,开发人员逐个构件地交付产品,这样做的好处是软件开发可以较好地适应变化,客户可以不

断地看到所开发的软件,从而降低开发风险。但是,增量模型也存在以下缺陷:

(1)由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。

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

在使用增量模型时,第一个增量往往是实现基本需求的核心产品。核心产品交付用户使用后,经过评价形成下一个增量的开发计划,它包括对核心产品的修改和一些新功能的发布。这个过程在每个增量发布后不断重复,直到产生最终的完善产品。

例如,使用增量模型开发字处理软件。可以考虑,第一个增量发布基本的文件管理、编辑和文档生成功能,第二个增量发布更加完善的编辑和文档生成功能,第三个增量实现拼写和文法检查功能,第四个增量完成高级的页面布局功能。

5.螺旋模型(Spiral Model)

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

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

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

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

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

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

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

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

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

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

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

6.演化模型(incremental model)

主要针对事先不能完整定义需求的软件开发。用户可以给出待开发系统的核心需求,并且当看到核心需求实现后,能够有效地提出反馈,以支持系统的最终设计和实现。软件开发人员根据用户的需求,首先开发核心系统。当该核心系统投入运行后,用户试用之,完成他们的工作,并提出精化系统、增强系统能力的需求。软件开发人员根据用户的反馈,实施开发的迭代过程。第一迭代过程均由需求、设计、编码、测试、集成等阶段组成,为整个系统增加一个可定义的、可管理的子集。

在开发模式上采取分批循环开发的办法,每循环开发一部分的功能,它们成为这个产品的原型的新增功能。于是,设计就不断地演化出新的系统。实际上,这个模型可看作是重复执行的多个“瀑布模型”。

“演化模型”要求开发人员有能力把项目的产品需求分解为不同组,以便分批循环开发。这种分组并不是绝对随意性的,而是要根据功能的重要性及对总体设计的基础结构的影响而作出判断。有经验指出,每个开发循环以六周到八周为适当的长度。

7.喷泉模型(fountain model, (面向对象的生存期模型, OO模型))

喷泉模型与传统的结构化生存期比较,具有更多的增量和迭代性质,生存期的各个阶段可以相互重叠和多次反复,而且在项目的整个生存期中还可以嵌入子生存期。就像水喷上去又可以落下来,可以落在中间,也可以落在最底部。

8.智能模型(四代技术(4GL))

智能模型拥有一组工具(如数据查询、报表生成、数据处理、屏幕定义、代码生成、高层图形功能及电子表格等),每个工具都能使开发人员在高层次上定义软件的某些特性,并把开发人员定义的这些软件自动地生成为源代码。这种方法需要四代语言(4GL)的支持。4GL不同于三代语言,其主要特征是用户界面极端友好,即使没有受过训练的非专业程序员,也能用它编写程序;它是一种声明式、交互式和非过程性编程语言。4GL还具有高效的程序代码、智能缺省假设、完备的数据库和应用程序生成器。目前市场上流行的4GL(如FoXPro 等)都不同程度地具有上述特征。但4GL目前主要限于事务信息系统的中、小型应用程序的开发。

9.混合模型(hybrid model)

过程开发模型又叫混合模型(hybrid model),或元模型(meta-model),把几种不同模型组合成一种混合模型,它允许一个项目能沿着最有效的路径发展,这就是过程开发模型(或混合模型)。实际上,一些软件开发单位都是使用几种不同的开发方法组成他们自己的混合模型。

各种模型的比较

每个软件开发组织应该选择适合于该组织的软件开发模型,并且应该随着当前正在开发的特定产品特性而变化,以减小所选模型的缺点,充分利用其优

点,下表列出了几种常见模型的优缺点。

模型

优点

缺点

瀑布模型文档驱动系统可能不满足客户的需求

快速原型模型关注满足客户需求可能导致系统设计差、效率低,难于维护

增量模型开发早期反馈及时,易于维护需要开放式体系结构,可能会设计差、效率低

螺旋模型风险驱动风险分析人员需要有经验且经过充分训练

软件工程导论复习题

一、选择题 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. 什么是需求工程?需求工程是指应用有效的技术和方法进行需求分析,确定客户需求,帮助分析人员理解问题,定义目标系统的外部特征的一门学科。需求工程中的主要活动有:需求获取、需求分析、需求规格说明、需求验证和需求变更管理。

软件生命周期模型

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

第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 软件设计的依据

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

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

软件工程期末试卷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.时序图

一选择题

一、选择题 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. 开发软件的高成本和产品的低质量之间有着尖锐的矛盾,这称作()。A.软件投机B.软件危机C.软件工程D.软件产生 2. 软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是 ()。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用 3. 瀑布模型把软件生存周期划分为软件定义、软件开发和()三个阶段, 而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错 4. 一个软件项目是否进行开发的结论是在()文档中作出的。 A.软件计划B.可行性报告C.测试报告D.需求分析说明书 5. 常用的成本估计技术不包括()。 A.任务分解B.自动估计成本C.代码行D.投资回收估算 6. 需求分析说明书不能作为()。 A.可行性研究的依据B.用户和开发人员之间的合同C.系统概要设计的依据D.软件验收测试的依据 7. 需求分析需要确定的系统基本需求不包括()。 A.开发语言B.功能C.性能D.接口 8. 状态图中定义的状态不包括()。 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.程序复杂度计算

软件工程复习题答案.doc

一.单项选择题 1. 软件调试技术包括(B )。 A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试 2. 瀑布模型的存在问题是(B ) A.用户容易参与开发 B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求 3. 软件测试方法的静态测试方法之一(A) A.计算机辅助静态分析 B.黑盒法C?路径覆盖D.边界值分析 4. 软件生命周期中所花费用最多的阶段是(D) A.详细设计 B.软件编码 C.软件测试 D.软件维护 5. 第一个体现结构化编程思想的程序设计语言是(B)。 A. FORTRAN 语言 B.Pascal 语言 C.C 语言 D.PL/1 语言 6. 程序的三种基本控制结构是(B ) A.过程、子程序和分程序 B.顺序、选择和重复C?递归、堆栈和队列D.调用、返回和转移 7. 在详细设计阶段,经常采用的工具有(A) A. PAD B.SA C.SC D.DFD 8. 详细设计的结果基本决定了最终程序的(C) A.代码的规模 B.运行速度 C.质量 D.可维护性 9. 需求分析中开发人员要从用户那里了解(A)。 A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模 10. 结构化程序设计主要强调的是(D) A.程序的规模 B.程序的效率C?程序设计语言的先进性 D.程序易读性 11. 经济可行性研究的范围包括(C)。 A.资源有效性 B.管理制度C?效益分析D.开发风险 12. 可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出(B)的回答。 A. 确定 B. 行或不行 C. 正确 D. 无二义 13. 需求分析阶段的任务是确定(D)。 A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能 14. 软件调试的目的是(A) A.找出错误所在并改正之 B.排除存在错误的可能性 C.对错误性质进行分类 D.统计出 错的次数 15. 内聚是衡量模块内部聚合能力的量度。内聚越高,说明模块内各成分彼此联系的程度 (C) A.越松散 B.彼此相等 C.越紧密 D.没有联系 16. 软件的(A)设计又称为总体设计,其主要任务是建立软件系统的总体结构。 A.概要 B.抽象 C.逻辑 D.规划 17. 下列系统设计工具中,(B) A.N-S图 B.数据流图 C.程序流程图 D.PAD图 18. 结构化程序设计采用的三种基本控制结构是(A) A?顺序、选择、重复B.选择、循环、重复C?顺序、分支、选择D.输入、变换、输出 19. 软件的(B)一般由两次故障平均间隔时间和故障平均恢复时间来度量。 A.可维护性 B.可靠性 C.效率 D.可理解性 20. 在UML的用例图中,人形符号表示的是(C) A.关联 B.用例 C.角色 D.系统 二.简单题 1. 什么是软件工程?什么是软件危机? 2. 软件的可行性研究主要研究那些问题?

软件开发技术考试复习题及参考答案

软件开发技术 一、填空题 1、软件工程学的内容可包括()、结构、()、()、环境、管理、规范等。 2、软件生存周期一般可分为问题定义、()、()、设计、()、测试、运行与维护阶段。 3、系统流程图是()的传统工具。 4、结构化语言是介于自然语言和()之间的一种半形式语言。 5、数据字典的内容包括六项:()、()、()、数据存储、处理逻辑、外部实体。 6、UML的定义包括()和()两个部分。 7、按数据流的类型,结构化设计方法有两种设计策略,它们是变换分析设计和()。 8、瀑布模型是以文档为驱动、适合于()的软件项目的模型。 9、对象具有标识唯一性、分类性、多态性、( ) 和( )等基本特性。 10、消息关联指的是对象()的一种依赖关系。 11、对象的规格说明包括对对象()的说明及对对象()的说明。 12、在需求分析阶段常用的图形工具有()、()、()。 13、模块独立的概念是()、()、()和局部化概念的直接结果。 14、基于计算机系统的系统元素包括:软件、硬件、人、()、()和过程等几个部分。 15、软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、()、可使用性和效率。 16、为了便于对照检查,测试用例应由输入数据和预期的()两部分组成。 17、在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、()。 18、需求分析的基本任务是准确的回答()。 19、常用的系统分析方法有四类,包括:()、数据流方法、信息造型方法以及()。 20、面向对象设计中,主要存在两种耦合,交互耦合和()。 21、UML是一种标准的图形化(即可视化)建模语言,它由()和()组成。其中,前者是UML的表示法(语法),而后者给出前者的含义,是UML的语义。 二、选择题 1、下列关于瀑布模型的描述正确的是()。 A. 瀑布模型的核心是按照软件开发的时间顺序将问题简化。 B. 瀑布模型具有良好的灵活性。 C. 瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。 D. 利用瀑布模型,如果发现问题修改的代价很低。 2、下列各方法中()不是软件测试方法。 A. 白盒法 B. 黑盒法 C. 动态测试 D. 盒法 3、UML的基本建筑块不包括()。 A.框架B.事物

软件工程选择题汇总

1.软件调试技术包括() A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试 2.瀑布模型的存在问题是() A.用户容易参与开发 B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求 3.软件测试方法中的静态测试方法之一为() A.计算机辅助静态分析 B.黑盒法 C.路径覆盖 D.边界值分析 4.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测试 D.软件维护 5.第一个体现结构化编程思想的程序设计语言是() A.FORTRAN语言 B.Pascal语言 C.C语言 D.PL/1语言 6.程序的三种基本控制结构是() A.过程、子程序和分程序 B.顺序、选择和重复 C.递归、堆栈和队列 D.调用、返回和转移 7.在详细设计阶段,经常采用的工具有() A.PAD B.SA C.SC D.DFD 8.详细设计的结果基本决定了最终程序的() 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. 软件的主要特性是(A B C)。 A) 无形 B) 高成本 C) 包括程序和文档D) 可独立构成计算机系统 系统定义明确之后,应对系统的可行性进行研究。可行性研究应包括()。 A.软件环境可行性、技术可行性、经济可行性、社会可行性

软件工程期末试卷(十套含答案)

软件工程期末试题 单项选择题 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. 时序图 13. 对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。 A. 结合 B. 隐藏 C. 封装 D. 抽象 14. 软件详细设计的主要任务是确定每个模块的( A )。 A. 算法和使用的数据结构 B. 外部接口 C. 功能 D. 编程 15. 软件结构图中,模块框之间若有直线连接,表示它们之间存在( A )。 A. 调用关系 B. 组成关系 C. 链接关系 D. 顺序执行关系 16. 需求分析最终结果是产生( B )。 A. 项目开发计划 B. 需求规格说明书 C. 设计说明书 D. 可行性分析报告 17. 在详细设计阶段,经常采用的工具有( A )。 A. PAD B. SA C. SC D. DFD 18.因计算机硬件和软件环境的变化而作出的修改软件的过程称为( C ) A.教正性维护 B.适应性维护 C.完善性维护 D.预防性维护 20.为了提高软件的可维护性,在编码阶段应注意( D ) A.保存测试用例和数据 B.提高模块的独立性 C.文档的副作用 D.养成好的程序设计风格 1.面向对象开发方法包括OOA、OOD和OOP三部分。 2.效益分有形效益和无形效益两种。有形效益可用纯收入、货币时间的价值、投资回收期等指标进行度量;无形效益主要从性质上、心理上进行衡量,很难直接进行量的比较。 3.从应用特点的角度来看,我们可以把高级语言分为基础语言、结构语言和专用语言三类。 设计题

软件工程-选择题

1.瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大阶段:计划阶段、开发阶段和() A.详细计划 B.可行性分析 C.运行阶段 D.测试与排错 2.需求分析是() A.软件开发工作的基础 B.软件生存周期的开始 C.由系统分析员单独完成的 D.由用户自己单独完成的 3.数据字典是用来定义()中的各个成分的具体含义的 A.数据流图 B.功能结构图 C.系统结构图 D.流程图 4.软件详细设计阶段的任务是() A.功能设计 B.算法设计 C.调用关系设计 D.输入输出设计 5.通信内聚是指() A.把需要同时执行的动作组合在一起形成的模块 B.模块内所有元素共同完成一个功能,缺一不可 C.一个模块中各个处理元素都密切相关于同一功能且必须顺序执行 D.各处理使用相同的输入数据或产生相同的输出数据 6.程序的三种基本控制结构是() A.过程、子程序和分程序 B.顺序、选择和重复 C.递归、堆栈和队列 D.调用返回和转移 7.适合于面向对象方法学的软件生存周期模型是() A.瀑布模型 B.喷泉模型 C.螺旋模型 D.增量模型 8.在数据流图中,圆代表() 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.下列叙述中()不属于 ...数据字典的作用。 A.作为编码阶段的描述工具 B.为用户与开发人员之间统一认识 C.作为概要设计的依据 D.为需求分析阶段定义各类条目 16.需求分析说明书不能作为() A.可行性研究的依据 B.用户和开发人员之间的合同 C.系统概要设计的依据 D.软件验收测试的依据 17.瀑布模型把软件生存周期划分为软件定义、软件开发和()三个阶段而每一阶段又可细分为若干个更小的阶段。 A.详细设计 B.可行性分析 C.运行及维护 D.测试与排错 18.产生软件危机的原因有如下几点,除了() A.软件开发过程未经审查 B.软件开发不分阶段,开发人员没有明确的分 C.所开发的软件除了程序清单外没有其他文档 D.采用工程设计的方法开发软件不符合软件本身的特点 19.总体设计的目标是确定整个系统的() A.规模 B.测试方案 C.费用 D.功能及模块结构 20.模块在同一时间段内完成各种初始化工作,这属于() A.偶然内聚 B.逻辑内聚 C.时间内聚 D.过程内聚 21.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称() A.软件工程 B.软件周期 C.软件危机 D.软件产生

华南理工大学《软件工程》复习资料

复习提纲 什么是软件工程? 软件工程是一门工程学科,涉及软件生产的各个方面,它既是一个创造的过程,又是一个逐步进行的过程,从最初的系统描述到使用后的系统维护。 软件工程定义: 鲍威尔(Fritz Bauer):“建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法”。 软件工程项目的基本目标是: (1)付出较低的开发成本; (2)达到要求的软件功能; (3)取得较好的软件性能; (4)开发的软件易于移植; (5)需要较低的维护费用; (6)能按时完成开发工作,及时交互使用。 软件工程是对技术(或社会)实体的分析、设计、建造、验证和管理。因此工程须回答下列问题: 要解决的问题是什么? 要用于解决该问题的实体具有什么特点? 如何实现该实体(解决方案)? 如何建造该实体? 采用什么方法去发现该实体设计和建造过程中产生的错误? 瀑布模型存在的问题: 1、实际的项目很少按照该模型给出的顺序进行.开发过程中变化可能引起混乱; 2、用户常常难以清楚的给出所有需求; 3、在软件开发初期指明软件系统的全部需求是困难的,有时甚至是不现实的。而瀑布模型在需求分析阶段要求客户和系统分析员必须做到这一点才能开展后续阶段的工作; 4、需求确定后,用户和软件项目负责人要等相当长的时间(经过设计、实现、测试、运行)才能得到一份软件的最初版本。 螺旋模型具有以下的优点: (1)螺旋模型支持用户需求的动态变化; (2)螺旋模型中,需求分析和软件实现是相互依赖、紧密联系的软件开发活动。(3)螺旋模型为用户参与软件开发的所有关键决策提供了方便。 (4)螺旋模型有助于提高目标软件的适应能力。 (5)螺旋模型为项目管理人员及时调整管理决策提供了便利,从而降低了软件开发的风险。 ◆原型模型(快速原型法)——针对软件开发初期确定软件系统需求方面存在着一定困难的情况下,软件开发人员根据客户提出的问题域,抓住中心快速地开发出一个原型,它向客户展示了待开发软件系统的全部或部分功能和性能,在征求客户对原型意见的过程中,进一步修改、完善、确认软件系统的需求并达到一致的理解。它是一种常用的模型。 ◆快速原型方法关键在于快速地实现可运行的原型,以便尽快提交用户确认,

软件工程复习题答案

一.单项选择题 1.软件调试技术包括(B)。 A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试 2.瀑布模型的存在问题是(B) A.用户容易参与开发 B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求 3.软件测试方法的静态测试方法之一(A) A.计算机辅助静态分析 B.黑盒法 C.路径覆盖 D.边界值分析 4.软件生命周期中所花费用最多的阶段是(D) A.详细设计 B.软件编码 C.软件测试 D.软件维护 5.第一个体现结构化编程思想的程序设计语言是(B)。 A.FORTRAN语言 B.Pascal语言 C.C语言 D.PL/1语言 6.程序的三种基本控制结构是(B) A.过程、子程序和分程序 B.顺序、选择和重复 C.递归、堆栈和队列 D.调用、返回和转移 7.在详细设计阶段,经常采用的工具有(A) A.PAD B.SA C.SC D.DFD 8.详细设计的结果基本决定了最终程序的(C) A.代码的规模 B.运行速度 C.质量 D.可维护性 9.需求分析中开发人员要从用户那里了解(A)。 A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模 10.结构化程序设计主要强调的是(D) A.程序的规模 B.程序的效率 C.程序设计语言的先进性 D. 程序易读性 11.经济可行性研究的范围包括(C)。 A.资源有效性 B.管理制度 C.效益分析 D. 开发风险 12.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出(B)的回答。 A.确定 B.行或不行 C.正确 D.无二义 13.需求分析阶段的任务是确定(D)。 A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能 14.软件调试的目的是(A) A.找出错误所在并改正之 B.排除存在错误的可能性 C.对错误性质进行分类 D.统计出错的次数 15.内聚是衡量模块内部聚合能力的量度。内聚越高,说明模块内各成分彼此联系的程度(C) A.越松散 B.彼此相等 C.越紧密 D.没有联系 16.软件的(A)设计又称为总体设计,其主要任务是建立软件系统的总体结构。 A.概要 B.抽象 C.逻辑 D.规划 17.下列系统设计工具中,(B) A.N-S图 B.数据流图 C.程序流程图 D.PAD图 18.结构化程序设计采用的三种基本控制结构是(A) A.顺序、选择、重复 B.选择、循环、重复 C.顺序、分支、选择 D.输入、变换、输出 19.软件的(B)一般由两次故障平均间隔时间和故障平均恢复时间来度量。 A.可维护性 B.可靠性 C.效率 D.可理解性 20.在UML的用例图中,人形符号表示的是(C) A.关联 B.用例 C.角色 D.系统 二.简单题

关于软件开发模型的若干问题的分析

关于软件开发模型的若干问题的分析 幸林泉 【摘要】经过一个学期的软件工程导论课的学习,我对软件工程这个专业有了更深的认识,这门课让我知道了什么是软件工程专业,这个专业学什么,这个专业以后用来干什么,以及软件工程的现在和未来。本篇课程报告是我在学完这门课以后对这门学科的认识以及对一些软件开发模型的探讨并提出了我心中相应的解决措施。 【关键词】软件工程概述;软件开发模型;导论课心得 20世纪中期,软件产业从零开始起步,在短短50年内迅速发展成为推动人类社会发展的龙头产业。随着信息产业的发展,软件对人类社会越来越重要,但是开发技术却迟迟得不到突破,软件开发的方法基本上仍然沿用早期的个体化软件开发方式,软件需求日趋复杂,维护的难度越来越大,开发成本令人吃惊的高,一些复杂、大型的软件开发项目被提了出来,但很多最后都得到了一个悲惨的结局。在开发过程中遇到的问题找不到解决的方式,使问题积累起来,形成了尖锐的矛盾,失败的软件开发项目屡见不鲜,最终导致了“软件危机”【1】由于软件危机的产生,迫使人们不得不研究、改变软件开发的技术手段和管理方法。从此软件生产进入软件工程(SoftwareEnginering)时代。 1:软件工程概述 1.1:什么是软件工程? 软件工程一直以来都没有一个统一的定义,很多人给出了自己的定义。一种比较认可的定义是:软件工程是应用计算机科学、数学、逻辑学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本和改进算法。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。【2】另一种比较认可的定义是:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科【3】。 但软件工程定义在我心中没有那么“复杂”,老师在课堂上经常说:“一个好的软件能很好的满足人们的需求。”软件的设计与开发就是为了方便人们的日常生活,它是服务于社会人群的,而软件工程就是我们去改善软件的设计开发的一个重要手段,它是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。 1.2:软件工程的地位如何? 随着软件应用日益广泛、软件规模日益扩大,人们开发、使用、维护软件不得不采用工程的方法,以求经济有效地解决软件问题。借助于计算机科学技术、数学、管理科学与工程诸多学科,今天的软件工程己由最初的一个学科方向发展成为以计算机科学技术为基础的一个新兴交叉学科【4】。所以我们可以得知:软件在当今的信息社会中占有重要的地位,实际上,软件产业是信息社会的支柱产业之一。 1.3:软件工程专业人才应具有怎样的技能知识? 软件工程专业面向社会经济发展和国防现代化建设的需求,培养具有基础宽厚,知识、能力、素质协调发展,系统地掌握计算机软件领域的基本理论、

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