收藏 分享(赏)

软件工程复习题.docx

上传人:cjc2202537 文档编号:265700 上传时间:2018-03-25 格式:DOCX 页数:6 大小:80.11KB
下载 相关 举报
软件工程复习题.docx_第1页
第1页 / 共6页
软件工程复习题.docx_第2页
第2页 / 共6页
软件工程复习题.docx_第3页
第3页 / 共6页
软件工程复习题.docx_第4页
第4页 / 共6页
软件工程复习题.docx_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、软件工程复习题1、 什么是软件过程模型?请说说一些常见的软件过程模型的特点。软件过程是整个软件生命周期中一系列有序的软件生产活动的流程。为了能高效地开发一个高质量的软件产品,通常把软件生命周期中各项开发活动的流程用一个合理的框架开发模型规范描述。这就是软件过程模型,或者称为 “软件生命周期模型” 。特点:软件过程模型从一个特定的角度表现一个过程,一般使用直观的图形标识软件开发的过程。主要根据软件的类型和规模,特别是软件的开发方法及开发环境等多种因素确立过程模型。2、什么是瀑布模型?它的主要特点是什么?瀑布模型提供了软件开发的基本框架,其过程为从上一项活动接收该项活动的工作对象作为输入,利用这一

2、输入实施该项活动应完成的内容作为该项活动的工作成果,并作为输出传给下一项活动。同时评审该项活动的实施,若确认,则继续下一项活动;否则返回执行前面,甚至更前面的活动。瀑布模型将软件生命周期划分为:系统需求软件需求需求分析设计 编码测试维护,自上而下、相互衔接的固定次序,如同瀑布流水逐级下落。主要特点:阶段的顺序性和依赖性;推迟实现;保证质量。3、 螺旋模型有什么特征?并说明它的优缺点。特征:将瀑布模型和快速原型模型结合起来,不仅体现了两个模型的优点,而且强调了其他模型均忽略的风险分析特别适合于大型复杂系统。模型的每一个周期都包括需求定义,风险分析,工程实现和评审 4 个阶段,进行迭代。优点: 对

3、可选方案和约束条件的强调有利于已有软件的重用;有助于把软件质量作为软件开发的一个重要指标;减少了过多测试或测试不足所带来的风险;维护只是模型的另一个周期,在维护和开发之间并没有本质区别;支持用户需求的动态变化;降低软件开发风险。缺点:强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解;风险可能在不同程度上损害软件开发过程,影响软件产品的质量。4、 软件需求有哪几类,他们有什么不同?业务需求、用户需求、功能需求(包括非功能需求)业务需求反映了组织机构或客户对系统、产品高层次的目标要求;用户需求用户使用产品必须要完成的任务;功能需求定义了开发人员必须实现的软件功能,使得用户能够完成他们

4、的任务,满足业务需求。5、 请简述面向对象分析有哪些分析模型?对象模型、动态模型、功能模型对象模型定义了“做什么”的实体;表示静态且结构化系统的“数据”性质,是对模拟客观世界实体的对象,以及对象彼此间关系的映射,描述了系统的静态结构。动态模型规定了在何种状态下,接受什么事件的触发而“做什么” ;建立对象模型后,就要考察对象的动态行为。动态模型表示瞬间且行为化的系统“控制”性质,规定了对象模型中对象的合法变化序列。功能模型指明系统应该“做什么” ;表示变化系统的“功能”性质,更直接地反应用户对目标系统的需求。6、 请简述统一建模过程框架。UML 是一种基于面向对像的可视化建模语言,UML 模型结

5、构分为 4 个抽象层次:元元模型、元模型、模型和用户模型,层次结构为下层是上层的基础,上层是下层的实例。元元模型定义了描述元模型的语言,是任何模型的基础,它的模型定义了元类、元属性和元操作等一些概念。元模型定义了描述模型的语言,组成 UML 模型的基本元素。模型定义了描述信息领域的语言,组成 UML 模型。用户模型模型的实例,表达一个模型的特定情况。7、 软件设计过程有哪些活动?他们的任务是什么?主要包括:总体设计、详细设计和设计测试 3 项活动。总体设计概要设计、软件结构设计、高层设计,仔细地分析需求规格说明,研究开发产品的模块划分。详细设计(模块)过程设计、低层设计,为结构设计中的各个模块

