软件工程考点例题整理

软件工程考点例题整理

1. 软件需求工程

1.1 需求获取

1.1.1 请简要介绍需求获取的主要方法。

需求获取是软件需求工程的第一步,其目标是收集、分析和验证用户和系统对软件的需求。主要的需求获取方法包括:

•面向用户的方法:例如面谈、问卷调查、观察、场景分析等。

•面向系统的方法:例如文档分析、数据分析、原型开发等。

•面向过程的方法:例如原型、模型、用例等。

1.1.2 请用一个例子说明需求获取方法的应用。

例如,在一个新的电商平台项目中,为了了解用户的需求,可以采用面谈的方法。软件工程师可以与用户进行交流,了解他们对于电商平台的期望和需求。通过面谈,工程师可以获得用户对于购物流程、支付方式、商品分类等方面的需求,进而将其作为软件开发的参考依据。

1.2 需求分析与建模

1.2.1 什么是需求分析与建模?请简要描述其目的和步骤。

需求分析与建模是将需求进行详细分析并通过适当的模型进行描述的过程。其目的是确定软件的功能、性能、约束等方面的需求,为软件设计与开发提供准确的参考。

需求分析与建模的步骤包括需求的可行性分析、需求的详细化、需求的验证以及需求的文档化。

1.2.2 请简要介绍几种常用的需求建模方法。

•用例图:用例图是描述系统功能和外部参与者之间交互的模型,用于表示系统的功能需求和参与者的角色与活动。

•静态建模:静态建模通过类图和对象图描述系统的静态结构,包括系统中的类、对象、关系等。

•行为建模:行为建模通过活动图、状态图、时序图等描述系统的动态行为,包括系统的业务流程、状态转换、消息传递等。

2. 软件设计

2.1 面向对象设计

2.1.1 什么是面向对象设计?请简要描述其基本原则。

面向对象设计是一种软件设计方法,将问题领域中的实体抽象成类,通过类之间的关系和交互来描述问题的解决方案。

面向对象设计的基本原则包括: - 单一职责原则:一个类应该只有一个变化的

原因。 - 开放封闭原则:软件实体(类、模块、函数等)应该对扩展开放,对修改

封闭。 - 里氏替换原则:子类可以替换父类并且既无需知道父类的实现细节,也不

会破坏原有的系统行为。 - 接口隔离原则:使用多个专门的接口,而不是使用单一

的总接口。 - 依赖倒置原则:高层模块不依赖于低层模块,而是依赖于抽象接口。

2.1.2 请用一个例子解释面向对象设计的概念。

例如,在一个图书馆管理系统中,可以定义以下几个类:图书馆、图书、读者。

•图书馆类:包含图书馆的名称、地址等属性,以及管理图书和读者的方法。

•图书类:包含图书的编号、名称、作者等属性,以及借书和还书的方法。

•读者类:包含读者的姓名、借阅图书的记录等属性,以及借书和还书的方法。

通过定义这些类以及它们之间的关系,可以实现图书馆管理系统对图书与读者的借还操作的管理。

2.2 软件架构设计

2.2.1 什么是软件架构设计?请简要描述其目的和关键考虑因素。

软件架构设计定义了软件系统的整体结构和组成方式,确定了软件系统中各个组件之间的关系和交互方式。其目的是保证软件系统的结构清晰、分工明确,满足系统需求和质量属性的要求。

软件架构设计的关键考虑因素包括系统的功能需求、性能要求、可维护性、可扩展性等。

2.2.2 请简要介绍几种常用的软件架构风格。

•面向对象架构:基于面向对象设计思想,以对象、类、继承、封装等概念为基础构建系统的架构。常见的面向对象架构风格包括MVC、MVVM等。

•分层架构:将系统划分为多个层次,每个层次有不同的功能和责任。常见的分层架构包括三层架构和四层架构等。

•服务导向架构:将系统划分为多个服务,每个服务为一个独立的功能单元,通过服务之间的通信实现系统的功能需求。常见的服务导向架构包括SOA、微服务架构等。

3. 软件测试与维护

3.1 软件测试

3.1.1 什么是软件测试?请简要描述其目的和基本原则。

软件测试是一种通过运行软件系统,以发现错误、缺陷和漏洞的方法。其目的是提高软件系统的质量,保证软件系统可以按照预期的方式运行。

软件测试的基本原则包括完整性、独立性、可重复性和效率。

3.1.2 请简要介绍几种常用的软件测试方法。

