资源描述
、参考文献:软件工程原理、方法与应用(第三版),史济民编著,高等教育出版社UML基础与Rose建模教程,蔡敏等编著,人民邮电出版社.参考软件:Rational Rose Enterprise 2003.、考试时间待定:一、填空题示例 1、计算机中的对象是:具有唯一对象名和固定对外接口的一组属性和操作的集合,用来模拟组成或影响现实世界的一个或者一组因素 2、对象的属性表示对象的特征,即状态信息,对象的方法或者操作表示对象的特征,即施加在属性上的行为。3、 接口 是对象与约定好的运行框架和消息机制中与外界通信的通道。4、 是一种抽象数据类型,对象是用类这种抽象数据类型定义的变量,因此对象是类的具体实现。5、在面向对象的分析和设计过程中,不同类的对象对同一个消息作出响应,执行不同的处理,这种现象称为:。6、继承机制定义了派生类(子类)与基类(父类)之间的关系,即基类的属性和操作被派生类通过继承的方式实现共享。7、内聚度是信息隐蔽和局部化概念的自然扩展,它标志一个模块内部各成分彼此结合的紧密程度。如果模块内所有成分形成一个整体,完成单个功能,则称 功能性 内聚,它是最高程度的内聚形式,软件的模块设计应遵循追求 内聚 耦合的原则。 8、类和对象显示了系统的静态结构,在中类与类之间的关系需要用图来表示。 9、关联 关系表示:模型元素实例之间的固定对应关系,为永久性的结构关系; 关系表示模型元素之间的一般与特殊关系, “特殊”元素是“一般”元素的特殊化。 10、ational Rose Enterprise2003的视图分为如下类: view, Logic View, View,Deployment View.11、ational Rose Enterprise2003在Use Case 视图模式下,可以创建如下种类的图: Diagram, Class Diagram, Diagram,Sequence Diagram, StateChart Diagram activity Diagram。12、ational Rose Enterprise2003在Component 视图模式下,只能创建: Diagram.13、OOA分析进行静态建模时,需要创建:图,和对象图。14、OOA分析进行动态建模时,可以根据需要创建:图、图、状态转换图和活动图。15、ational Rose 模型文件的扩展名是 .Rational Rose 是菜单驱动的应用程序。它的界面分部分:Browser 窗口, 窗口,和Document 窗口.16、ational Rose启动后,进入ational Rose2003主界面前,首先弹出的Create New Model对话框,该对话框有个选项卡,如果要新建一个模型应该选择 ( 选择New,Exiting,或者Recent)选项卡. 为了建造新的模型,必须选择一个与将要建造系统的目标和结构相对应的模板。新的模型将用所选择模板定义的一组模型元素进行初始化。17、软件是计算机操作系统有关的 程序 、规程、规章以及与之相关的文档和数据。其中 程序 和数据是机器可执行的,而文档是机器不可执行的。18、软件生存周期划分为3个过程共9个阶段,9个阶段有: 可行性研究 、需求分析、概要设计 、 详细设计 、实现、组装测试、验收测试、使用与维护、退役。19、结构化开发方法的分析模型主要三种模型组成,它们是: 功能 模型 , 数据模型,行为模型,它们以 数据字典 为核心。20、内聚度是信息隐蔽和局部化概念的自然扩展,它标志一个模块内部各成分彼此结合的紧密程度。偶然性内聚属于 低 (选择:“高”或“低”)内聚。21、如果两个程序模块中有公共的代码段,则属于 内容 耦合,如果两个模块通过传递普通变量的参数联系在一起,称为数据耦合。22、螺旋模型的每一个周期都包括:计划(需求定义)、 风险分析 、工程实现 和评审4个阶段。23、利用语言进行面向对象动态建模时,可以根据需要创建:图、协作图、状态转换图和活动图。24、动态测试是指事先设计好一组测试用例,然后通过运行程序来发现错误。分为两种测试方法:黑盒测试和白盒测试。集成测试宜用 黑盒 测试方法进行。为了便于对照,测试用例应由 输入数据 和预期的输出结果两部分构成。25、模型元素之间的关联关系表示:模型元素实例之间的固定且永久的(选择“固定且永久的”或“可变且临时的”)对应关系; 范化关系表示模型元素之间的一般与特殊关系, “特殊”元素是“一般”元素的特殊化。26、用例模型要给出如下场景:参与者、用例和系统,即软件的抽象表示。27、软件是计算机操作系统有关的程序、规程、规章以及与之相关的文档和数据。其中程序和数据是机器可执行的,而文档是机器不可执行的。28、软件生存周期可划分为3 个过程共9个阶段,其中软件定义过程包括: 可行性分析 , 需求分析 两个阶段。29、研究算机系统的技术可行性的常用工具有: 数学建模 、 原型建造 和模拟。30、加工说明是对DFD中的每个加工所做的说明,描述加工逻辑的工具有: 结构化语言 ; 判定表 ;判定树 。31、需求分析阶段的成果是: 系统规格说明书 ,用户手册和验收测试计划等文档。32、软件可行性研究阶段的任务主要是研究:经济可行性,技术可行性, 运行操作 可行性、法律可行性和 方案选择 等。33、SD方法约定用矩形框表示模块,用带箭头的连线表示调用关系,源模块是不调用其他模块的传入模块,而控制模块是 调用其它模块但是不被其他模块调用的 模块。34、黑盒测试方法主要测试软件是否满足 性需求。压力测试主要测试软件是否满足 需求。动态测试是指事先设计好一组测试用例,然后通过运行程序来发现错误。分为两种测试方法:黑盒测试和白盒测试。单元测试宜用 白盒 测试方法进行。35、软件定义的基本任务是确定软件系统的工程需求 ;软件定义可分为: 软件系统的可行性研究和需求分析两个阶段 ;可行性论证的主要内容包括:技术可行性、 操作 可行性、 经济 可行性。36、内聚度是信息隐蔽和局部化概念的自然扩展,它标志一个模块内部各成分彼此结合的紧密程度。如果模块内所有成分形成一个整体,完成单个功能,则称 功能性 内聚,37、OOA分析进行静态建模时,需要创建:用例图,类图和对象图。38、在面向对象的分析与设计中, 接口 是对象与约定好的运行框架和消息机制中与外界通信的通道。二、 不定项选择题示例 1、如果两模块间通过参数交换信息,而信息仅限于数据,则称这两模块为 耦合。A 特征耦合; B数据耦合; C 非直接耦合; D 内容耦合。 2、关于需求规格说明书SRS的作用,说法错误的是: 。 A 是开发者与客户之间事实上的技术合同; B 是开发者下一步设计和编码的基础; C 是编写可行性分析的依据; D 是测试验收目标系统的依据。D 详细的单元测试报告等文档。3、下列哪些模型是在开发初期只给出基本需求的渐进模型: 。A 瀑布模型; B 原型模型; C 螺旋模型; D 喷泉模型。4、按照的语义,的模型按照抽象层次可以分为层,分别是: 。A 元元模型; B 元模型; C 模型; D 系统模型 ;用户模型。5、关于类与类之间的关系,说法正确的是:。依赖关系表示两个或者多个模型之间语义上的关系,只将模型元素本身连接起来,不需要用一组实例表示它的意思; UML定义了种依赖关系,分别是使用依赖、抽象依赖、授权依赖和绑定依赖;关联关系是一种结构关系,它指明一个事物的对象与另一个事物对象之间的联系,即关联关系描述了系统中对象或实例之间的离散连接;关联关系的任何一个连接点都叫做关联短,与类有关的许多信息都附加在它的端点上。6、可行性研究在经过技术评审通过后,还要进行由项目管理部门和客户方负责人参加的管理复审。管理复审主要解决的问题有: ABCE 。A 系统是否有稳定的商业需求、经济和社会效益;B 系统开发是否还有其他的选择方案;C 系统各部分开发风险如何;D 关键技术是否已经攻克;E 系统开发所需资源是否具备,成本和进度计划是否合理等。 7、用结构化软件开发方法开发软件的过程中,设计试阶段的成果有: ABD 。 A 概要设计说明书; B 详细设计说明书; C 按一定规则存在盘上的通过单元测试的各功能模块的集合;D 单元测试计划。8、关于面向对象的开发方法,描述正确的是: 。A 可提高软件的可复用性;B 可提高软件的可扩展性;C 便于实现抽象和信息隐藏,提高软件的可维护性;D 在许多方面胜过面向过程的软件开发方法,有助于解决软件危机。9、关于编写测试用例的等价类划分法,说法正确的是: ABC 。 A 等价类划分的思想是将输入数据按有效的(合理的)和无效的(不合理的)划分成若干个等价类,认为测试等价类中的一个代表值的结果就等于对该类其他值的测试; B 如果规定了输入值的范围,则可划分出一个有效的等价类(输入值在此范围内)和两个无效的等价类; C 如果规定了数据输入的个数,则可划分出一个有效的等价类(输入值的个数符合规定)和两个无效的等价类; D 如果规定了输入数据必须遵循的规则,则只能划分出一个有效的等价类(符合规则)。10、下列选项中属于动态测试方法的有: B 。A 代码走查; B 白盒测试; C计算机辅助静态分析法; D 黑盒测试。11、如果两模块间通过参数交换信息,而信息仅限于数据,则称这两模块为 耦合。A 特征耦合; B非直接耦合; C 数据耦合; D 内容耦合。12、关于需求规格说明书SRS的作用,说法错误的是: C 。 A 是开发者与客户之间事实上的技术合同; B 是开发者下一步设计和编码的基础; C 是编写可行性分析的依据; D 是测试验收目标系统的依据。13、下列哪些模型是在开发初期只给出基本需求的渐进模型: CD 。A 原型模型; B 瀑布模型; C 螺旋模型; D 喷泉模型。14、按照的语义,的模型按照抽象层次可以分为层,层次最低的和最高的分别是: 和 E 。A;元模型 B 元元模型; C 模型; D 系统模型 ;用户模型。15、对下面的流图进行路径覆盖测试,说法正确的是: ABDE 。1234756A 流图的环形复杂度量V(G)=4; B 基本路径个数为4;C 基本路径个数为5;D 环形复杂度量的计算公式为V(G)=E-N+2,其中E和N分别为流图中的边数和节点个数;E 对上述流图对应的算法进行测试时,穷举测试是不可能的。16、如果两模块间共享一段代码段,则称这两模块为 耦合,模块间的这类耦合是需要尽量避免的。A 特征耦合; B数据耦合; C 内容耦合; D 非直接耦合。17、在面向对象的分析和设计中,要求不同类的对象对同一个消息作出响应,执行不同的处理,这种现象称为:。 聚合; B范化;多态; 继承。18、面向对象设计的任务有: 。系统架构设计,确定软件的体系结构;、系统元素设计系统元素包括组成系统的类、子系统与接口、包等。系统元素设计是对系统的每一个元素进行详细设计。、用例设计,设计软件中的典型用例;、以上都不正确。19、在用基本路径法进行设计测试用例时,需要计算程序流图的环形复杂度量,下面的方法中 ABC 是正确的求环形复杂度量的方法。A 环形复杂度量V(G)=流图中边数-节点数+2;B 环形复杂度量V(G)=流图中不联通的区域数;C 环形复杂度量V(G)=流图中谓词节点数+1;D 以上都不对。20、关于时序图,说法正确的是:。时序图表示参与通信的各个对象之间如何发送消息;在ational Rose 2003中,在usecase 和ogic 两种视图模式下均可创建时序图。时序图表示一个对象之间是如何进行状态转换的;时序图中可以看出参与通信的各个对象生命线的长短。21、下列选项中不属于的动态图的是: 。 A 状态图; B 类图; C 时序图; D 活动图。22、关于可行性分析不正确的是: B 。 A 可行性分析应该分析经济可行性; B 可行性分析是在初步的需求定义之后进行,因此可以先完成需求后在进行可行性分析; C 技术可行性也非常重要; D 可行性分析不应忘记研究多种开发方案。23、 在以下模块耦合类型中,模块之间耦合性最高的是 。 A 无直接耦合; B 标记耦合; C 控制耦合; D 内容耦合; 24、关于测试原则描述错误的是: D 。 A 应该尽早和不间断的进行测试; B 测试用例中既要测试合理的输入数据,也要测试不合理的数据输入; C 测试之前需要制定合理的计划,防止随意性; D 应该对每个模块花费相同的时间和精力进行测试,只有这样才能发现所有的错误。 25、下列测试那个阶段是由软件的用户方参与完成的: 。 A 集成测试; B 系统测试; C 单元测试; D 验收测试三、 简答题示例 1、请简述面向对象设计的任务有哪些?。答案:面向对象设计的任务有: 系统架构设计系统架构是指系统主要组成元素的织组或结构,以及其他全局性决策,组织元素之间通过接口进行交互。例如:不同抽象层次上选择组成系统的结构元素,并确定它们之间的接口,指导开发组织的架构风格等。主要包括个方面的活动: 系统高层结构设计; 确定设计元素; 确定任务管理策略; 实现分布式机制; 设计数据存储方案; 人机界面设计; 系统元素设计系统元素包括组成系统的类、子系统与接口、包等。系统元素设计是对系统的每一个元素进行详细设计。 2、请简述利用OOD方法定义子系统接口的步骤。答案: 为系统确定一个备选接口集。将子系统职责按照相关性和耦合度分组,形成初始的接口集,同时为每一个职责定义一个操作; 寻找接口之间的相似点。从备选接口集中寻找相似的名称、相似的职责、相似的操作。如果在几个接口中存在相同的操作,则重新分解接口的要素,并抽取共同的操作组成一个新的接口,并尽可能复用这些接口; 定义接口之间的依赖关系。每个接口操作的参数与返回值都有特定的类型,如果参数是某一特定接口的对象,则需要定义该接口与它依赖的接口之间的依赖关系。这种依赖关系可以为架构师提供有用的耦合信息,因为接口的依赖关系定义了设计模型元素中各个元素间的依赖关系。 将结构映射到子系统。接口一旦确定,应该创建子系统与它所实现的接口间的实现关联关系。子系统内部可能存在多个实现接口的操作,架构师可以改进这些子系统接口的实现,设计师可以指定修改实现接口操作的具体元素。3、简述由著名的软件工程专家B. W. Boehm于1983年提出的软件工程的7条基本原理。(10分)答案:(1)用分阶段的生存周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4) 采用现代程序设计技术;(5) 结果应能清楚地审查;(6) 开发小组的人员应少而精;(7) 承认不断改进软件工程实践的必要性.遵循上述7条基本原理,就能够较好地实现软件的工程化生产。但是,软件工程不能停留在已有的技术水平上,应积极主动地采纳或创造新的软件技术,要注意不断总结经验,收集工作量、进度、成本等数据,并进行出错类型和问题报告的统计。这些数据既可用来评估新的软件技术的效果,又可用来指明应优先进行研究的软件工具和技术。4、请简述软件测试的原则。答案:(1)应尽早和不断地进行软件“测试”,即将这种“测试”贯穿于软件开发的各个阶段,坚持各个阶段的技术评审,以便尽早地发现和预防错误。(2)测试用例中,不仅要选择合理的输入数据,还要选择不合理的输入数据。(3)在开发各阶段应事先分别制定出相应的测试计划,在测试开始后应严格执行,防止随意性。(4)对发现错误较多的程序模块,应进行重点测试。Pareto指出,测试发现错误的80%集中在20%的模块中。发现错误较多的模块质量较差,需重点测试,并要测试是否引入了新的错误。(5)避免程序员测试自己的程序。 测试用例的设计应有第三方参与。对于大型软件的测试,一般的做法是:设计者与测试者共同完成单元测试任务,而综合测试由专门的测试机构负责,有时其中也可以有设计者参加(6)用穷举测试是不现实的,一般通过设计测试用例,充分覆盖所有条件或所有语句即可。(7)长期妥善保存测试计划、测试用例、出错统计和有关的分析报告。5、问题处理描述:耗电记费系统可以采用固定价格收费、浮动价格收费和其他方式收费三种方式。若采用固定价格方式收费,对每月耗电100kWh以下的用户只征收最低标准费,超过100kWh的用户按价格表A收费;若采用浮动价格方式收费,则每月耗电100kWh以下的用户按价格A收费,超过100kWh的用户按价格B收费。请用判定树表达上述收费方法。答案:判定树如下:耗电100kWh 收取最低标准费固定方式耗电100kWh 按价格表A收费耗电100kWh 按价格表A收费耗电收费浮动方式耗电100kWh 按价格表B收费其他方式其他处理、请简述白盒测试的原则。答案:(1)保证程序中每一独立的路径至少执行一次;(2)保证所有判定的每一个分支至少执行一次;(3)保证每个判定表达式中每个条件的所有可能结果至少出现一次;(4)保证每一循环都在边界条件和一般条件至少各执行一次;(5)验证所有内部数据结构的有效性。四、 综合题示例 “学生选课系统”的问题陈述如下: 开发一个学生“选课系统”。通过这个系统,学生可以选课和查看成绩报告单,教授可以选择所教授的课和记录学生成绩。 学校保留原有的“课程目录”数据库系统来维护课程信息,但该系统的性能是很差的。所以新系统确保能够及时访问旧系统的数据。但新系统只能读取旧系统的课程信息,不能对旧系统进行更新。 每学期开始时,学生查看本学期的课程目录。有关课程的信息,包括教授名和所开设的系部,将帮助学生作出选课决定。系统允许学生每学期选择4门课程,如果学生没有选到主选的课程,还有两门备选课程可选,每门课的学生人数限制310人。不满3人的课程将被取消。另外,每个学期有一段时间允许学生更改所选课程,学生可以在该段时间内访问系统,并添加删除课程。某个学生的选课一旦结束,选课系统将此学生的账单信息送到财务系统。如果在选课时,某门课已满,学生在提交信息前,会被告知。学期结束,学生可以进入系统查看自己的成绩,成绩属于隐秘信息,系统必须提供额外的安全措施阻止未授权的访问。 教授应能访问系统,以指定其主讲的课程,他们也需要知道哪些学生选择了自己的课程。另外,教授也能登记学生的成绩。 对选课系统确定用例和参与者,然后画出用例图解 根据上述画用例图的步骤,首先找出“选课系统”的参与者,再确定每个参与者相关联的用例。 (1)确定参与者。仔细阅读例5.1中的问题陈述,确定系统给出的如下服务: 学生注册课程; 教授指定要教授的课程; 注册员维护系统中教授和学生的信息; 财务系统要从系统获得学生的选课产生的费用情况; 课程目录系统维护课程信息。 即可确定参与者为5种:学生、教授、注册员、财务系统、课程目录系统。5分(2)确定选课系统的用例。为了满足参与者的需要,可考虑生成如下用例:8分 系统登录学生、教授、注册员需要登录系统 注册课程课程目录系统、学生注册课程 查看报告学生、教授查看成绩 选择所教课程课程目录系统、教授选择所教授课程 提交成绩教授提交成绩 维护教授信息注册员维护教授信息 维护学生信息注册员维护学生信息 关闭注册。注册员和财务系统关闭注册(3)绘制用例图。综上所述,可以绘制如下用例图。分绘制“选课用例”创建课表事件的时序图。解选课用例对应的时序图应该表述如下过程: 从参与者对象(student)申请课程表开始,消息被边界类对象(RegisterForCourseForm)接收; 然后边界类对象(RegisterForCourseForm)请求控制类对象(RegistrationController)获取课程信息; 边界类对象(RegisterForCourseForm)请求边界类对象(CourseCatalogSystem)获取开设课程设置; 边界类对象(CourseCatalogSystem)请求参与者对象(CourseCatalog)获得开课目录; 3、为学生选课用例确定其边界类。解:边界类对象担负着协调用例与参与者之间进行交互的职责。(对于基于窗口的GUI应用程序来说,每个窗口或者对话框都对应一个边界类)RegisterForCourseFormCourseCatalogSystem4、为学生选课用例确定控制类。解方便起见,为每个用例设置一个控制类。RegistrationControl5、 为学生选课用例确定实体类。解下图给出学生选课用例的个实体类。Student学生Schedule课表CourseOffering开设课程6、绘制“选课用例”创建课表事件的协作图。解 选课用例对应的协作图应该与图6.7表述相同的语义; 与时序图不同的是,协作图标示空间维的事件。7、针对下图中描述的流图,请给出按照基本路径覆盖法测试软件的所需的测试路径(10分)。1234567答:流图中谓词节点个数为2,因此流图的环形复杂度量V(G)=2+1=3因此,按照路径覆盖法测试软件时,基本路径有3条,分别是:(1)1,2,3,5,6;(2)1,2,4,5,6;(3)1,2,3,7.8、针对下图所示的DFD,采用事务分析法导出程序结构,因其主体数据流为事务流(c为事务中心)。Aebdcefm散转cbsystemademfe答案:转化成SC图以后为:- 14 -
展开阅读全文