1、二、 填空题1、 在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是关联关系。2、 类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是依赖关系。3、 用例及其协作之间是实现关系。4、接口及其实现类或构件之间是实现关系。5、 动物与老虎之间是泛化关系。三、 问答题1、 软件复用的范围不仅仅涉及源程序代码,请至少列出5种可能复用的软件元素。可复用的软件元素包括(选5种): 项目计划、成本估计、体系结构、需求模型和规格说明、设计、用户文档和技术文档、用户界面、数据结构、测试用例。2、 传统瀑布模型的主要缺陷是什么?试说明造成缺陷的原
2、因。传统的主要缺陷及其原因:在项目的早期,用户常常很难清楚地给出所有需求,瀑布模型却要求如此。由于瀑布模型的特点,早期的错误直到开发晚期才能被发现,开发的风险较大。3、某学校需要开发一个学生成绩管理系统,教务人员可以通过该系统维护学生信息、课程信息和成绩信息,学生可以随时查询自己的成绩单,该系统的实体关系图如下所示:请问图中是否应该增加教务人员?试说明理由。不应该增加,因为教务人员只是该系统的一个使用者,系统不处理其属性信息。4、下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。int GetMax(int n, int datalist )int k=0;f
3、or ( int j=1; j datalistk ) k=j;return k;(1) 画出该程序的控制流图,并计算其McCabe环路复杂性。控制流图如下,McCabe环路复杂性为3。(2) 用基本路径覆盖法给出测试路径。测试路径:Path1: Path2: Path3: (3) 为各测试路径设计测试用例。测试用例: Path1: 取n=1,datalist0 = 1, 预期结果:k=0 Path2: 取n=2,datalist0 = 1,datalist1 = 0, 预期结果: Path3: 取n=2,datalist0 = 0,datalist1 = 1, 预期结果:k=15、下图显示了
4、某个学校课程管理系统的部分类图,其中一个学生(student)可以知道所有注册课程的教师(instructor),一个教师也可以知道所有注册课程的学生。现在提出一个新的需求:一个教师也可以是某些课程的学生,那么下面设计AC中哪一个是最好的?为什么?设计B是最好的。学生和教员均可以从Candidate类继承而来;抽象出Role类,使Candidate类与Role类之间形成多对多的关联关系,实现了一个人既是教师又是某门课的学生这个需求。设计A:设计B:设计C:6、 所谓分层体系结构是按层组织软件的一种软件体系结构,其中每层软件建立在低一层的软件层上,下图显示了一种分层体系结构。请选择正确的答案,将
5、其对应的序号填入图中的( )。供选择的答案: 高效性 通用性 保密性 专用性 系统软件 中间 件 应用软件 支撑软件 特定业务 子系统窗体底端、(A)是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。A 软件过程B 软件工具C质量保证D 软件工程、(D )是以追求更高的效益和效率为目标的持续性活动。A 质量策划B 质量控制 C质量保证 D质量改进、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。除第1级外,每一级都包含了实现这一级目标的若干关键过程域,每一个关键过程域又包含若干(A)。A关键实践B 软件过程性能C
6、软件过程能力 D软件过程、在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,(C)是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。A 业务需求B 功能要求C 非功能需求D 用户需求、(A)意味着一个操作在不同的类中可以有不同的实现方式。A 多态性B 多继承C 类的复用D 封装、在面向对象的系统中,系统责任的良好分配原则是(B)。A在类之间均匀分配B 集中分配在少数控制类中C根据交互图的消息进行分配 D根据个人喜好进行分配、软件配置项是软件配置管理的对象,即软件工程过程中产生的(C)。A 接口B软件环境C信息项D版本
7、、软件测试计划开始于需求分析阶段,完成于(B)阶段。A需求分析B软件设计C 软件实现D 软件测试二、问答题、判断下列叙述的正确性,将结果(正确,错误)填入( )中,并改正错误的说法。(1).()在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。 改正:在软件开发的过程中,一个错误修复和改正得越晚,为此所花费的代价就会越高。 (2).()在需求分析中,分析员要从用户那里解决的最重要的问题是明确软件做什么。(3).()软件需求规格说明书在软件开发中具有重要的作用,是软件可行性分析的依据。 改正:软件可行性分析应在需求分析之前,因此,软件需求规格说明书不应成为软件可
8、行性分析的依据。(4).()模型是对现实的简化,建模是为了更好地理解所开发的系统。(5).()UML语言支持面向对象的主要概念,并与具体的开发过程相关。UML语言支持面向对象的概念,并独立于具体的开发过程。(6).()用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。(7).()好的测试用例应能证明软件是正确的。好的测试用例在于能发现至今未发现的错误。(8).()白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。(9).()当软件开发项目的进度有可能拖延时,增加开发人员并不能加快进度。(10).()软件技术复审是由用户和测试人员实施的一种质量
9、保证活动。软件技术复审是由软件开发人员实施的一种质量保证活动。、你认为一个好的软件开发人员应具备哪些基本素质?答:(1)牢固掌握计算机软件的基本知识和技能; (2) 善于分析和综合问题,具有严密的逻辑思维能力; (3) 工作踏实细致,遵循标准和规范,具有严格的科学作风; (4) 工作有耐心、有毅力、有责任心; (5) 善于听取别人的意见,善于与周围人员团结协作,建立良好的人际关系;(6) 具有良好的书面和口头表达能力。、需求工程包括哪些基本活动?每一项活动的主要任务是什么?(1)需求获取(问题识别): 采集、识别和提取用户的需求,对问题和需求形成文档化的描述,使各种人员达成一致的理解和认可。(
10、2) 需求分析: 分析和综合所采集的信息,建立系统的详细逻辑模型。(3) 需求规格说明: 编写软件需求规格说明书,明确、完整和准确地描述已确定的需求。(4) 需求验证: 评审软件需求规格说明,以保证其正确性、一致性、完备性、准确性和清晰性。(5) 需求管理: 定义需求基线,在整个项目过程中跟踪需求状态及其变更情况。、为什么软件需要维护?简述软件维护的过程。在软件开发完成交付用户使用后,为了保证软件在一个相当长的时期能够正常运行,就需要对软件进行维护。 软件维护的过程:(1) 确认维护要求。 (2) 对于改正性维护申请,评价错误的严重性。对于严重的错误,立即安排人员,分析问题原因,进行救火性的紧
11、急维护;对于不严重的错误,根据任务情况和轻重缓急进行统一安排。 (3) 对于适应性和完善性维护申请,需要确定申请的优先级,然后安排维护工作。并不是所有的完善性维护申请都必须承担,需要考虑商业需要、现有资源、未来发展方向等进行决定。、根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。一个程序读入3个整数,它们分别代表一个三角形的3个边长。该程序判断所输入的整数是否构成一个三角形,以及该三角形是一般的、等腰的或等边的,并将结果打印出来。要求:设三角形的3条边分别为A、B、C,并且(1) 列出等价类表,格式如下:输入条件 有效等价类 无效等价类 是否构成一个三角形(1)A0且B0且C
12、0且ABC且BCA且ACB。(2)A0或B0或C0(3)ABC或ACB或BCA是否等腰三角形(4)AB或AC或BC(5)AB且AC且BC是否等边三角形(6)AB且AC且BC(7)AB或AC或BC(2) 设计测试用例,格式如下:用例n:输入【A,B,C】覆盖等价类(列出等价类序号),输出结果为。用例1:输入【3,4,5】覆盖等价类(1,2,3,4,5,6),输出结果为构成一般三角形。用例2:三者取一输入【0,1,2】覆盖等价类(2),输出结果为不构成三角形。 输入【1,0,2】覆盖等价类(2),输出结果为不构成三角形。 输入【1,2,0】覆盖等价类(2),输出结果为不构成三角形。用例3:三者取一
13、输入【1,2,3】覆盖等价类(3),输出结果为不构成三角形。 输入【1,3,2】覆盖等价类(3),输出结果为不构成三角形。 输入【3,1,2】覆盖等价类(3),输出结果为不构成三角形。用例4:三者取一输入【3,3,4】覆盖等价类(1)(4),输出结果为等腰三角形。 输入【3,4,4】覆盖等价类(1)(4),输出结果为等腰三角形。 输入【3,4,3】覆盖等价类(1)(4),输出结果为等腰三角形。用例5:输入【3,4,5】覆盖等价类(1)(5),输出结果为不是等腰三角形。用例6:输入【3,3,3】覆盖等价类(1)(6),输出结果为等边三角形。用例7:三者取一输入【3,4,4】覆盖等价类(1)(4)
14、(7),输出结果为不是等边三角形。 输入【3,4,3】覆盖等价类(1)(4)(7),输出结果为不是等边三角形。 输入【3,3,4】覆盖等价类(1)(4)(7),输出结果为不是等边三角形。、下图显示了配置管理中的存取和控制,请选择合适的答案,将其对应的序号填入( )中。A B C D A: 软件工程人员 配置人员 质量保证人员B: 异步控制 同步控制 存取控制CD: 管理 登入 检出 填写变更请求、UML关系包括关联、聚合、泛化、实现、依赖等5种类型,请将合适的关系填写在下列描述的( )中。 用例及其协作之间是(实现)关系。 在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学
15、生和课程之间是(关联)关系。 类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是(依赖)关系。 在MFC类库中,Window类和DialogBox类之间是(泛化)关系。 森林和树木之间是(聚合)关系。、下图显示了某个学校课程管理系统的部分类图,其中一个学生(student)可以知道所有注册课程的教师(instructor),一个教师也可以知道所有注册课程的学生。,那么下面设计AC中哪一个是最好的?设计C最好。 学生和教员均可以从Candidate类继承而来; 抽象出Role类,使Candidate类与Role类之间形成多对多的关联关系,实现了设计A:设计C:、
16、在软件生存周期的瀑布模型中一般包括计划、(C)、设计、编码、测试、维护等阶段。A 可行性分析B 需求采集C 需求分析D 问题定义、ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。A 质量控制B 质量管理C 质量策划D 质量改进 3. 软件工程的基本要素包括方法、工具和(A)。A过程B 软件系统C 硬件环境D 人员 4. 软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。A 固有的B 人为的C 可消除的D 不可降低的 5. 软件需求分析阶段的测试手段一般采用(C)。A总结B 阶段性报告C 需求分析评审D 不测试 6. (C)是把对象的属性和操作
17、结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。A多态性 B继承 C 封装D 消息 7. 协作图反映收发消息的对象的结构组织,它与(D)是同构的。A用例图B类图C 活动图D 时序图 8. 软件测试是为了(B)而执行程序的过程。A纠正错误B发现错误C 避免错误D 证明正确 9. 面向对象分析是对系统进行(A)的一种方法。A需求建模B 程序设计C 设计评审D 测试验收 10. 在结构化分析方法中,(C)表达系统内部数据运动的图形化技术。A 数据字典B 实体关系图C 数据流图D 状态转换图、在项目计划发生延迟的情况下,增加更多的程序员一定会加快进度。、
18、软件错误可能出现在开发过程的早期,越早修改越好。对 、不完善的系统定义往往是导致软件项目失败的主要原因。对、一个成功的项目唯一提交的就是运行程序。、只有质量差的软件产品才需要维护。、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。、一个好的测试用例在于能发现至今未发现的错误。、面向对象的分析是面向计算机系统建立软件系统的对象模型。、软件工作的考虑范围主要是程序设计和实现。、等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。二、 问答题、(共10分)下图显示了McCall质量模型,请选择正确的答案,并将其对应的序号填入图中的括号(
19、3596)。 高效性 通用性 可测试性 专用性 可复用性 可使用性 应用软件 支撑软件 正确性 硬件环境、(共10分)UML关系包括关联、聚合、泛化、实现、依赖等5种类型,请将合适的关系填写在下列描述的( )中。1. 在学校中,一个导师可以指导多个研究生,一个研究生可以由多个导师指导,那么导师和研究生之间是(关联)关系。2. 交通工具与卡车之间是(泛化)关系。3. 公司与部门之间是(聚合)关系。4. 图形与矩形之间是(泛化)关系。5. 参数类及其实例类之间是(实现)关系。、(共20分)回答下列问题:1. 软件工程的基本目标是什么?软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件
20、,其主要目标如下:(1) 合理预算开发成本,付出较低的开发费用;(2) 实现预期的软件功能,达到较好的软件性能,满足用户的需求;(3) 提高所开发软件的可维护性,降低维护费用;(4) 提高软件开发生产率,及时交付使用。2. 原型化方法主要用于解决什么问题?试说明这种方法的主要优缺点。建立原型的主要原因是为了解决在产品开发的早期阶段需求不确定的问题,用户、经理和其他非技术项目风险承担者发现在确定和开发产品时,原型可以使他们的想象更具体化。原型在软件开发过程中可以起到以下主要作用:(1) 明确并完善需求 原型作为一种需求工具,它初步实现所理解的系统的一部分。用户对原型的评价可以指出需求中的许多问题
21、,在你开发真正产品之前,可以最低的费用来解决这些问题。(2) 探索设计选择方案 原型作为一种设计工具,用它可以探索不同的用户界面技术,使系统达到最佳的可用性,并且可以评价可能的技术方案。(3) 发展为最终的产品 原型作为一种构造工具,是产品最初子集的完整功能实现,通过一系列小规模的开发循环,你可以完成整个产品的开发。3. 在下列用例图中,哪些是系统角色?Bank network、Manager、Clerk、(共20分)下面是一段插入排序的程序,将Rk+1插入到R1k的适当位置。R0 = Rk+1; j = k;while (Rj R0)Rj+1 = Rj;j-;Rj+1 = R0;用路径覆盖方
22、法为它设计足够的测试用例(while循环次数为0、1、2次)。画出该程序的流程图:测试用例设计循环次数输 入 数 据预 期 结 果覆 盖 路 径jRi-2 Ri-1RiRi+1R0约束路 径i-12=4i-21 单项选择题1. 哪个活动可在可行性分析阶段进行?(D) A.编码 B.测试 C.设计 D.制订市场营销计划2. 在数据流程图中,有名字及方向的成分是(C)。 A.控制流 B.信息流 C.数据流 D.信号流3. 以下各图中不是UML使用的图是(A)。 A.数据流程图 B.用例图 C.类图 D.顺序图4. 下图中,类的关系是(A)。 A.依赖 B.关联 C.聚集 D.泛化5. 甘特图是一种
23、(D)。 A.UML模型 B.过程模型 C.系统构架的抽象模型 D.进度计划的表达方式6. 下面不属于软件配置管理任务的是(D)。 A.变更控制 B.配置审核 C.状态报告 D.用例分析7. 数据耦合、公共耦合、印记耦合、控制耦合的耦合性从低到高的顺序是(B) A.数据、公共、印记、控制 B.数据、印记、控制、公共C.控制、数据、印记、公共 D.控制、数据、公共、印记8. 软件需求分析的主要任务是准确地定义出要开发的软件系统是(C)A.如何做 B.怎么做C.做什么D.对谁做 9. 可行性分析研究的目的是(B)A.争取项目B.项目值得开发否C.开发项目D.规划项目10. 具有风险分析的软件生存周
24、期模型是(C)A.瀑布模型B.喷泉模型C.螺旋模型D.增量模型11. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C) A.软件工程 B.软件周期C.软件危机D.软件产生12. 程序的三种基本控制结构的共同特点是(C)A只能用来描述简单程序 B不能嵌套使用C单入口,单出口D仅用于自动控制系统13. 数据字典是用来定义_中的各个成份的具体含义的。A流程图B功能结构图C系统结构图D数据流图14. 为了使软件具有清晰结构和良好的风格,下面关于程序设计风格的叙述不可取的有(C)A. 尽量不要进行浮点数的相等比较B. 应当有适量的注释C. 尽可能对代码优化D. 使用有意义的标识符15. 使用白盒技术设计测试用例的方法包括(B)A.边界值分析B.循环测试C.等价类划分D.回归测试16. 下列模块内聚中,内聚性最强的是(A)。A.功能内聚 B.偶然内聚 C.过程内聚 D.顺序内聚17. 若有一个计算类型的程序,它的输入量只有一个X,其范围是-1.0,1.0,现从输入的角度考虑
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1