•黑盒测试:测试人员仅根据软件的需求规格说明书,不考虑内部实现细节来设计测试用例,主要关注功能正确性和接口是否符合要求。

•白盒测试:测试人员根据软件的内部实现细节来设计测试用例,主要关注程序代码执行的正确性、逻辑覆盖等。

•灰盒测试:综合了黑盒测试和白盒测试的特点,将需求规格和内部实现结合起来进行测试。

•单元测试:对软件系统中的最小可测试单元进行测试,例如函数、方法等。

•集成测试:将多个单元组合测试以验证它们之间的交互和集成是否正确。

•系统测试:针对整个软件系统进行测试,验证软件系统是否能够满足需求。

3.2 软件维护

3.2.1 什么是软件维护?请简要描述其分类和目的。

软件维护是在软件系统交付使用后,对软件系统进行修正、改进和适应新环境的过程。根据维护任务的性质,软件维护可分为四类:纠错性维护、适应性维护、完善性维护和预防性维护。

软件维护的目的是提高软件系统的可用性和可维护性,保证软件系统能够持续稳定运行,并适应不断变化的需求和环境。

3.2.2 请说明软件维护的几种策略。

•瀑布模型:采用传统的开发过程,将软件维护作为开发模型的最后一个阶段进行。

•增量模型:将软件维护作为多个增量的一部分进行,每个增量都包含新功能的开发和旧功能的维护。

•混合模型:结合瀑布模型和增量模型的特点,根据具体情况进行灵活选择。

总结

本文对软件工程的若干考点进行了介绍和整理,包括软件需求工程、软件设计、软件测试与维护等方面的内容。通过了解这些考点,可以对软件工程的基本知识有一个系统的了解,并在实际的软件开发过程中具备一定的参考和指导作用。软件工程是一门综合性强的学科,需要理论和实践相结合,持续学习和实践将有助于提升软件工程能力和水平。

软件例题

概述 1、假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得的的结果应该精确到小数点后4位。一旦实现并测试完之后,改产品将被抛弃。你打算选用哪种软件生命周期模型?请说明你作出选择的理由。 对这个软件的需求很明确,实现开方功能的算法也很成熟,因此,既无须通过原型来分析需求也无须用原型来验证设计方案。此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。 综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了。 2、假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。你打算采用哪种软件生命周期模型?为什么? 对这个项目的一个重要要求是,严格按照已对外公布了的日期完成产品开发工作,因此,选择生命周期模型时应该着重考虑哪种模型有助于加快产品开发的进度。使用增量模型开发软件时可以并行完成开发工作,因此能够加快开发进度。 这个项目是开发该公司已被广泛使用的字处理软件的新版本,从上述事实至少可以得出3点结论:第一,旧版本相当于一个原型,通过收集用户对旧版本的反映,较容易确定对新版本的需求,没必要再专门建立一个原型系统来分析用户的需求;第二,该公司的软件工程师对字处理软件很熟悉,有开发字处理软件的丰富经验,具有采用增量模型开发新版字处理软件所需要的技术水平;第三,该软件受到广大用户的喜爱,今后很可能还要开发更新的版本,因此,应该把该软件的体系结构设计成开放式的,以利于今后的改进和扩充。 综上所述,采用增量模型来完成这个项目比较恰当。 1、什么是软件工程? 2、什么是软件过程?它与软件方法学的关系? 3、用自己的语言来比较瀑布模型与原形模型?分析两种模型产生的必然性。 需求分析 简单例子:(订货系统) 一家工厂的采购部每天需要一张订货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于需要再次订货的零件应该列出编号、名称、数量、价格、主要供应商等内容。零件的出入库称为事务,通过放在库房的CRT终端把事务报告给订货系统。当某种零件的库存量少于库存临界值时就应该再次订货。 对本例来说念完第一遍应该确定:(用 心去读) 采购部或者采购员是外部实体(数据 汇点),它的输入数据流是订货报表。 CRT终端或者仓库管理员是外部实体 (数据源点),它的输出数据流是事 务。

软件工程例题总结

