软件工程复习(含面向对象学生用).doc_第1页
软件工程复习(含面向对象学生用).doc_第2页
软件工程复习(含面向对象学生用).doc_第3页
软件工程复习(含面向对象学生用).doc_第4页
软件工程复习(含面向对象学生用).doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一部分 软件工程一、选择题1、软件是一种( 2 )性工业产品。(1)理论 (2)知识(或逻辑) (3)消耗 (4)体力2、需分求析是在( 2 )进行的。(1)用户 (2)用户和分析人员之间 (3)开发人员内部 (4)使用和维护人员之间3、在软件的可行性研究中经常从不同角度对系统进行可行性研究,其中从功能角度对系统进行研究属于( 2 )的研究。(1)经济可行性 (2)技术可行性 (3)操作可行性 (4)法律可行性4、在软件工程项目中,不随参与人员的增加而使软件的生产率增加的主要问题是( 4 )。(1)工作阶段的等待时间 (2)生产原型的复杂性(3)参与人员所需的工作站数 (4)参与人员之间的沟通困难5、需求分析阶段的研究对象是( 1 )。(1)用户需求 (2)分析员要求 (3)系统需求 (4)软硬件需求6、对某公司进行调查分析,确定是否值得开发一个新系统的工作是进行( 4)。()系统设计()系统分析()系统详细调查()系统初步调查7、系统分析员应当(4 )。()善于使用户接受自已的观点()善于使自已获得成就()是用户与计算机技术人员的有效协调与组织者()满足上述所有条件8、数据流图的绘制过程,是对新系统的需求进行综合分析和形成新系统(1)的过程。()逻辑模型()物理模型()总体方案()可行性报告9、系统测试的目的是(4)。()找出编码错误()找出数据错误()要证明程序无错()发现软件错误10、一个模块内部各程序段都在同一张表上操作,这个操作的内聚性称为( 3 )。(1)时间内聚 (2)功能内聚 (3)通信内聚 (4)顺序内聚11、对象是面向对象开发的基本成分,每个对象可用它的一组( )和它可以执行的一组操作来定义。(1)服务 (2)参数 (3)属性 (4)调用12、最高程度也是最差的耦合是( 2 )。(1)公共耦合 (2)内容耦合 (3)控制耦合 (4)数据耦合13、概要设计阶段产生的文档不包括( 4 )。(1)概要设计说明书 (2)数据库设计说明书 (3)用户手册 (4)开发进度报告14、汽车有一个发动机,汽车和发动机之间的关系是( 2 )。(1)一般具体关系 (2)整体部分关系 (3)分类关系 (4)is a 关系15、覆盖准则最强的是( 4 )。(1)语句覆盖 (2)判定覆盖 (3)条件覆盖 (4)路径覆盖16、下面对数据流图描述不正确的是(4)。()是组织中信息运动的抽象()是系统模型的主要形式()它与对系统的物理描述无关()所描述的内容是面向管理员的17、在基本的数据加工中,决策树适合于表达(2)。()决策或判断步骤较多的加工问题()决策或判断条件较多,各条件又相互组合的问题()非结构化决策问题()半结构化决策问题18、调试应该由( 2 )完成。(1)与源程序无关的程序员 (2)编制该源程序的程序员(3)不了解软件设计的机构 (4)设计该软件的机构19、导出模块结构图的基础是(2)()系统结构图()数据流图()数据结构图()控制结构图20、程序员进行程序设计的主要文档依据是(1)()模块说明书()系统流程图()控制流程图()数据流图21、面向对象程序设计语言不同于其它语言的最主要特点是( 3 )。(1)模块性 (2)抽象性 (3)继承性 (4)共享性22、软件部件的内部实现与外部可访问性分离,这是指软件的( 3 )。(1)继承性 (2)共享性 (3)封装性 (4)抽象性23、在确定类时,候选的类是所有的( 1 )。(1)名词 (2)形容词 (3)动词 (4)代词24、在面向对象方法中,信息隐蔽的实现是通过对象的( 3 )。(1)分类性 (2)继承性 (3)封装性 (4)共享性25、每个对象可用它自已的一组属性和它可以执行的一组( 3 )来表示。(1)行为 (2)功能 (3)操作 (4)数据26、面向对象的主要特征除对象唯一性、封装、继承外,还有( 1 )。(1)多态性 (2)完整性 (3)可移植性 (4)兼容性27.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( 3 ) A.软件工程B.软件周期 C.软件危机D.软件产生28.研究开发所需要的成本和资源是属于可行性研究中的( 2 )研究的一方面。 A.技术可行性B.经济可行性 C.社会可行性D.法律可行性29.黑盒测试在设计测试用例时,主要需要研究( 1 ) A.需求规格说明与概要设计说明B.详细设计说明 C.项目开发计划D.概要设计说明与详细设计说明30.若有一个计算类型的程序,它的输入量只有一个X,其范围是-1.0,1.0,现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( 3 ) A.条件覆盖法B.等价分类法 C.边界值分析法D.错误推测法31.下列属于维护阶段的文档是( 3 ) A.软件规格说明B.用户操作手册 C.软件问题报告D.软件测试分析报告32.快速原型模型的主要特点之一是( 4 ) A.开发完毕才见到产品B.及早提供全部完整的软件产品 C.开发完毕后才见到工作软件D.及早提供工作软件33.因计算机硬件和软件环境的变化而作出的修改软件的过程称为( 2 ) A.改正性维护B.适应性维护 C.完善性维护D.预防性维护34.软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( 2 ) A.可用性B.可靠性 C.正确性D.完整性35.下列文档与维护人员有关的有( 3 ) A.软件需求说明书B.项目开发计划 C.概要设计说明书D.操作手册36.在结构化方法中全面指导模块划分的最重要的原则是( D ) A.程序模块化B.模块高内聚 C.模块低耦合D.模块独立性二、填空题1、可行性研究的目的不是去开发一个软件项目,而是研究这个项目是否 值得开发 , 其中的问题能否解决 。2、软件结构的设计是以 模块 为基础的。3、软件设计阶段,是把软件“ 做什么 ”的逻辑模型变换为“ 怎么做 ”的物理模型。4、需求分析的关键是必须准确理解用户的要求,同时要满足用户的要求。最终解决目标系统“做什么”的问题。5、数据流图一般可分为 变换型 和 事务型 两类。6、HIPO图中 H 图用于描述软件总的模块层次结构, IPO 图用于说明模块间的信息传递及模块内部的处理。7、详细设计也称 过程设计 ,它是软件设计的第二阶段,主要确定每个 模块 的具体执行过程。8、处理过程设计中最典型的方法是 结构化程序设计(SP) 方法,其基本要点是采用的程序设计方法是 自顶向下 、 逐步求精 。9、测试用例由 输入数据 和预期的 输出数据 两部分组成。10、白盒法必须考虑程序的 内部结构 和 处理过程 ,以检查 处理过程 的细节为基础,对程序中尽可能对的逻辑路径进行 测试 。11、软件测试过程中需要3类信息: 软件配置 、 测试配置 和 测试工具 。12、在详细设计阶段,需要对处理过程的 模块 和数据库的 物理 结构做评审。13、对象具有状态,对象用 数据值 来描述它的状态。14、数据流图描述系统的分解,即描述系统由哪几部分组成,各部分之间有什么联系等。15、任何程序都可由 顺序 、 选择 和 重复 3种基本控制结构构造。这3种基本结构的共同点是 单入口 、 单出口 。16、测试的目的就是发现程序中的错误,而不是调试程序没有错误。17、面向数据流的设计又称 结构化层序设计(SP) ,它是以需求分析阶段产生的 数据流图 为基础,按一定的步骤映射成软件结构。18、可行性分析包括技术可行性、经济上的可行性和社会因素可行性 分析。19. 纯收入是指在整个生存周期之内的_ _累计经济效益_与投资之差。20. 软件概要设计的主要任务就是_软件结构的设计_。21. 在单元测试中,需要为被测模块设计 驱动 模块和 存根 模块。 驱动模式 用来模拟被测模块的上级调用模块, 存根模式 用来代替被测模块所调用的模块。三、名词解释1、软件测试软件测试是指为了发挥软件中的错误而执行软件的过程。它的目标是尽可能多地发现软件中存在的错误,将测试结果作为纠错的依据。2、详细设计系统的详细设计是系统总体设计的深入,对总体设计中的各个具体的任务选择适当的技术手段和处理方法。详细设计主要包括代码设计,数据库设计,输出设计,输入设计,对话设计,处理流程设计,制定设计规范等。3、数据耦合如果两个模块之间通过数据交换信息,且每一个参数均为数据,那么这种模块间的耦合称为数据耦合。4、模块化模块化就是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集中起来组成一个整体,从而完成指定的功能,满足问题的要求。5、信息隐蔽信息隐蔽是指在设计模块时,应让一个模块内包含的信息(过程和数据)对于其他不需要这些信息的模块来说是不能访问的。6、耦合耦合性是对一7、功能内聚如果模块内所处理的元素属于一个整体,完成一个单一的功能,则称为功能内聚个软件结构内不同模块之间互联程度的度量。耦合强弱取决于模块间接口的复杂程度。8、 事务流: 事务流失指数据流图中输入流被分离成许多数据流,形成许多加工路径,并根据输入值选择一条路径来执行。9、集成测试集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。模块相互间的协调和通信是这个测试过程中的主要问题,因此,这个步骤着重测试模块的接口。10、需求分析软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。11、白盒法白盒测试指把测试对象看成一个打开的盒子,测试人员需了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。12、黑盒法黑盒测试指把测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求,又称为功能测试或数据驱动测试。13、渐增式测试是先从单个模块开始测试,然后每次将测试后的一个模块添加到系统中并测试,系统像“滚雪球”一样越滚越大,直到把所有的模块都组装并测试完毕。渐增式测试又可以根据每次添加模块的路线分为自顶向下测试、自底向上测试和混合测试等方式。14、非渐增式测试非渐增式测试:一下子把所有模块放在一起,并把庞大的程序作为一个整体来测试,测试者面对的情况十分复杂。15、软件概要设计所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。为了更好地理解复杂事物,人们常常采用建立事物模型的方法。为了开发出复杂的软件系统,系统分析员应该从不同角度抽象出目标系统的特性,使用精确的表示方法构造系统的模型,验证模型是否满足用户对目标系统的需求,并在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现模型。16、模块在程序设计中,为完成某一功能所需的一段程序或子程序;或指能由编译程序、装配程序等处理的独立程序单位;或指大型软件系统的一部分。17、路径覆盖路径覆盖是指选择若干个测试用例,运行被测程序,使得运行这些测试用例时,被测程序的每条可执行的路径至少执行一次。18、条件覆盖条件覆盖是指选择足够的测试用例,使得运行这些测试用例后,要使每个判断中每个条件的可能取值至少满足一次,但未必能覆盖全部分支19、判定/条件覆盖判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行,即要求各个判断的所有可能的条件取值组合至少执行一次。20、条件组合覆盖在白盒测试法中,选择足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。显然,满足“条件组合覆盖”的测试用例是一定满足“判定覆盖”、“条件覆盖”和“判定/条件覆盖”的。四、简述题1、软件设计的基本原理包括哪些内容?2、需求分析应遵循的原则是什么?3、为什么说软件测试是软件开发中不可缺少的重要一环,但不是软件质量保证的安全网?4、软件测试的目的是什么?为什么把软件测试的目标定义为只是发现错误?5、增量开发和原型开发有什么相同和不同的地方?6、简述结构化程序设计方法的基本要点。7、简述文档在软件工程中的作用。8、简述提高可维护性的方法。9、什么是模块的影响范围?什么是模块的控制范围?他们之间应该建立什么关系?10、可行性研究的任务是什么?11、什么是软件详细设计?该阶段的基本任务是什么?12、什么是模型?开发软件时为什么要建立模型?1、软件设计的基本原理:(1)模块化(四个属性:接口、功能、逻辑、状态)(2)抽象(3)信息隐蔽(4)模块独立性(两个定性的度量标准:耦合性与内聚性)2、需求分析应遵循的原则是什么?所有这些分析方法都遵守下述准则:(1) 必须理解并描述问题的信息域,根据这条准则应该建立数据模型。(2) 必须定义软件应完成的功能,这条准则要求建立功能模型。(3) 必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。(4) 必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。3、为什么说软件测试是软件开发中不可缺少的重要一环,但不是软件质量保证的安全网? 软件测试是软件开发中不可缺少的重要一环,原因是:A、测试的工作量约占整个项目开发工作量的40%左右,几乎一半。如果是关系到人的生命安全的软件,测试的工作量还要成倍增加。B、软件测试代表了需求分析、设计、编码的最终复审。 软件测试不是软件质量保证的安全网,因为软件测试只能发现错误,不能保证没有错误。4、软件测试的目的是什么?为什么把软件测试的目标定义为只是发现错误?软件测试的目的有: 软件测试是为了发现错误而执行程序的过程。 一个好的测试用例能够发现至今尚未发现的错误。 一个成功的测试是发现了至今尚未发现的错误。软件测试的目标定义为只是发现错误,原因是软件测试可以有两个目标,一个是预防错误,另一个是发现错误。由于软件开发是人的创造性劳动,人的活动不可能完美无缺,错误可能发生在任何一个阶段,因此预防错误这一目标几乎是不可实现的,所以软件测试的目标定义为只是发现错误。5、可行性研究的任务是什么?可行性研究的目的不是解决问题,而是确定问题是否值得去解决。为了达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。 6、简述结构化程序设计方法的基本要点。(1)采用自顶向下,逐步求精的程序设计方法。(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环(3)采用主程序员组的组织形式。7、简述文档在软件工程中的作用。.(1)提高软件开发过程的能见度(2)提高开发效率(3)作为开发人员阶段工作成果和结束标志(4)记录开发过程的有关信息便于使用与维护;(5)提供软件运行、维护和培训有关资料;(6)便于用户了解软件功能、性能。8、简述提高可维护性的方法。.(1)建立明确的软件质量目标(2)利用先进的软件开发技术和工具(3)建立明确的质量保证工作(4)选择可维护的程序设计语言(5)改进程序文档9、什么是模块的影响范围?什么是模块的控制范围?他们之间应该建立什么关系?模块的影响范围:受该模块内的一个判定影响的所有模块的集合。模块的控制范围:模块本身及其所有下属模块(直接或间接从属于它的模块)的集合。一个模块的影响范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。10、什么是模型?开发软件时为什么要建立模型?所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。为了更好地理解复杂事物,人们常常采用建立事物模型的方法。为了开发出复杂的软件系统,系统分析员应该从不同角度抽象出目标系统的特性,使用精确的表示方法构造系统的模型,验证模型是否满足用户对目标系统的需求,并在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现模型。五、应用题1、研究生入学考试的科目为英语、数学、政治,录取规则是:a) 总分200分以下(不含200分)不录取。b) 总分200分以上(含200分)时:i. 英语、数学均为60分以上(含60分)录取。ii. 数学55分以上(含55分),英语70分以上(含70分)需参加复试。iii. 其它情况不录取。用决策树表达此项处理逻辑。2、某银行发放贷款原则如下:() 对于贷款未超过限额的客户,允许立即贷款;() 对于贷款已超过限额的客户,若过去还款记录好且本次贷款额在2万元以下,可作出贷款安排,否则拒绝贷款。请用结构化语言描述该原则。答:IF 已超过贷款限额 IF 客户过去还款纪录差 拒绝贷款 ELSE IF 本次贷款额 2万 拒绝贷款 ELSE 作出贷款安排 ENDIF ELSE 允许立即贷款 ENDIF3、银行确定储蓄类型部分数据流图如下:整存整取确定业务类型活期储蓄零存整取存款单试作出事务分析结构的控制结构图。 4、高考录取计分子系统有如下功能:() 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件;() 计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。试根据要求画出该系统的数据流图。5、某旅馆的电话服务如下:可以拨分机号和外线号码。分机号是从7201至7299。外线号码先拨9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从100到300中任意的数字串。市话号码是以局号和分局号组成。局号可以是455,466,888,552中任意一个号码。分局号是任意长度为4的数字串。要求:写出在数据字典中,电话号码的数据条目的定义(即组成)。答:电话号码=分机号外线号码分机号=72017299外线号码=9+市话号码长话号码长话号码=区号+市话号码区号=100300市话号码=局号+分局号局号=455466888552分局号=4数字46、某培训中心要研制一个计算机管理系统。它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。1)如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。2)如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。要求:1).对以上问题画出数据流程图。2).画出该培训管理的软件结构图的主图。7.阅读以下说明和数据流图,回答问题1至问题3。说明学生住宿服务系统帮助学生在就学的城市内找以所需的住房,系统对出租的房屋信息、房主信息、需要租房的学生信息以及学生和房主的会面住处进行管理和维护。房主信息包括姓名、地址、电话号码以及系统分配的唯一身份标识(ID)和密码;房屋信息包括房屋地址、类型(单间/套间)、适合住宿的人数、房租、房主的ID以及现在是否可以出租(例如由于装修原因,需等到装修后才可出租或者房屋已被租出)。每当房房屋信息发生变化时,房主须通知系统,系统将更新房到文件以便学生能够获得准确的可租用房屋信息,房主向系统中加入可租用的房屋信息时,需交纳一定的费用,由系统自动给出费用信息。房主可随时更新房屋的各种属性。学生可通过系统查询现有的可租用的房屋,但必须先在系统中注册。学生信息包括姓名、现住址、电话号码、出生日期、性别以及系统分配的唯一身份标识(ID)和密码。若学生希望租用某房屋,则需要发出租房请求,请求中包含房屋的详细信息,系统将安排学生与房主会面的时间和地点,并将会面信息通知学生和房主,会面信息包括会面时间、地点以及会面双方的基本信息,系统将记录会面信息。学生住宿服务系统的顶层图如图1-1所示;学生住宿服务系统的第0层DFD图如图1-2所示,其中,加工3的细化图如图1-3所示。 问题1(6分)(1)数据流图1-1缺少了一条数据流(在图1-2中也未给出该数据流),请给出此数据流的起点和终点,并采用说明中的词汇给出此数据流名。(2)数据流图1-2中缺少了与查询房屋加工相关的数据流,请指出此数据流的起点和终点。问题2(4分)安排会面加工除需要写入会面文件外,还需要访问哪些文件?问题3(5分)请补齐下列数据字典条目:登录信息=学生ID+密码注册信息=数据流图1-1 数据流图1-2 数据流图1-3 8. 乘客可以免费携带50kg的行李。超过50kg,国内乘客,坐头等舱,超重部分按每千克8元收费;乘坐经济舱,超重部分按每千克12元收费;对国外乘客,坐头等舱,超重部分按每千克16元收费;坐经济舱,超重部分按每千克24元收费;残疾乘客费用减半。请用结构化语言、判定树、判定表中的任一种对行李费用计算进行描述。(257页) 9、在一栋m层楼的大厦里,用电梯内的和每个楼层的按钮来控制n部电梯的运动。当按下电梯按钮请求在指定楼层停下时,按钮指示灯亮;当电梯到达指定楼层时,指示灯熄灭。除了大厦的最低层和最高层之外,每层楼都有两个按钮分别指示电梯上行和下行。当这两个按钮之一被按下时相应的指示灯亮,当电梯到达此楼层时灯熄灭,电梯向要求的方向移动。当电梯无升降动作时,关门并停在当前楼层。() 请分别写出电梯系统基本事件流和扩展事件流。(提示:起点在中间的某一层)(2)画出电梯控制类的动态模型(仅考虑一部电梯的情况)。10、下面是某程序的流程图:(1)计算独立路径数;(2)给出一组独立路径。t=a;a=b;b=t;abacadbcbdcdt=a;a=c;c=t;t=a;a=d;d=t;t=b;b=c;c=t;t=b;b=d;d=t;t=c;c=d;d=t;排序结果输出T F T F T F T F T F T F 第二部分 面向对象一选择题1. 一切软件开发都毫无例外地必须从( 4 )。软件功能出发 用户出发 软件性能出发 需求出发2. 在分析阶段通常包含两个方面的工作:建立一个以类图表示的反映问题域静态关系的( 4 );建立一个以用例模型表示的反映( 3 )的动态模型。 用户需求 关系模型 系统行为 概念模型3. 发现类的基本方法不包括( 4 )。 确定客户 跟踪资金流 事件是潜在的类 系统是潜在的类4. 继承的基本技巧和技术不包括( 3 )。 寻找相似之处 寻找已有的类 选择性继承 遵循单句规则5. 关联的多重性可用来表达一个( 4 )、特定值、无限定的范围或者一组( 4 )。 取值范围 属性 对象 离散值6. 当一个类没有足够的( 1 )去完成它的职责时,就要依靠与其它类的协作来完成工作。 信息 操作 功能 数据7. 一般情况下,区分主要参与者与次要参与者应该以使用系统时的( 2 )为依据,或者以一个( 4 )是谁发起的作为主要依据。 重要程度 业务量 业务过程 交互过程8. 前置条件描述了( 2 )之前系统必须满足的条件。 系统运行 执行用例 系统启动 成功执行9. 用例之所以被广泛采用的主要原因是,用例详细地描述了系统被使用时的( 3 ),使得用户能够明白新系统到底是什么样的。 执行过程 操作细节 行为细节 功能细节10. 顺序图描述了对象之间传递消息的( 2 ),它用来表示用例中的( 4 )。 执行顺序 时间顺序 操作顺序 行为顺序 11. RUP是重型方法论的典型代表,它的核心理念是:“( 2 )、以架构为中心、迭代和增量的软件开发过程。” 测试驱动 用例驱动 模型驱动 功能驱动12. 如果说用例图显示( 2 )应该做什么,活动图则指明了( 2 )将如何实现它的目标。 对象 系统 用例 参与者13基本事件流是参与者在用例中所遵循的( 3 )。 基本原则 执行路径 逻辑路径 执行步骤二填空题1. 需求调研是( 了解问题 ),分析是( 定义问题 ),而设计则是( 解决问题 )。2. 建立概念模型的目的是帮助开发团队理解( 问题域 )的各种概念、各种名词、以及它们之间的各种关系。而建立用例模型的目的是帮助开发团队( 理解 )用户对系统的各种功能需求。3.类图包含( 类名 )、( 属性 )和操作等信息。4. 子类应该从父类继承所有的东西,这种概念叫做( 纯粹 )继承。如果不这样的话,代码将很难( 理解 )和维护。5. 关联通过组合属性和方法来实现。属性( 存储 )维护关系的信息,方法( 保证 )信息是当前可用的。6. 类的职责是类知道或要完成的( 事情 )。类所知道的事情是它的( 数据 ),它要完成的事情就是它的( 功能 )。7. 概念模型是“帮助开发团队了解并在此基础上理解用户所处的环境”,而用例模型则是“帮助开发团队弄清楚用户具体想解决什么问题”。前者是( 静态模型 ),为后者工作的展开建立了一个总体框架;后者是( 动态模型 ),为实现前者注入了活力。两者相辅相成,一般情况下,其( 工作顺序 )不分先后,而是以一种( )方式向前推进。8. 首先,用例是由一组( 用例实例 )组成的,用例实例也就是常说的“使用场景”,就是用户使用系统的一个特定的、实际的场景;其次,用例应该给参与者带来( 可见 )价值,即参与者的参与应该能得到好处;最后,用例是在( 系统中 )的,而不是( 系统外 )的东西。9. 用例是满足需求的( 过程 ),而需求则是过程背后所实现的( 价值 )。这正是用例建模的( 核心思想 )。10. 假设描述的是系统在使用用例之前必须满足的状态,这些( 条件 )并没有经过用例的检测,( 用例 )只是假设它们为真。11. 识别用例时的一个常见错误是把用例当成是( 单独 )的步骤、操作或事务的处理。12. 构建用例模型需要经历三个阶段:确定系统的( 参与者 )、合并( 需求 )获得用例、细化用例描述。13. 用例图显示了系统的( 一组用例 )、用例的参与者以及用例和参与者之间的( 关系 )。14. 顺序图主要有4个标记符:对象、( 生命线 )、消息和( 激活 )。15. 状态图用来描述一个( 特定 )对象的所有可能状态及其引起状态( 转移 )的事件。16. 活动图是用来对不同区域的工作如何( 彼此交互 )进行建模,而状态图用来表示单个对象,以及对象的行为如何( 改变 )其状态。17. 框架和类库最重要的区别是:框架是一个( 半成品 )的应用程序,而类库只包含一系列可被应用程序( 调用的类 )。 18. 我们可以说,类库是( 死的 ),而框架是( 活的 )。应用程序通过调用类库来完成特定的功能,而框架则通过调用应用程序来实现整个操作流程。19. 依赖倒置原则对我们的启发是:依赖于抽象。因此,要针对( 接口 )编程,不针对( 实现 )编程。20. 通常来说,“接口”就是( 一种特殊的抽象类 )。针对接口编程的组件不需要知道( 对象 )的具体类型和实现,只需要知道抽象类定义了哪些接口,这减少了实现上的( 依赖关系 )。三问答题1. 分析工作的主要内容及结果是什么?2. 类与对象之间有什么区别?3. 组合与聚合有什么异同?4. 建立概念模型有哪些步骤?5. 什么是参与者?6. 用例有什么特征?7. 什么是基本事件流?举例说明。8. 什么是边界类?什么是实体类?什么是控制类?9. 顺序图有什么作用?10. 请对顺序图和通信图进行比较。11. 什么是过程?为什么需要过程?12. 统一软件开发过程分为哪几个阶段?各个阶段主要完成哪些工作?13. 简述面向对象各种模型的演化过程。14. 识别用例和描述用例有什么区别?15. 组件与类有什么异同?16. 什么是开闭原则?如何理解?17. 什么是接口隔离原则?如何理解?18. 为什么说要为人写代码,而不是为机器写代码?19. 什么是里氏替换原则?如何理解?20. 对分析和设计模型进行测试有什么优点?四应用题1. 考虑以下对习题管理系统的需求,识别候选类并说明理由:该系统的需求陈述为:在一个公共习题库的支持下,使各科教师可以在系统中编写习题及其标准答案,并将编写的习题及答案加入题库;或者从题库中选取一组习题,组成一份向学生布置的作业,并在适当的时候公布答案。学生可以在系统中完成教师布置的作业,也可以在题库中选择更多的习题作练习。教师可以通过系统检查学生的作业,学生也可以在教师公布答案后对自己的练习进行核对。系统维持对题库的管理,并对教师及学生的权限进行检查:只有本课程的教师可以提交或修改习题,并指定哪些习题的答案可以向学生公开。2.超市销售管理系统的需求描述如下,请识别候选类并说明理由:该系统是超市业务管理系统的一个子系统。为了简化问题,我们对它的功能作了适当的限制:只负责前台的销售管理,而且不处理信用卡付款或会员优惠等业务。其功能需求是:(1)为顾客选购的商品计价、收费、打印清单;(2)记录每一种商品的编号、单价及现有数量;(3)帮助供货员发现哪些商品将要脱销,以便及时补充货源;(4)随时按上级系统的要求报告当前的货款数量、增减商品种类或修改商品价格;(5)交接班时结算货款数目,报告上级系统。3. 写出图书馆中借阅图书的用例描述。4. 写出图书馆中归还图书的用例描述。5. 音像商店的问题陈述如下:一个新的音像商店准备向比较广泛的人群销售录像带和光碟。该商店的管理决定在计算机系统的支持下来运作。对这种管理方式已经有许多小规模业务软件包,适合于用户化和进一步开发。为了帮助对软件包的选择,该商店雇用了一个业务分析员,他的任务就是确定和表示这个需求。该音像商店一开始将存有大约1000盘录像带和500张光碟,这些库存已经向一个供应商订购,但在未来的订购中将接触更多的供应商。所有的录像带和光碟都具有一个条形码,以便可以集成一个条形码扫描仪来支持销售和返还。客户会员卡也同时条形码化。现存的客户能够预定录像带和光碟并指定某天来取。系统必须拥有灵活的搜索机制来回答客户的询问,包括这个音像商店还没有进货的电影(但可以是已经请求订购了的)。客户最多可租借盒带子(光碟),如果有拖欠记录,则需为每盒带子(光碟)交纳相当于其成本的押金,否则,不能租借。请建立该音像商店的用例模型(含用例图和租借音像制品用例的用例描述)。6. 建模“借阅图书”的顺序图。7. 建模“归还图书”的顺序图。8. 一个计算机制造厂商提供了互联网购买计算机的可能性,客户可以在制造厂商的页面上选择一台计算机,计算机分为服务器、台式机和笔记本。客户可以选择标准配置,或者在线建立自己希望的配置。可配置的构件(如内存)显示在一个可供选择的表中。对每个新的配置,系统可以计算价格。要发出订单,客户必须填上运送和付款信息,可接受的付款方式为信用卡和支票。一旦订单被输入,系统向客户发送一个消息,并附上订单的细节。在等待计算机送到的这段时间,客户可以在任何时候在线查到订单的状态。后端订单处理包含下面所需的步骤:验证客户的信任度和付款方式、向仓库请求订购的配置、打印发票并且请求仓库把计算机运送给客户。请识别参与者及用例(含用例名、简要用例描述及使用该用例的参与者)三 问答题 1. 分析工作的主要内容及结果是什么? 分析工作的主要内容是研究问题域和用户需求,运用面向对象的观点和原则发现问题域中与系统责任有关的对象,以及对象的特征和相互关系。分析的结果是确定描述问题域与系统责任所需的对象,定义对象的属性、服务以及它们之间的关系。2. 2. 类与对象之间有什么区别? 类是对资源的定义,它所包含的信息主要用来描述某种类型实体的特征以及对该类型实体的使用方法。对象是具体的实体,它遵守类制定的规则。从软件的角度看,程序通常包含的是类的集合以及类所定义的行为,而实际创建信息和管理信息的是遵守类的规则的对象。 3. 3. 组合与聚合有什么异同? 同:两者都可表示类之间整体和部分的关系,整体类都是由部分类组成。 异:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。 4. 4. 建立概念模型有哪些步骤? 1、找出问题域中候选概念。用概念类分类列表和名词短语分别识别的方法找出当前需求中的候选概念类。 2、将概念绘制到概念模型中。在概念模型中描述找出的概念类。 3、在概念之间加入必要的关联来记录概念之间需要保持的联系。在概念类之间添加必要的关联来记录那些需要保存记忆的关系。 4、为概念添加必要的属性,来满足需求信息。 5. 什么是参与者? 参与者(actor)是系统外部的一个实体,它以某种方式参与了用例的执行过程。参与者用于表示使用系统的对象,或者说,参与者由它们参与用例时所担当的角色来代表。 6. 用例有什么特征? (1)用例总是由参与者启动。用例所代表的功能必须由参与者激活,而后才能执行。一般情况下,参与者可能没有意识到启动了一个用例。换句话,参与者需要系统完成的功能,其实都是通过用例具体完成的,参与者一定会直接或间接的命令系统执行用例。 (2)用例为参与者提供结果值。用例必须为参与者提供实在的结果值,虽然这个值并不总是重要的,但是能被参与者识别。 (3)用例具有完整性。用例是一个完整的描述。虽然编程实现时,一个用例可以被分解成几个小用例(函数),每个小用例之间互相调用执行,一个小用例可以先执行完毕,但是该小用例执行结束并不能说这个用例执行结束。也就是说,不管用例内部的小用例是如何通信工作的,只有最终产生了返回给参与者的结果值,才能说用例执行完毕。 7. 什么是基本事件流?举例说明。 参与者在用例中所遵循的逻辑路径。因为它描述了当各项工作都正常进行时用例的工作方式,所以通常称为基本路径。事件流描述了用户和执行用例之间交互的每一步。例如,图书馆借出图书用例的基本事件流: 管理员输入借书证信息系统要确保借书证信息的有效性检查是否有超期的借阅信息管理员输入要借阅的图书信息系统将借阅者的借阅信息添加到数据库中系统显示该借阅者的所有借阅信息 8. 什么是边界类?什么是实体类?什么是控制类? 边界类:用于建立系统与其参与者之间交互的模型。这种交互通常包括接收来自用户和外部系统的信息与请求以及将信息与请求提交到用户和外部系统。 实体类:实体类通常用于对持久的信息建模,即主要对诸如个体、实际对象或实际事件的某些现象或概念的信息及相关行为建模。 控制类:代表协调、排序、事务处理以及其他对象的控制,经常用于封装与某个具体用例有空的控制。 9. 顺序图有什么作用? 顺序图的主要用途之一是为用例构建逻辑模型,任何用例都可以使用顺序图进行进一步的阐明和实现,即把用例所表达的需求,转化为进一步的、更加正式层次的精细表达。 10. 请对顺序图和通信图进行比较。 顺序图主要描述特定用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论