6、设计过程细节,确定模块所需的算法和数据结构等。设计测试测试和复审,确保设计的正确和优化。8、 软件设计的主要概念和原理有哪些?概念:软件设计是一系列迭代步骤的过程,软件设计过程就是使设计者通过设计模型能够描述将要构造软件的所有方面的过程。原理:模块化设计原理9、 什么是模块化原理?有哪些衡量模块独立性的指标?把一个大型软件系统的全部功能按照一定的原则合理的划分为若干模块,每个模块完成一个特定的子功能。所有的这些模块以某种结构形式组成一个整体,这就是软件的模块化设计。软件模块化设计的指导思想分解、抽象、逐步求精、信息隐蔽和模块独立性。指标有两个定性标准度量,模块自身的内聚和模块之间的耦合。内聚性

7、从功能的角度对模块内部聚合能力的度量。耦合性对一个软件结构内不同模块之间互联程度的度量。10、数据流有哪些类型?如何区分?3 种:变换型数据流、事务型数据流,混合型数据流区分:根据数据信息的“流动”特点。变换型数据流体现以输入、变换、输出的顺序方式沿一定路径前行。事务型数据流根据条件选择处理不同事物的数据流。混合型数据流变换型数据流、事务型数据流同时出现。11、数据流设计的步骤有哪些?事物流设计与变换流设计有哪些不同?(1)复查基本系统模型,并精化系统数据流图;(2)分析数据流类型,确定数据流具有变换流特征,还是事物流特征;(3)如果是变换流特征,确定输入流和输出流的边界;如果是事物流特征,确

8、定一个接收分支和一个发送分支;(4)采用自顶向下,逐步求精的方式完成模块分解,确定相应的软件组成结构;(5)根据模块独立性原理和运用设计度量标准,对导出的软件结构进行优化。不同:事物流设计确定一个接收分支和一个发送分支,发送分支包含一个“事务中心”和各个事物动作流;变换流设计确定输入流和输出流的边界,该流边界之间就是变换流,变换流加工处理的是某些形式的内部数据。12、什么是设计模式?请结合实例介绍一些基本的设计模式?以结构化形式对问题、解决方案和命名进行描述使其系统化,这些原则和习惯用法模式。软件设计中主要的模式是基于职责设计对象。5 种基本的 GRASP 模式:创建者模式:例如通过让 Reg

9、ister 创建 Sale,方便的将 Register 与 Sale 关联起来。信息专家模式:例如 Pos 机系统中销售的总额如何确定。控制器模式:例如 Pos 机系统中, enterItem 和 endSale 这样的系统事件应使用谁作为控制器的问题。低耦合模式:例如 Pos 机的设计。高内聚模式:例如把创建 Payment 的职责委派给了 Sale,从而支持了 Register 的高内聚。13、什么是逻辑框架?如何用包图描述?逻辑框架是软件类的宏观组织结构,他将软件类组织为包、子系统和层。UML 中,包模型是一个封装结构。不直接反映系统中的实体,而是反映某一指定功能域或技术域的处理。包模型

10、的描述工具是包图,包图由包和包之间的联系组成。通常,简单描述包可直接在大矩形中给出包的名称。如果包中还包含了其它子图,则在小矩形中给出包的名称,而大矩形中给出所含的子包。包之间的关系可以用直线,或者带箭头的直线连表示。14、什么是编码风格?请根据自己的编程经验编写一个编程注意事项。是指一个人编制程序时所表现出来的特点、习惯和逻辑思路等。注意事项:源程序文档化、数据说明、语句构造、输入输出、效率等。15、人机界面有哪些模型?各自有什么作用?用户模型,用户分为 4 种类型:外行型、初学型、熟练型和专家型。为分析提供依据。16、什么是统一过程?统一过程是一个软件开发过程,一个将用户需求转化为软件系统