一、选择题 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.0或1 B.1 C.0到多 D.1到多 11.McCall质量度量模型中,与“用户熟悉、使用及准备输入和解释输出所需的工作量的大小”所对应的软件质量特性是()。 A.正确性 B.完整性 C.可靠性 D.可用性 12.与“可行性研究报告”文档有关的人员是()。 A.管理人员和开发人员 B.开发人员和维护人员 C.开发人员和用户 D.管理人员和用户 13.“与程序结构有关的度量”对应的软件复杂性度量参数是()。 A.规模 B.难度 C.结构 D.智能度 14.在McCall软件质量度量模型中,()属于面向软件产品操作。 A.可维护性 B.效率 C.适应性 D.可互操作性 15.为了提高软件的可维护性或可靠性而对软件进行的修改称为()。 A.校正性维护 B.适应性维护 C.完善性维护 D.预防性维护 16.源程序文档化要求在每个模块之前加序言性注释。该注释内容不应有()。 A.模块的功能 B.语句的功能 C.模块的接口 D.开发历史

软件工程考试题

六、填空题 1、(可行性研究)的目的就是用最小代价在尽可能短的时间内确定该软件项目是否能够开发、是否值得开发。 2、可行性研究的目的不是是开发一个软件项目,而是研究这个项目是否(是否做值得)。 3、可行性研究需要从(经济)可行性、(技术)可行性、(操作)可行性和(社会)可行性四个方面分析研究每种解决方案的可行性。 4、技术可行性是对开发项目的(功能、性能、限制条件)进行分析,确定现有资源条件下,技术风险有多大,项目是否能实现。 5、经济可行性一般要考虑的情况包括:(成本和效益)。 6、社会可行性所涉及的范围包括(合同、责任、侵权)用户组织的管理模式、范围以及其他一些技术人员常常不了解的陷阱。 7、典型的可行性研究有以下步骤:确定项目的规模和目标、(研究正在运行的系统)、(建立新系统的高层逻辑模型)、导出和评价各种方案、推荐可行的方案和编写可行性研究报告。 8、系统效益=经济效益+(社会效益)。 9、效益分有型效益和(无形)两种。 10、可行性研究的第一个步骤是(确定项目的规模和目标)。 11、数据字典就是用来定义数据流图中的(各个成分的具体含义)的。它和数据流图共同构成了系统的(逻辑模型),是(需求说明书)的主要组成部分。 12、由于数据流是流动中的数据,所以必须有(流向)。除了与(数据存储)之间的数据流命名外,数据流应该采用名词或名词短语。 七、选择题 1、研究开发资源有效性是进行( D )可行性研究的一个方面 A. 技术 B. 经济 C. 社会 D. 操作 2、在软件可行性研究中、可以从不同的角度对软件进行研究,其中从软件的功能可行性角度考虑的是( B )可行性 A. 经济 B. 技术 C. 操作 D. 社会 3、在遵循软件工程原则开发软件过程中,计划阶段应该依次完成( B ) A. 可行性研究、需求分析、问题定义 B. 问题定义、可行性研究、需求分析 C. 需求分析、问题定义、可行性研究 D.可行性研究、问题定义、需求分析 4、可行性研究要进行的需求分析和设计应是( C )。 A. 详细的 B. 全面的 C. 简化的 D. 彻底的 七、填空题 1、需求分析的基本任务是要准确地定义(扇新系统的目标),为了满足用户需求,回答系统必须(做什么)的问题。 2、在需求分析阶段,首先进行问题识别,即双方确定对问题的综合需求,这些需求包括:(功能)需求、(性能)需求、(环境)需求、(用户界面)需求。另外还有可靠性、安全性、保密性、可移植性、可维护性等方面的需求。 3、需求分析的困难主要体现在4个方面:问题的复杂性、(交流障碍)、(不完备性和不一致性)、需求易变性。 4、在需求分析阶段进行以下几个方面的工作:识别系统综合要求、(分析系统的数据要求)、导出软件逻辑模型、(编写文档)。 八、选择题

《软件工程》经典考试例题复习题,重点知识点(含答案)

1.某旅馆的电话服务如下:可以拨分机号和外线号码。分机号是从7201至7299。外线号 码先拨9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从100到300中任意的数字串。市话号码是以局号和分局号组成。局号可以是455,466,888,552中任意一个号码。分局号是任意长度为4的数字串。 要求:写出在数据字典中,电话号码的数据流条目的定义即组成。 电话号码=[分机号|外线号码] 分机号=7201 (7299) 外线号码=9+[市话号码|长话号码] 长话号码=区号+市话号码 区号=100 (300) 市话号码=局号+分局号 局号=[455|466|888|552] 分局号=4{数字}4 数字=[0|1|2|3|4|5|6|7|8|9] 2.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行路径。 (1)语句覆盖测试用例 令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。 (2)判定覆盖 可以设计如下两组数据以满足判定覆盖: x=3,y=0,z=1(1分)(通过路径abce); x=2,y=1,z=2(1分)(通过路径acde)。 或者 x=2,y=1,z=1;覆盖路径acde x=1,y=1,z=1;覆盖路径ace x=3,y=0,z=1;覆盖路径abce (注意:本题也还可以有其他答案) 3.请用判定表画出以下问题的行为逻辑。 人们往往根据天气情况决定出门时的行装。天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。如果天气要下雨,出门时带上雨伞;如果天气变冷,

