软件工程》试题一、选择1、()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。
A 软件过程B 软件工具C 质量保证D 软件工程2、()是以追求更高的效益和效率为目标的持续性活动。
A 质量策划B 质量控制C 质量保证D 质量改进3、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。
除第 1级外,每一级都包含了实现这一级目标的若干关键过程域,每一个关键过程域又包含若干()。
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 软件测试二、问答题1、判断下列叙述的正确性,将结果(V正确,X错误)填入()中,并改正错误的说法。
(1). ()在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。
改正: __(2). ()在需求分析中,分析员要从用户那里解决的最重要的问题是明确软件做什么。
改正: __(3). ( )软件需求规格说明书在软件开发中具有重要的作用,是软件可行性分析的依据。
改正: __(4). ( )模型是对现实的简化,建模是为了更好地理解所开发的系统。
改正:(5). ( ) UML语言支持面向对象的主要概念,并与具体的开发过程相关。
改正:(6). ( )用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。
改正: __(7). ( )好的测试用例应能证明软件是正确的。
改正:(8). ( )白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。
改正: __(9). ( )当软件开发项目的进度有可能拖延时,增加开发人员并不能加快进度。
正:(10).()软件技术复审是由用户和测试人员实施的一种质量保证活动。
改正:2、你认为一个好的软件开发人员应具备哪些基本素质?3、需求工程包括哪些基本活动?每一项活动的主要任务是什么?4、为什么软件需要维护?简述软件维护的过程。
5、根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
"一个程序读入3个整数,它们分别代表一个三角形的3个边长。
该程序判断所输入的整数是否构成一个三角形,以及该三角形是一般的、等腰的或等边的,并将结果打印出来。
”要求:设三角形的3条边分别为A、B、C,并且(1)列出等价类表,格式如下:(2)设计测试用例,格式如下:用例n:输入【A, B, C】覆盖等价类……(列出等价类序号),输出结果为6、下图显示了配置管理中的存取和控制,请选择合适的答案,将其对应的序号填入()中。
供选择的答案:A:①软件工程人员②配置人员③质量保证人员B:④异步控制⑤同步控制⑥存取控制C〜D:⑦ 管理⑧ 登入⑨ 检出⑩ 填写变更请求7、UML关系包括关联、聚合、泛化、实现、依赖等5种类型,请将合适的关系填写在下列描述的()中。
①用例及其协作之间是()关系。
②在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是()关系。
③类A的一个操作调用类 B的一个操作,且这两个类之间不存在其他关系,那么类 A 和类B之间是()关系。
④在MFC类库中,Window类和DialogBox类之间是()关系。
⑤森林和树木之间是()关系。
8、下图显示了某个学校课程管理系统的部分类图,其中一个学生(student )可以知道所有注册课程的教师(in structor ),一个教师也可以知道所有注册课程的学生。
studentO.*.+Instructor-ivune; String-regBteiedliutnictors:In»trucior[]nutmr lorlD! bit -regkteiedStiijdjenis:StudciLt[]■+ getRegif lERdlnstiwlorsO:Iiutnirior[ 1■+^tKegistei]PdSiudffJLteO:Student []现在提出一个新的需求:哪一个是最好的?为什么?设计A:Candidate-name: String-candidateID:Int-student: B OU I E^IL-Uu true tor: B nolean-regisieipdCajididates: Candidate[)O.…++getRe^BteiedC3ndidates0: Cajididate []答案:设计最好。
理由:"一个教师也可以是某些课程的学生”,那么下面设计A~C中设计B:设计C:参考答案一、选择题答案1、a2、 d3、a4、c5、a6、b7、c8、b二、问答题答案1、判断下列叙述的正确性,将结果(V正确,x错误)填入( )中,并改正错误的说法。
(1). (X) 改正:在软件开发的过程中,一个错误修复和改正得越晚,为此所花费的代价就会越高。
(2). (V)(3). (X) 改正:软件可行性分析应在需求分析之前,因此,软件需求规格说明书不应成为软件可行性分析的依据。
⑷.(V)(5). (X) 改正:UML语言支持面向对象的概念,并独立于具体的开发过程。
(6). (V)(7). (X) 改正:好的测试用例在于能发现至今未发现的错误。
(8). (V)(9). (V)(10). (X)改正:软件技术复审是由软件开发人员实施的一种质量保证活动。
2、答:( 1)牢固掌握计算机软件的基本知识和技能;( 2) 善于分析和综合问题,具有严密的逻辑思维能力;( 3) 工作踏实细致,遵循标准和规范,具有严格的科学作风;( 4) 工作有耐心、有毅力、有责任心;( 5) 善于听取别人的意见,善于与周围人员团结协作,建立良好的人际关系;( 6) 具有良好的书面和口头表达能力。
3、答:( 1 )需求获取(问题识别):采集、识别和提取用户的需求,对问题和需求形成文档化的描述,使各种人员达成一致的理解和认可。
( 2) 需求分析:分析和综合所采集的信息,建立系统的详细逻辑模型。
( 3) 需求规格说明:编写软件需求规格说明书,明确、完整和准确地描述已确定的需求。
( 4) 需求验证:评审软件需求规格说明,以保证其正确性、一致性、完备性、准确性和清晰性。
( 5) 需求管理:定义需求基线,在整个项目过程中跟踪需求状态及其变更情况。
4、答:在软件开发完成交付用户使用后,为了保证软件在一个相当长的时期能够正常运行,就需要对软件进行维护。
软件维护的过程:( 1 ) 确认维护要求。
(2)对于改正性维护申请,评价错误的严重性。
对于严重的错误,立即安排人员,分析问题原因,进行 " 救火" 性的紧急维护;对于不严重的错误,根据任务情况和轻重缓急进行统一安排。
(3)对于适应性和完善性维护申请,需要确定申请的优先级,然后安排维护工作。
并不是所有的完善性维护申请都必须承担,需要考虑商业需要、现有资源、未来发展方向等进行决定。
5、答:1 ) 列出等价类表1, 2, 3, 4, 5, 6),输出结果为构成一般三角形。
6、答:7、答:①实现②关联③依赖④泛化⑤聚合 8、答: 设计C 最好。
学生和教员均可以从 Candidate 类继承而来; 抽象出 Role 类,使 Candidate 类与 Role 类之间形成多对多的关联关系,实现了 " 一个人既是教师又是某门课的学生 "这个需 求。
用例1 :输入【3, 4, 5】覆盖等价类 输入【0 , 1, 2】 覆盖等价类( 2) 输入【1 , 0 , 2】 覆盖等价类( 2) 输入【1 , 2 , 0】 覆盖等价类( 2) 用例3:三者取一输入【1 , 2 , 3】 覆盖等价类( 3) 输入【1 , 3 , 2】 覆盖等价类( 3) 输入【3 , 1, 2】 覆盖等价类( 3) 用例4:三者取一输入【3,3,4】覆盖等价类(1) 输入【3, 4,4】覆盖等价类(1) 输入【3, 4, 3】覆盖等价类(1) 用例5:输入【3, 4, 5】覆盖等价类( 用例6:输入【3, 3, 3】覆盖等价类( 用例7:三者取一输入【3, 4, 4】覆盖等价类(1) 输入【3, 4, 3】覆盖等价类(1)输入【3, 3, 4】覆盖等价类(1),输出结果为不构成三角形。
,输出结果为不构成三角形。
,输出结果为不构成三角形。
,输出结果为不构成三角形。
输出结果为不构成三角形。
,输出结果为不构成三角形。
(4),输出结果为等腰三角形。
(4),输出结果为等腰三角形。
(4),输出结果为等腰三角形。
1)( 5),输出结果为不是等腰三角形。
1)( 6),输出结果为等边三角形。
(4)( 7),输出结果为不是等边三角形。
(4)( 7),输出结果为不是等边三角形。
用例2:三者取一。