11、所需要的活动的集合。17、统一过程分为哪些阶段?每个阶段的任务是什么?4 个阶段:初始、细化、构造和交付;每个阶段又进一步细分为多次迭代过程,每次迭代过程产生的增量,每个阶段都以一个里程碑作为结束标志,每个里程碑可用获得的一组可用制品定义。18、统一过程由哪些核心工作流?他们在每个阶段如何分配工作比例?5 个核心工作:需求、分析、设计、实现和测试。19、软件测试的目的是什么?请介绍关于软件测试的一些错误理解?目的:(1)确认软件的质量;(2)提供信息;(3)不仅测试软件本身,而且包括软件开发的过程。错误理解:认为发现错误是软件测试的唯一目的,查找不出错误的测试就是没有意义的。20、为什么穷尽测

12、试不可行?输入量太大、输出结果太多、软件实现的途径太多、软件需求规格说明书没有客观标准,测试条件难以确定。21、测试有哪些过程?每个过程的任务是什么?单元测试、集成测试、确认测试、系统测试单元测试对软件中的基本组成单位进行测试;集成测试把多模块按照一定的集成方法和策略,逐步装成子系统,进而组装成整个系统的测试;确认测试验证软件的有效性;系统测试保证所实现的系统确实是用户想要的。22、集成测试有哪些策略,各有什么特点?3 种:自顶向下测试、自底向上测试和混合式测试。自顶向下测试(优点)能较早展示整个程序的概貌,取得用户的理解和支持;(缺点)测试上层模块时要使用桩模块,很难模拟出真实模块的全部功能

13、;可能使部分测试内容被迫推迟,只能等真实模块集成后再补充测试;因为使用桩模块较多,增加了设计测试用例的困难。自底向上测试从下层模块开始,设计测试用例比较容易,但是在测试的早期不能显示出整个程序的概貌。混合式测试(优点)综合了以上两种测试策略的长处。23、黑盒测试有哪些方法?(具有启发式知识和规范):等价分类法、边界值分析法、因果图法和错误推测法(类比测试) 。24、白盒测试有哪些方法?逻辑覆盖、路径覆盖、循环路径测试策略。25、为什么说软件维护是不可避免的?无论软件的规模怎样,开发一个完全不需要改变的软件是不可能的。即使到了软件运行期,软件还是在不断进化以适应变更的需求。26、什么是非结构化维

14、护?什么是结构化维护?它们各自的特点是什么?非结构化维护一个软件没有采用软件工程方法开发,也没有任何的文档,仅有的是程序,这样的软件维护非常困难;结构化维护软件开发有正规的软件工程方法和完善的文档,维护这样的软件相对容易。27、如何提高软件的可维护性? 4 个方面:建立完整的文档、明确质量标准、采用易于维护的技术和工具、加强可维护性复审。28、软件项目管理计划包括哪些内容?4 个方面:项目的人员、费用、进度和质量。29、软件风险分析包括哪些内容?风险识别、风险预测、风险管理30、软件产品规模的度量有哪些方法?各自有什么特点?代码行方法最通用,单位代码行数、千条代码行数。不是很可靠。软件科学方法源于软件科学基本度量原理。可测量数据方法可测量数据在软件开发早期确定。功能点度量法使用软件产品提供的功能测量作为规范值,基于软件产品信息域值的计算和软件复杂性的评估。面向对象的度量对进度和工作量调整有足够粒度。31、质量成本有哪些?如何在质量和成本之间进行折中?32、软件项目进度计划方法有哪些?各自有什么特点?33、什么是“40-20-40 规则”?举例说明。40%或更多的工作量分配给前端的分析和设计任务,40%的比例用于后端测试,只有 20%的比例用于编码工作。34、软件成本估算有哪些方法?

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报