出门时要穿上大衣。 4.对下列子程序进行调试: procedure example(y,z: real; var x: real) begin if (y>1) and (z=0) then x:=x/y; if (y=2) or (x>l) then x:=x+l; end. 该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。完成下列各题: (1)画出程序流程图。 (2)用条件组合覆盖设计测试用例,并写出其中一组测试用例。 答:(1)程序流程图 (2)用白盒法中条件组合覆盖设计测试用例: ①y=2, z=0, x=4; ②y=2, z=1, x=1; ③y=1, z=0, x=2; ④y=1, z=1, x=1. (注:也可有其它答案) 5.选择排序的伪代码如下,请根据代码画出其PAD图。 select_sort(a[1],a[2],…,a[n]) { for(i=1;i

软件工程复习的几个知识点和例题

1.软件危机的概念,内容,原因及消除的途径; 2.软件工程的定义,基本原理; 3.软件工程方法学的基本概念、内容; 4.软件生命周期的具体内容,每一个阶段的任务是什么? 结合具体的工程例子来理解做软件项目主要分那几个阶段。 5.理解几个典型软件过程的内容及其优点与缺点:瀑布模型、增量模型、 快速原型模型、螺旋模型、喷泉模型等; 6.了解可行性研究中的任务和过程; 7.掌握系统流程图的概念和方法,会从具体的案例中抽象出系统流程图; 8.掌握数据流图的概念和方法,会从具体的案例中画出0层数据流图和 功能级数据流图; 9.掌握数据字典的内容、方法、用途和实现; 10.了解成本/效益分析方法; 11.了解需求分析过程中任务是什么. 12.理解面向数据流自顶向下逐步求精的方法和意义; 13.理解分析及建模的意义,需求分析中应该建立哪三种逻辑模型? 有哪些工具来帮助建立这些模型? 14.掌握实体关系(E-R)图的概念,内容和实现方法,能结合具体实例 建立实体关系图; 15.掌握状态图的概念,内容,实现方法和作用; 16.掌握层次方框图、warnier图、IPO图的概念,内容和作用; 17.有穷状态机的概念和内容; 18.总体设计是做什么?总体设计的过程是怎样的?总体结构设计的目的 是什么? 19.掌握几个设计原理,理解他们的内容和意义; 20.掌握耦合和内聚的概念和内容,理解这些原理对设计有哪些指导意义; 21.耦合包含了哪些类型?每个类型的具体内容是什么? 要求能通过程序代码识别出耦合类型。内聚类型有哪些?具体内容? 能识别应用。 22.启发性规则的内容及部分概念。深度,宽度,扇入,扇出,模块的作用域, 模块的控制域。 23.层次图、HIPO图和结构图的内容; 24.掌握面向数据流的设计方法,了解其中涉及到的概念(变换流,事务流), 结合例子理解变换分析的具体过程。 25.详细设计是做什么? 26.什么是结构程序设计? 27.人机界面设计问题包含哪些? 28.掌握设计过程中用到的工具:程序流程图的概念,内容和方法; N-S盒图的概念、内容和方法;会结合实例使用这些工具;掌握PAD 图的概念和内容; 掌握判定表的概念和内容。要结合实例来掌握它们。PDL 29.了解结合Jackson图来掌握面向数据结构的设计方法; 会用Jackson程序设计方法对具体的实例进行设计。 流图概念,会计算程序的环形复杂度。 30.掌握测试步骤中的内容:单元测试、集成测试、确认测试

软件工程综合应用例题

软件工程综合应用例题 本文档是软件工程综合应用的一个例题,旨在展示一个完整的 项目开发过程。本例题是一个简单的任务管理应用。本文档将详细 描述项目的需求分析、设计、实现和测试阶段,以及相关附件、法 律名词及注释。 1.需求分析阶段 1.1 需求概述 在这个任务管理应用中,用户可以创建、编辑和删除任务,设 置任务的截止日期和优先级,以及将任务分配给不同的用户。应用 还应该提供用户登录和注册功能。 1.2 功能需求 1.2.1 用户管理 - 注册:用户可以通过提供用户名和密码进行注册。 - 登录:已注册的用户可以使用用户名和密码进行登录。 1.2.2 任务管理 - 创建任务:用户可以创建新的任务,并为其设置标题、描述、截止日期和优先级。 - 编辑任务:用户可以编辑已存在的任务的信息。

- 删除任务:用户可以删除任务。 - 分配任务:用户可以将任务分配给其他用户。 1.2.3 任务列表 - 显示任务列表:用户可以查看当前所有的任务,包括任务的标题、截止日期和优先级。 2.设计阶段 2.1 系统架构设计 本应用将采用MVC(Model-View-Controller)架构,以实现逻辑层和数据层的分离。 - 模型(Model):负责处理数据部分,包括任务的增删改查操作。 - 视图(View):负责界面的展示和用户交互。 - 控制器(Controller):负责处理用户输入和调用模型进行相关操作。 2.2 数据库设计 应该设计一个数据库来存储用户信息和任务信息。用户表包括用户名和密码字段,任务表包括任务的标题、描述、截止日期和优先级字段,并包含一个用户ID字段(用于关联任务与用户)。

软件工程综合应用例题(题)

软件工程综合应用例题(题) 软件工程综合应用例题 1、引言 本文档旨在介绍软件工程综合应用的例题,包括需求分析、设计、编码、测试和项目管理等方面的内容。通过这些例题,读者将 能够深入理解软件工程的基本原理和综合应用。 2、需求分析 2.1 用户需求 在这一章节中,我们将对用户需求进行详细的分析和描述。这 包括用户的功能需求、非功能需求、用户界面和数据流等方面的要求。 2.2 系统需求 在这一章节中,我们将从整体角度对系统需求进行分析和描述。这包括系统的功能需求、性能需求、安全需求等方面的要求。 3、设计 3.1 系统架构设计 在这一章节中,我们将对系统的整体架构进行设计,包括系统 的模块划分、模块之间的接口设计等。

3.2 详细设计 在这一章节中,我们将对系统的各个模块进行详细设计,包括模块的功能描述、数据结构设计、算法设计等。 4、编码与测试 4.1 编码实现 在这一章节中,我们将对系统进行编码实现,包括编程语言的选择、代码规范的定义等。 4.2 单元测试 在这一章节中,我们将对系统的各个模块进行单元测试,以确保各个模块的功能正确实现。 4.3 集成测试 在这一章节中,我们将对系统的整体功能进行集成测试,以确保各个模块的协同工作正常。 4.4 系统测试 在这一章节中,我们将对整个系统进行系统测试,以确保系统达到用户的需求。 5、项目管理 5.1 时间计划

在这一章节中,我们将制定整个项目的时间计划,包括各个阶 段的工作内容、工作时间和工作人员的分配等。 5.2 资源管理 在这一章节中,我们将对项目的资源进行管理,包括人力资源、硬件资源、软件资源等的分配和管理。 5.3 风险管理 在这一章节中,我们将对项目的风险进行管理,包括风险的识别、评估和应对措施的制定等。 6、附件 本文档涉及的附件包括原始需求文档、系统架构图、详细设计 文档、测试用例和测试报告等。 7、法律名词及注释 7.1 法律名词 在本文档中,涉及到的法律名词包括但不限于:合同法、知识 产权法、劳动法等。 7.2 注释 在本文档中,涉及到的法律名词将在相应的位置进行注释说明,以便读者理解和运用。

软件工程试卷软件软件工程资料习题3

软件设计 例题分析 【例1】从下列有关系统结构图的叙述中选出正确的叙述。 (1) 系统结构图中反映的是程序中数据流的情况。 (2) 系统结构图是精确表达程序结构的图形表示法。因此,有时也可将系统结构当作程序流程图使用。 (3) 一个模块的多个下属模块在系统结构图中所处的左右位置是无关紧要的。 (4) 在系统结构图中,上级模块与其下属模块之间的调用关系用有向线段表示。这时,使用斜的线段和水平、垂直的线段具有相同的含义。 【例2】软件的开发工作经过需求分析阶段,进入( A )以后,就开始着手解决“怎么做”的问题。常用的软件设计方法有( B )、( C )、( D )和( E )等方法。 供选择的答案: A ~ B.①程序设计②设计阶段③总体设计④定义阶段 ⑤SD方法⑥SP方法 C. ①Jackson方法②瀑布法③快速原型法④回溯法 D ~ E. ①LCP(Wanier)方法②递归法③Parnas方法 ④自下而上修正⑤逐步求精法⑥检测校正法 【例3】请将下述有关模块独立性的各种模块之间的耦合,按其耦合度从低到高排列起来。 ①内容耦合②控制耦合③非直接耦合④标记耦合 ⑤数据耦合⑥外部耦合⑦公共耦合 【例4】请将下述有关模块独立性的各种模块内聚,按其内聚度(强度)从高到低排列起来。 ①巧合内聚②时间内聚③功能内聚④通信内聚 ⑤逻辑内聚⑥信息内聚⑦过程内聚 习题 【1】如何理解模块独立性?用什么指标来衡量模块独立性? 【2】模块独立性与信息隐蔽(反映模块化有效程度的属性)有何关系? 分析:所谓“模块独立性”是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的。所谓的“信息隐蔽”是指每个模块的实现细节对于其它模块来说是隐蔽的。也就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。 如果软件系统做到了信息隐蔽,即定义和实施了对模块的过程细节和局部数据结构的存取限制,那么这些模块相互间的接口就是简单的。这组模块的独立性就比较强。事实上,衡量模块独立性的一个准则就是模块内聚,达到信息隐蔽的模块是信息内聚模块,它是高内聚情形,模块独立性当然很强了。 一个对象的抽象数据类型,就是信息隐蔽的示例。例如,对于栈stack,可以定义它的操作makenull(置空栈)、push(进栈)、pop(退栈)、gettop(取栈顶)和empty(判栈空)。这些操作所依赖的数据结构是什么样的? 它们是如何实现的? 都被封装在其实现模块中。软件的其它部分可以直接使用这些操作,不必关心它的实现细节。一旦实现栈stack的模块里内部

软件工程综合应用例题(题)

综合应用例题 第一部分传统软件开发方法 1、某一8位计算机,其十六进制常数的定义为:以0x或0X开头的数是十六进制整数,其值的 X围是-7f至7f(大小写字母不加区别),如0x13,0X6A,-0x3c 。 请用等价类划分法设计测试用例。 2、下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。 int GetMax(int n, int datalist[ ]) { int k=0; for ( int j=1; j datalist[k] ) k=j; return k; } 画出该程序的程序流程图,并计算其McCabe复杂度。 3、有下列伪码程序: START INPUT (M,N) IF M>=10 THEN X:=10 ELSE X:=l ENDIF IF N>=20 THEN Y:=20 ELSE Y:=2 ENDIF PRINT(X,Y) STOP 设计该程序的语句覆盖和路径覆盖测试用例。 4、根据伪码程序画出程序流程图,盒图(N-S图)。 START a IF x1 THEN REPEAT UNTIL x2 b END REPEAT ELSE BLOCK c d END BLOCK END IF STOP 5、根据下列描述,画出教材征订系统的第一层数据流图。学生入学后到教材科订书,教材

科根据教材库存情况分析是否需要买书,如需购买,则向书店购买。各种资金往来通过学校的会计科办理。 6、画出下列伪码程序的程序流程图,盒图(N-S图)。 START IF p THEN WHILE q DO F END DO ELSE BLOCK g n END BLOCK END IF STOP 7、画出下面PDL伪码程序的程序流程图、N-S图、PAD图和程序流图,并计算其McCabe 复杂度。 WHILE P DO IF A>O THEN A1 ELSE A2 ENDIF; IF B>0 THEN B1; IF C>0 THEN C1 ELSE C2 ENDIF ELSE B2 ENDIF; B3 ENDWHILE; 8、根据下面伪码程序,设计语句覆盖、路径覆盖、边覆盖、判定覆盖、条件覆盖、点覆盖的测试用例。 PROCEDURE EX(A,B:REAL;VAR X:REAL); BEGIN IF(A=3)OR(B>1)THEN X:=A×B IF(A>2)AND(B=0)THEN X:=A-3 END 9、某培训中心要研制一个计算机管理系统。它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。 如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。 如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。 如果是付款的,则由财务人员在帐目文件上登记,也给学生一X收费收据。 要求: 1.对以上问题画出数据流程图。 2.画出该培训管理的软件结构图的主图。 10、教师申报科研成果的过程如下:

北京语言大学22春“计算机科学与技术”《软件工程》作业考核题库高频考点版(参考答案)试题号2

北京语言大学22春“计算机科学与技术”《软件工程》作业考核题库高频 考点版(参考答案) 一.综合考核(共50题) 1. 继承性是父类和子类之间共享数据结构和消息的机制,这是类之间的一种关系。() A.错误 B.正确 参考答案:A 2. 系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全测试及可靠性等测试。() A.错误 B.正确 参考答案:A 3. 软件维护的副作用主要有以下哪几种?() A.编码副作用数据副作用测试副作用 B.编码副作用数据副作用调试副作用 C.编码副作用数据副作用文档副作用 D.编码副作用文档副作用测试副作用 参考答案:C 4. 模块独立性准则由以下定性指标来衡量()。 A.分解度 B.耦合度 C.屏蔽性 D.内聚性 参考答案:BD

IDEF0图不反映出系统()。 A.系统做什么 B.系统功能如何实现 C.系统由谁来做 D.系统实现的约束条件 参考答案:B 6. 软件调试技术包括()。 A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试 参考答案:B 7. 关于白盒法覆盖程度的论述中正确的是()。 A.语句覆盖:选择测试用例使程序中每条语句至少被执行一次 B.判定覆盖:选择测试用例使程序中每个判定至少都获得一次“真”值和一次“假”值 C.条件覆盖:选择测试用例使每个条件都满足 D.条件组合覆盖:将所有的判定条件都组合起来执行 参考答案:AB 8. 面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。() A.错误 B.正确 参考答案:B 9. 为使程序中数据说明更易于理解和维护,必须遵循以下原则:() A.数据说明的次序应当规范化 B.一个语句说明多个变量时,各变量名按字母顺序排列

公务员考试专业科目:计算机——软件工程习题.

一.软件工程基本概念 【例1】在软件生命周期中,能准确确定软件系统的体系结构的功能 阶段是()。 (A)概要设计(B)详细设计 (C)需求分析(D)可行性分析 【答案】A 【例2】下面不是软件工程的3个要素的是()。 (A)过程(B)方法 (C)环境(D)工具 【答案】C 【考点解析】软件工程包括3个要素,即方法、工具和过程。 【例3】下面不属于软件工程的基本原则的是()。 (A)模块化(B)抽象 (C)局部化(D)自顶向上 【答案】D 【考点解析】软件工程原则包括抽象、模块化、信息隐蔽、局部化、确定性、一致性、完备性和可验证性。而自顶向上是软 件测试的内容,在后面章节将讨论到。 【例4】在软件工程原则中,要求在一个物理模块内集中逻辑上相互关联的计算机资源的是()。 (A)模块化(B)抽象 (C)局部化(D)一致性 【答案】C 【考点解析】软件工程原则包括抽象、模块化、信息隐蔽、局部化、确定性、一致性、完备性和可验证性。模块化是把一个 问题分解成若干个较小、较易解决的模块。抽象是采用 自顶向下,逐层细化的办法控制软件开发过程的复杂 性。局部化,要求在一个物理模块内集中逻辑上相互关 联的计算机资源。一致性。整个软件系统的各个模块均 使用一致的概念、符合和术语,系统规格说明与系统行 为一致性,用于形式化规格说明的公理系统的一致性。

【例5】下面不属于软件的组成的是()。 (A)程序(B)记录 (C)文档(D)数据 【答案】B 【考点解析】软件:计算机程序+数据+文档。软件是与计算机系统操作相关的程序、规程、规则及任何与之相关的文档和数 据。 【例6】在瀑布模型中,将软件划分为若干个时期,软件项目的可行性研究一般归属于()。 (A)维护时期(B)运行时期 (C)计划时期(D)开发时期 【答案】C 【考点解析】软件生命周期分为计划、开发、运行3个时期,每个时期又分成若干阶段。 计划期有:问题定义和可行性研究; 开发期有:需求分析、概要设计、详细设计、编码和测试; 运行期有:运行和维护。 【例7】在瀑布模型中,下面哪个是其突出的缺点。() (A)不适应平台的变动 (B)不适应算法的变动 (C)不适应用户需求的变动 (D)不适应程序语言的变动 【答案】C 【例8】软件开发环境由软件工具集和环境集成机制构成。下面不属环境集成机制的是()。 (A)控制集成(B)功能集成 (C)数据集成(D)界面集成 【答案】A 【考点解析】工具集包括支持软件开发相关过程、活动、任务的软件工具,以便对软件开发提供全面的支持。环境集成机制为工具集成和软件开发、维护与管理提供统一的支持,它通常包括数据集成、控制集成和界面集成3个部分。 【例9】软件工程的原则包括抽象、________、信息隐蔽、局部化、一致性、________、完备性和可验证性。

软件工程例题汇总

1.某旅馆的服务如下:可以拨分机号和外线号码。分机号是从7201至7299。外线号码 先拨9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从100到300中任意的数字串。市话号码是以局号和分局号组成。局号可以是455,466,888,552中任意一个号码。分局号是任意长度为4的数字串。 要求:写出在数据字典中,号码的数据流条目的定义即组成。 号码=[分机号|外线号码] 分机号=7201 (7299) 外线号码=9+[市话号码|长话号码] 长话号码=区号+市话号码 区号=100 (300) 市话号码=局号+分局号 局号=[455|466|888|552] 分局号=4{数字}4 数字=[0|1|2|3|4|5|6|7|8|9] 2.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行路径。 〔1〕语句覆盖测试用例 令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。 〔2〕判定覆盖 可以设计如下两组数据以满足判定覆盖: x=3,y=0,z=1〔1分〕〔通过路径abce〕; x=2,y=1,z=2〔1分〕〔通过路径acde〕。 或者 x=2,y=1,z=1;覆盖路径acde x=1,y=1,z=1;覆盖路径ace x=3,y=0,z=1;覆盖路径abce 〔注意:此题也还可以有其他答案〕 3.请用判定表画出以下问题的行为逻辑。 人们往往根据天气情况决定出门时的行装。天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。如果天气要下雨,出门时带上雨伞;如果天气变冷,出门时要穿上大衣。

4.对以下子程序进行调试: procedure example(y,z: real; var x: real) begin if (y>1) and (z=0) then x:=x/y; if (y=2) or (x>l) then x:=x+l; end. 该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。完成以下各题: (1)画出程序流程图。 (2)用条件组合覆盖设计测试用例,并写出其中一组测试用例。 答:〔1〕程序流程图 〔2〕用白盒法中条件组合覆盖设计测试用例: ①y=2, z=0, x=4; ②y=2, z=1, x=1; ③y=1, z=0, x=2; ④y=1, z=1, x=1. 〔注:也可有其它答案〕 5.选择排序的伪代码如下,请根据代码画出其PAD图。 select_sort(a[1],a[2],…,a[n]) { for(i=1;i

软件工程考点例题整理

软件工程考点例题整理

软件工程概述 软件 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。 软件的特点 1.Logical rather than physical(软件是一种逻辑实体,而非具体的物理实体) 2.Developed or Engineered, not manufactured in the classical sense (在研制、开发活动中被创造出来,但不能按传统的生产含义加以理解)3.Doesn't wear out(在软件的运行和使用期间,没有磨损、老化问题) 软件的发展 软件的发展可以分为这样三个阶段: 1.程序设计阶段,约为50至60年代 2.程序系统阶段,约为60至70年代 3.软件工程阶段,约为70年代以后

时期 特点 程序设计程序系统软件工程 软件 所指 程序程序及说明书程序、文档及数据主要 程序设计语言汇编及机器 语言 高级语言软件语言* 软件 工作 范围 程序编写包括设计和测试软件生存期 需求者程序设计者 本人 少数用户市场用户 开发 软件 的组 织 个人开发小组开发小组及大、中型软件开发机构 软件 规模 小型中、小型大、中、小型 决定 质量的因素个人程序设 计技术 小组技术水平管理水平 开发 技术和手段子程序、程序 库 结构化程序设计 数据库,开发工具,开发环境,工程 化开发方法,标准和规范,网络和分 布式开发,面向对象技术,软件过程 与过程改进 维护 责任 者 程序设计者开发小组专职维护人员 硬件特征价格高,存储 容量小,工作 可靠性差 降价,速度、存 储容量及工作可 靠性有明显提高 向超高速、大容量、微型化及网络化 方向发展 软件特征完全不受重 视 软件技术的发展 不能满足需求, 出现软件危机 开发技术有进步,但未获突破性进 展,价格高,未完全摆脱软件危机 软件危机 *软件需求增长得不到满足; *软件生产成本高,价格昂贵; *软件生产进度无法控制; *软件需求定义不准确,易偏离用户需求;

相关主题
相关文档
最新文档