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

下载本文档

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

文档简介

1、第一部分软件工程一、选择题1、软件是一种( 2)性工业产品。(1)理论(2)知识(或逻辑)(3)消耗(4)体力2、需分求析是在(1)用户(3)开发人员内部2)进行的。(2)用户和分析人员之间(4)使用和维护人员之间3、在软件的可行性研究中经常从不同角度对系统进行可行性研究,其中从功能角度对系统进行研究属于(2 )的研究。(1)经济可行性(2)技术可行性(3)操作可行性(4)法律可行性4、在软件工程项目中,不随参与人员的增加而使软件的生产率增加的主要问题是(1)工作阶段的等待时间(3)参与人员所需的工作站数5、需求分析阶段的研究对象是(1 )用户需求(2)分析员要求4 )。(2)生产原型的复杂性

2、(4)参与人员之间的沟通困难1 )。(3)系统需求(4)软硬件需求6、对某公司进行调查分析,确定是否值得开发一个新系统的工作是进行(1)系统设计(2)系统分析(3)系统详细调查(4)系统初步调查7、 系统分析员应当(4(1)善于使用户接受自已的观点(2)善于使自已获得成就(3)是用户与计算机技术人员的有效协调与组织者(4)满足上述所有条件8、数据流图的绘制过程,是对新系统的需求进行综合分析和形成新系统(1)逻辑模型(2)9、系统测试的目的是(1)找出编码错误(3)要证明程序无错物理模型 (3)总体方案(4)可行性报告4(2)找出数据错误(4)发现软件错误10、一个模块内部各程序段都在同一张表上

3、操作,这个操作的内聚性称为 (1 )时间内聚 (2)功能内聚 (3)通信内聚 (4)顺序内聚11、 对象是面向对象开发的基本成分,每个对象可用它的一组( 组操作来定义。(1)服务(2)参数 (3)12、 最高程度也是最差的耦合是(1 )公共耦合(2)内容耦合属性(4)2 )。(3)控制耦合)。调用(4 )数据耦合的过程。)和它可以执行的一13、 概要设计阶段产生的文档不包括(4(1 )概要设计说明书(2)数据库设计说明书14、汽车有一个发动机,汽车和发动机之间的关系是(1) 一般具体关系(2)整体部分关系(3)用户手册2 )。(3)分类关系(4)开发进度报告(4) is a关系15、覆盖准则最

4、强的是(4)。(1 )语句覆盖(2)判定覆盖(3)条件覆盖(4 )路径覆盖16、下面对数据流图描述不正确的是(4)。(1)是组织中信息运动的抽象(2)是系统模型的主要形式(3)它与对系统的物理描述无关(4)所描述的内容是面向管理员的17、在基本的数据加工中,决策树适合于表达(2)。(1)决策或判断步骤较多的加工问题(2)决策或判断条件较多,各条件又相互组合的问题(3)非结构化决策问题(4)半结构化决策问题18、调试应该由( 2)(1 )与源程序无关的程序员 (3 )不了解软件设计的机构19、 导出模块结构图的基础是(1)系统结构图完成。(2)(4)2(2)数据流图编制该源程序的程序员 设计该软

5、件的机构)(3)数据结构图( 1 )(3)控制流程图(4)控制结构图20、 程序员进行程序设计的主要文档依据是(1)模块说明书(2)系统流程图21、 面向对象程序设计语言不同于其它语言的最主要特点是(1)模块性(2)抽象性 (3)继承性22、 软件部件的内部实现与外部可访问性分离,(1)继承性(2)共享性 (3)封装性23、 在确定类时,候选的类是所有的(1)名词 (2)形容词(3)动词(4)数据流图3(4)共享性这是指软件的(4)抽象性1 ) (4)代词24、 在面向对象方法中,信息隐蔽的实现是通过对象的(1)分类性(2)继承性 (3)封装性 (4)共享性25、 每个对象可用它自已的一组属性

6、和它可以执行的一组(1)行为 (2)功能 (3)操作 (4)数据26、 面向对象的主要特征除对象唯一性、封装、继承外,还有(1)多态性(2)完整性(3 )可移植性(4)兼容性27开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做 A.软件工程C.软件危机28研究开发所需要的成本和资源是属于可行性研究中的A.技术可行性C.社会可行性29黑盒测试在设计测试用例时,主要需要研究(A.需求规格说明与概要设计说明C.项目开发计划30若有一个计算类型的程序,它的输入量只有一个来表示。角度考虑一组测试用例:-1.001 ,A.条件覆盖法C.边界值分析法31.下列属于维护阶段的文档是(A.软件规

7、格说明C.软件问题报告32.快速原型模型的主要特点之一是A.开发完毕才见到产品C.开发完毕后才见到工作软件-1.0,B.软件周期D.软件产生(2)研究的一方面。B.经济可行性D.法律可行性1 )B.详细设计说明D.概要设计说明与详细设计说明X,其范围是-1.0 ,1.0,现从输入的(3)1.0, 1.001。设计这组测试用例的方法是B.等价分类法D.错误推测法B.用户操作手册D软件测试分析报告B.及早提供全部完整的软件产品D.及早提供工作软件33因计算机硬件和软件环境的变化而作出的修改软件的过程称为A.改正性维护B.适应性维护C.完善性维护D.预防性维护B.项目开发计划D操作手册(D )B.模

8、块高内聚D.模块独立性二、填空题1、可行性研究的目的不是去开发一个软件项目, 其中的问题能否解决2、 软件结构的设计是以模块为基础的。3、软件设计阶段,是把软件“物理模型。4、需求分析的关键是必须 用户的要求。最终解决目标系统5、 数据流图一般可分为变换型和事务型两类。6、 HIPO图中 _图用于描述软件总的模块层次结构,IPO图用于说明模块间的信息传递及模块内部的处理。而是研究这个项目是否值得开发做什么”的逻辑模型变换为“准确理解“做什么”的问题。变换型和事务型怎么做”的用户的要求,同时要满足34软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性 称为(2)A.可用

9、性B.可靠性C.正确性D.完整性35下列文档与维护人员有关的有(3)A.软件需求说明书C.概要设计说明书 36在结构化方法中全面指导模块划分的最重要的原则是A.程序模块化C.模块低耦合7、详细设计也称_,它是软件设计的第二阶段,主要确定每个模块的具体执行过程。&处理过程设计中最典型的方法是结构化程序设计(SP) _方法,其基本要点是采用的程序设计方法是自顶向下、逐步求精。9、 测试用例由 输入数据 _和预期的输出数据两部分组成。10、 白盒法必须考虑程序的内部结构_和_,以检查 处理过程的细节为基础,对程序中尽可能对的逻辑路径进行测试 。11、 软件测试过程中需要 3类信息:软件配置_、_和

10、测试工具_。12、 在详细设计阶段,需要对处理过程的模块和数据库的物理结构做评审。13、 对象具有状态,对象用数据值来描述它的状态。14、 数据流图描述系统的分解 _,即描述系统由_组成,各部分之间有什么联系等。15、 任何程序都可由顺序 、 诜择 和 重复3种基本控制结构构造。这 3种基本结构的共同点是单入口、 单出口_。16、 测试的目的就是发现 程序中的错误,而不是 调试程序没有错误。17、 面向数据流的设计又称 结构化层序设计(SP) _,它是以需求分析阶段产生的 数据流图 _为基础,按一定的步骤映射成软件结构。18、 可行性分析包括_、经济上的可行性和社会因素可行性分析。19、纯收入

11、是指在整个生存周期之内的_ _累计经济效益 _与投资之差。20、_软件概要设计的主要任务就是 软件结构的设计 。21.在单元测试中,需要为被测模块设计驱动 模块和 存根模块。驱动模式用来模拟被测模块的上级调用模块,存根模式用来代替被测模块所调用的模块。三、名词解释1、软件测试软件测试是指为了发挥软件中的错误而执行软件的过程。它的目标是尽可能多地发现软件 中存在的错误,将测试结果作为纠错的依据。2、详细设计系统的详细设计是系统总体设计的深入,对总体设计中的各个具体的任务选择适当的技术 手段和处理方法。详细设计主要包括代码设计,数据库设计,输出设计,输入设计,对话 设计,处理流程设计,制定设计规范

12、等。3、数据耦合如果两个模块之间通过数据交换信息,且每一个参数均为数据,那么这种模块间的耦合称 为数据耦合。4、模块化模块化就是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集中起来组 成一个整体,从而完成指定的功能,满足问题的要求。5、信息隐蔽信息隐蔽是指在设计模块时,应让一个模块内包含的信息(过程和数据)对于其他不需要 这些信息的模块来说是不能访问的。6、耦合耦合性是对一7、功能内聚如果模块内所处理的元素属于一个整体,完成一个单一的功能,则称为功能内聚个软件结 构内不同模块之间互联程度的度量。耦合强弱取决于模块间接口的复杂程度。8事务流:事务流失指数据流图中输入流被分离成许多数

13、据流,形成许多加工路径,并根据输入值选 择一条路径来执行。9、集成测试集成测试,也叫组装测试或联合测试。 在单元测试的基础上, 将所有模块按照设计要求 (如 根据结构图)组装成为子系统或系统,进行集成测试。模块相互间的协调和通信是这个测 试过程中的主要问题,因此,这个步骤着重测试模块的接口。10、需求分析软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解 法,并且分配给各个软件元素。需求分析是软件定义阶段中的最后一步,是确定系统必须 完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。11、白盒法白盒测试指把测试对象看成一个打开的盒子,测试人员需了解程序

14、的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结 构和数据结构是否有错,实际的运行状态与预期的状态是否一致。12、黑盒法黑盒测试指把测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求,又称为 功能测试或数据驱动测试。13、渐增式测试是先从单个模块开始测试,然后每次将测试后的一个模块添加到系统中并测试,系统像“滚雪球” 一样越滚越大,直到把所有的模块都组装并测试完毕。渐增式测试又可以根据每次添加模块的路线分为自顶向下测试、自底向上测试和混合测试等方式。14、

15、非渐增式测试非渐增式测试:一下子把所有模块放在一起,并把庞大的程序作为一个整体来测试,测试者面对的情况十分复杂。15、软件概要设计所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。为了更好地理解复杂事物,人们常常采用建立事物模型的方法。为了开发出复杂的软件系统, 系统分析员应该从不同角度抽象出目标系统的特性,使用精确的表示方法构造系统的模型,验证模型是否满足用户对目标系统的需求, 并在设计过程中逐 渐把和实现有关的细节加进模型中,直至最终用程序实现模型。16、模块在程序设计中,为完成某一功能所需的一段程序或子程序

16、;或指能由编译程序、装配程序等处理的独立程序单位;或指大型软件系统的一部分。17、路径覆盖路径覆盖是指选择若干个测试用例,运行被测程序,使得运行这些测试用例时,被测程序的每条可执行的路径至少执行一次。18、条件覆盖条件覆盖是指选择足够的测试用例,使得运行这些测试用例后,要使每个判断中每个条件的可能取值至少满足一次,但未必能覆盖全部分支19、判定/条件覆盖判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行,即要求各个判断的所有可 能的条件取值组合至少执行一次。20、条件组合覆盖在白盒测试法中,选择足够的测试用例,使得每个判定

17、中条件的各种可能组合都至少出现一次。显然,满足“条件组合覆盖”的测试用例是一定满足“判定覆盖”、“条件覆盖”和“判定/条件覆盖”的。四、简述题1、软件设计的基本原理包括哪些内容?2、需求分析应遵循的原则是什么?3、为什么说软件测试是软件开发中不可缺少的重要一环,但不是软件质量保证的安全网?4、软件测试的目的是什么?为什么把软件测试的目标定义为只是发现错误?5、增量开发和原型开发有什么相同和不同的地方?6、简述结构化程序设计方法的基本要点。7、 简述文档在软件工程中的作用。8、 简述提高可维护性的方法。9、 什么是模块的影响范围?什么是模块的控制范围?他们之间应该建立什么关系?10、 可行性研究

18、的任务是什么?11、 什么是软件详细设计?该阶段的基本任务是什么?12、 什么是模型?开发软件时为什么要建立模型?1、 软件设计的基本原理:(1) 模块化(四个属性:接口、功能、逻辑、状态)抽象信息隐蔽(4)模块独立性(两个定性的度量标准:耦合性与内聚性)2、 需求分析应遵循的原则是什么? 所有这些分析方法都遵守下述准则:(1)必须理解并描述问题的信息域,根据这条准则应该建立数据模型。(2)必须定义软件应完成的功能,这条准则要求建立功能模型。(3)必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。(4)必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。3、 为什么说软

19、件测试是软件开发中不可缺少的重要一环,但不是软件质量保证的安全网? 软件测试是软件开发中不可缺少的重要一环,原因是:A、 测试的工作量约占整个项目开发工作量的40%左右,几乎一半。如果是关系到人的生命 安全的软件,测试的工作量还要成倍增加。B、 软件测试代表了需求分析、设计、编码的最终复审。 软件测试不是软件质量保证的安全网,因为软件测试只能发现错误, 不能保证没有错误。4、 软件测试的目的是什么?为什么把软件测试的目标定义为只是发现错误? 软件测试的目的有: 软件测试是为了发现错误而执行程序的过程。 一个好的测试用例能够发现至今尚未发现的错误。 一个成功的测试是发现了至今尚未发现的错误。软件

20、测试的目标定义为只是发现错误,原因是软件测试可以有两个目标,一个是预防错误,另一个是发现错误。由于软件开发是人的创造性劳动,人的活动不可能完美无缺,错误可能发生在任何一个阶段,因此预防错误这一目标几乎是不可实现的,所以软件测试的目标 定义为只是发现错误。5、 可行性研究的任务是什么?可行性研究的目的不是解决问题,而是确定问题是否值得去解决。为了达到这个目的, 必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进

21、行的系统分析和设计的过程。6、 简述结构化程序设计方法的基本要点。(1) 采用自顶向下,逐步求精的程序设计方法。(2) 使用三种基本控制结构构造程序,分别是顺序,选择和循环(3) 采用主程序员组的组织形式。7、 简述文档在软件工程中的作用。(1)提高软件开发过程的能见度(2) 提高开发效率(3) 作为开发人员阶段工作成果和结束标志(4) 记录开发过程的有关信息便于使用与维护;(5) 提供软件运行、维护和培训有关资料;(6) 便于用户了解软件功能、性能。8简述提高可维护性的方法。.(1)建立明确的软件质量目标(2) 利用先进的软件开发技术和工具(3) 建立明确的质量保证工作(4) 选择可维护的程

22、序设计语言改进程序文档9、什么是模块的影响范围?什么是模块的控制范围?他们之间应该建立什么关系?模块的影响范围:受该模块内的一个判定影响的所有模块的集合。模块的控制范围:模块本身及其所有下属模块(直接或间接从属于它的模块)的集合。一个模块的影响范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。10、什么是模型?开发软件时为什么要建立模型?所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。为了更好地理解复杂事物,人们常常采用建立事物模型的方法。为了开发出复杂的软件系统, 系统分析员应该从不

23、同角度抽象出目标系统的特性,使用精确的表示方法构造系统的模型,验证模型是否满足用户对目标系统的需求, 并在设计过程中逐 渐把和实现有关的细节加进模型中,直至最终用程序实现模型。五、应用题1、研究生入学考试的科目为英语、数学、政治,录取规则是:a)总分200分以下(不含200分)不录取。b)总分200分以上(含200分)时:i.英语、数学均为60分以上(含60分)录取。ii.数学55分以上(含55分),英语70分以上(含70分)需参加复试。iii.其它情况不录取。用决策树表达此项处理逻辑。2、某银行发放贷款原则如下:(1)对于贷款未超过限额的客户,允许立即贷款;(2)对于贷款已超过限额的客户,若

24、过去还款记录好且本次贷款额在2万元以下,可作出贷款安排,否则拒绝贷款。请用结构化语言描述该原则。答:IF已超过贷款限额IF客户过去还款纪录差拒绝贷款ELSE IF本次贷款额2万拒绝贷款ELSE 作出贷款安排ENDIFELSE允许立即贷款ENDIF3、银行确定储蓄类型部分数据流图如下:试作出事务分析结构的控制结构图。4、高考录取计分子系统有如下功能:(1)计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件;(2)计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取 线文件。试根据要求画出该系统的数据流图。5、某旅馆的电话服务如下:可以拨分机号和外线号码。分机号是从7

25、201至7299。外线号码先拨 9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从100到300中任意的数字串。市话号码是以局号和分局号组成。局号可以是455, 466, 888, 552中任意一个号码。分局号是任意长度为 4的数字串。要求:写出在数据字典中,电话号码的数据条目的定义(即组成)。答:电话号码=分机号|外线号码分机号=72017299外线号码=9+ 市话号码丨长话号码长话号码=区号+市话号码区号=100300市话号码=局号+分局号局号=:455 | 466 | 888 | 552分局号=4数字46、某培训中心要研制一个计算机管理系统。它的业务是: 将学员发来的

26、信件收集分类后,按几种不同的情况处理。1)如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该 课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人 员开出发票给学生。2)如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做 相应的修改,并给学生注销单。3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。 要求:1).对以上问题画出数据流程图。2).画出该培训管理的软件结构图的主图。7阅读以下说明和数据流图,回答问题 1至问题3。说明学生住宿服务系统帮助学生在就学的城市内找以所需的住房,系统对出租的房屋信

27、息、房主信息、需要租房的学生信息以及学生和房主的会面住处进行管理 和维护。房主信息包括姓名、地址、电话号码以及系统分配的唯一身份标识(ID )和 密码;房屋信息包括房屋地址、类型(单间/套间)、适合住宿的人数、房租、 房主的ID以及现在是否可以出租(例如由于装修原因,需等到装修后才可出租 或者房屋已被租出)。每当房房屋信息发生变化时,房主须通知系统,系统将更 新房到文件以便学生能够获得准确的可租用房屋信息,房主向系统中加入可租用的房屋信息时,需交纳一定的费用,由系统自动给出费用信息。房主可随时更新 房屋的各种属性。学生可通过系统查询现有的可租用的房屋, 但必须先在系统中注册。学生信息包括姓名、

28、现住址、电话号码、出生日期、性别以及系统分配的唯一身份标识(ID)和密码。若学生希望租用某房屋,则需要发出租房请求,请求中包含房屋 的详细信息,系统将安排学生与房主会面的时间和地点,并将会面信息通知学生和房主,会面信息包括会面时间、地点以及会面双方的基本信息,系统将记录会 面信息。学生住宿服务系统的顶层图如图1-1所示;学生住宿服务系统的第0层DFD 图如图1-2所示,其中,加工3的细化图如图1-3所示。问题1( 6分)(1) 数据流图1-1缺少了一条数据流(在图1-2中也未给出该数据流), 请给出此数据流的起点和终点,并采用说明中的词汇给出此数据流名。(2) 数据流图1-2中缺少了与查询房屋

29、加工相关的数据流,请指出此数 据流的起点和终点。问题2( 4分)安排会面加工除需要写入会面文件外,还需要访问哪些文件?问题3( 5分)请补齐下列数据字典条目: 登录信息=学生ID+密码 注册信息=数据流图1-1数据流图1-2行李重量W国内乘客50kg *国外乘客rr头等舱经济舱丿普通乘客 残疾乘客 普通乘客 残疾乘客r头等舱普通乘客 残疾乘客经济舱普通乘客残疾乘客收费二(W -50) 8收费二(W -50) 4收费二(W - 50) 12收费二(W- 50) 6收费二(W - 50) 16收费=(W-50) 8收费二(W - 50) 24收费二(W- 50) 12数据流图1-38.乘客可以免费

30、携带 50kg的行李。超过50kg,国内乘客,坐头等舱, 超重部分按每千 克8元收费;乘坐经济舱,超重部分按每千克12元收费;对国外乘客,坐头等舱,超重部分按每千克16元收费;坐经济舱,超重部分按每千克24元收费;残疾乘客费用减半。请用结构化语言、判定树、判定表中的任一种对行李费用计算进行描述。(257页)行李重量W空0 kg免费9、在一栋m层楼的大厦里,用电梯内的和每个楼层的按钮来控制n部电梯的运动。当按下电梯按钮请求在指定楼层停下时,按钮指示灯亮;当电梯到达指定楼层时, 指示灯熄灭。(14)(15)(16)(17)(18)(19)除了大厦的最低层和最高层之外,每层楼都有两个按钮分别指示电梯

31、上行和下行。当这两个按钮之一被按下时相应的指示灯亮,当电梯到达此楼层时灯熄灭,电梯向要求的方向移动。当电梯无升降动作时,关门并停在当前楼层。(1) 请分别写出电梯系统基本事件流和扩展事件流。(提示:起点在中间的某一层)(2) 画出电梯控制类的动态模型(仅考虑一部电梯的情况)。10、下面是某程序的流程图:(1)计算独立路径数;(2)给出一组独立路径。第二部分面向对象一选择题1. 一切软件开发都毫无例外地必须从(4 )。软件功能出发用户出发软件性能出发需求出发2. 在分析阶段通常包含两个方面的工作:建立一个以类图表示的反映问题域静 态关系的(4 );建立一个以用例模型表示的反映(3 )的动态模型。

32、用户需求关系模型系统行为概念模型3.发现类的基本方法不包括(4)。确定客户跟踪资金流事件是潜在的类系统是潜在的类abacadbcbdcdF (13)F (11)FFFFTTTT (12)T排序结果输出4. 继承的基本技巧和技术不包括(3 )0 寻找相似之处 寻找已有的类 选择性继承 遵循单句规则5. 关联的多重性可用来表达一个(4 )、特定值、无限定的范围或者一组(4 )0取值范围 属性 对象 离散值6. 当一个类没有足够的(1)去完成它的职责时,就要依靠与其它类的协作来完成工作。信息操作功能数据7. 一般情况下,区分主要参与者与次要参与者应该以使用系统时的(2)为依据,或者以一个(4)是谁发

33、起的作为主要依据。重要程度 业务量 业务过程 交互过程8. 前置条件描述了( 2)之前系统必须满足的条件。系统运行 执行用例 系统启动 成功执行9. 用例之所以被广泛采用的主要原因是,用例详细地描述了系统被使用时的(3),使得用户能够明白新系统到底是什么样的。执行过程 操作细节 行为细节 功能细节10. 顺序图描述了对象之间传递消息的(2),它用来表示用例中的( 4 )0执行顺序 时间顺序 操作顺序 行为顺序11. RUP是重型方法论的典型代表,它的核心理念是:“(2)、以架构为中心、迭代和增量的软件开发过程。”测试驱动 用例驱动 模型驱动 功能驱动12. 如果说用例图显示(2、应该做什么,活

34、动图则指明了(2 )将如何实现它的目标。对象系统用例参与者13基本事件流是参与者在用例中所遵循的(3 )o基本原则 二填空题执行路径 逻辑路径 执行步骤1.需求调研是 (了解问题),分析是(定义问题),而设计则是(解决问题)。2.建立概念模型的目的是帮助开发团队理解( 问题域、的各种概念、各种名词、以及它们之间的各种关系。而建立用例模型的目的是帮助开发团队(理解、用户对系统的各种功能需求3.类图包含(类名)、(属性、和操作等信息。4.子类应该从父类继承所有的东西,这种概念叫做(纯粹、继承。如果不这样的话,代码将很难( 理解、和维护。5.关联通过组合属性和方法来实现。属性( 存储、维护关系的信息

35、,方法(保证、信息是当前可用的。6.类的职责是类知道或要完成的(事情 )o类所知道的事情是它的( 数据),它要完成的事情就是它的(功能)o7.概念模型是帮助开发团队了解并在此基础上理解用户所处的环境”,而 用例模型则是帮助开发团队弄清楚用户具体想解决什么问题”前者是( 静彼此交互 改变 半成品)o活的、进行建模, 其状态。)的应用程16.活动图是用来对不同区域的工作如何( 而状态图用来表示单个对象,以及对象的行为如何(17.框架和类库最重要的区别是:框架是一个(序,而类库只包含一系列可被应用程序( 调用的类18.我们可以说,类库是(死的),而框架是(过调用类库来完成特定的功能,而框架则通过调用

36、应用程序来实现整个操作流 程。应用程序通态模型 ),为后者工作的展开建立了一个总体框架;后者是(动态模型),为实现前者注入了活力。两者相辅相成,一般情况下,其( 工作顺序 )不 分先后,而是以一种()方式向前推进。8.首先,用例是由一组( 用例实例)组成的,用例实例也就是常说的使用场景”就是用户使用系统的一个特定的、实际的场景;其次,用例应该给参与者带来(可见 )价值,即参与者的参与应该能得到好处;最后,用例是在(系统中)的,而不是( 系统外)的东西。9.用例是满足需求的(过程 ),而需求则是过程背后所实现的(价值 )。这正是用例建模的( 核心思想)。10. 假设描述的是系统在使用用例之前必须

37、满足的状态,这些(条件 )并没有经过用例的检测,(用例 )只是假设它们为真。11. 识别用例时的一个常见错误是把用例当成是(单独 )的步骤、操作或事务的处理。12. 构建用例模型需要经历三个阶段:确定系统的( 参与者 )、合并( 需求)获得用例、细化用例描述。13. 用例图显示了系统的(一组用例)、用例的参与者以及用例和参与者之间的(关系 )014. 顺序图主要有4个标记符:对象、(生命线、消息和(激活 、o15. 状态图用来描述一个( 特定、对象的所有可能状态及其引起状态(转移、的事件。19. 依赖倒置原则对我们的启发是:依赖于抽象。因此,要针对(接口 、编程,不针对( 实现、编程。20.

38、通常来说,接口 ”就是( 一种特殊的抽象类 、。针对接口编程的组件不需要知道(对象、的具体类型和实现,只需要知道抽象类定义了哪些接 口,这减少了实现上的( 依赖关系)o三问答题1. 分析工作的主要内容及结果是什么?2. 类与对象之间有什么区别?3. 组合与聚合有什么异同?4. 建立概念模型有哪些步骤?5. 什么是参与者?6. 用例有什么特征?7. 什么是基本事件流?举例说明。&什么是边界类?什么是实体类?什么是控制类?9. 顺序图有什么作用?10. 请对顺序图和通信图进行比较。11. 什么是过程?为什么需要过程?12. 统一软件开发过程分为哪几个阶段?各个阶段主要完成哪些工作?13. 简述面向

39、对象各种模型的演化过程。14. 识别用例和描述用例有什么区别?15. 组件与类有什么异同?16什么是开闭原则?如何理解?17. 什么是接口隔离原则?如何理解?18. 为什么说要为人写代码,而不是为机器写代码?19. 什么是里氏替换原则?如何理解?20. 对分析和设计模型进行测试有什么优点?四应用题1. 考虑以下对习题管理系统的需求,识别候选类并说明理由:该系统的需求陈述为:在一个公共习题库的支持下,使各科教师可以在系统中编 写习题及其标准答案,并将编写的习题及答案加入题库;或者从题库中选取一组 习题,组成一份向学生布置的作业,并在适当的时候公布答案。学生可以在系统 中完成教师布置的作业,也可以

40、在题库中选择更多的习题作练习。 教师可以通过 系统检查学生的作业,学生也可以在教师公布答案后对自己的练习进行核对。系统维持对题库的管理,并对教师及学生的权限进行检查:只有本课程的教师可以 提交或修改习题,并指定哪些习题的答案可以向学生公开。2. 超市销售管理系统的需求描述如下,请识别候选类并说明理由:该系统是超市业务管理系统的一个子系统。为了简化问题,我们对它的功能作了 适当的限制:只负责前台的销售管理,而且不处理信用卡付款或会员优惠等业务。 其功能需求是:(1) 为顾客选购的商品计价、收费、打印清单;(2) 记录每一种商品的编号、单价及现有数量;(3) 帮助供货员发现哪些商品将要脱销,以便及

41、时补充货源;(4) 随时按上级系统的要求报告当前的货款数量、增减商品种类或修改商品价格;(5) 交接班时结算货款数目,报告上级系统。3. 写出图书馆中借阅图书的用例描述。4. 写出图书馆中归还图书的用例描述。5. 音像商店的问题陈述如下:一个新的音像商店准备向比较广泛的人群销售录像带和光碟。该商店的管理 决定在计算机系统的支持下来运作。对这种管理方式已经有许多小规模业务软件 包,适合于用户化和进一步开发。为了帮助对软件包的选择,该商店雇用了一个 业务分析员,他的任务就是确定和表示这个需求。该音像商店一开始将存有大约1000盘录像带和500张光碟,这些库存已经 向一个供应商订购,但在未来的订购中

42、将接触更多的供应商。 所有的录像带和光 碟都具有一个条形码,以便可以集成一个条形码扫描仪来支持销售和返还。 客户 会员卡也同时条形码化。现存的客户能够预定录像带和光碟并指定某天来取。 系统必须拥有灵活的搜 索机制来回答客户的询问,包括这个音像商店还没有进货的电影 (但可以是已经 请求订购了的)。客户最多可租借8盒带子(光碟),如果有拖欠记录,则需为每盒带子(光 碟)交纳相当于其成本的押金,否则,不能租借。请建立该音像商店的用例模型(含用例图和租借音像制品用例的用例描 述)。6. 建模借阅图书”的顺序图。7. 建模 归还图书”的顺序图。& 一个计算机制造厂商提供了互联网购买计算机的可能性,客户可

43、以在制造厂 商的Web页面上选择一台计算机, 计算机分为服务器、台式机和笔记本。客户 可以选择标准配置,或者在线建立自己希望的配置。可配置的构件(如内存)显 示在一个可供选择的表中。对每个新的配置,系统可以计算价格。要发出订单,客户必须填上运送和付款信息,可接受的付款方式为信用卡和 支票。一旦订单被输入,系统向客户发送一个消息,并附上订单的细节。在等待 计算机送到的这段时间,客户可以在任何时候在线查到订单的状态。后端订单处理包含下面所需的步骤:验证客户的信任度和付款方式、向仓库 请求订购的配置、打印发票并且请求仓库把计算机运送给客户。请识别参与者及用例(含用例名、简要用例描述及使用该用例的参与

44、者) 三问答题1. 分析工作的主要内容及结果是什么?分析工作的主要内容是研究问题域和用户需求,运用面向对象的观点和原则发现问题域中与系统责任有关的对象,以及对象的特征和相互关系。分析的结果是确定描述问题域与系统责任所需的对 象,定义对象的属性、服务以及它们之间的关系。2. 2.类与对象之间有什么区别?类是对资源的定义,它所包含的信息主要用来描述某种类型实体的特征以及对该类型实体的使用方法。对象是具体的实体,它遵守类制定的规则。从软件的角度看,程序通常包含的是类的集合以及类 所定义的行为,而实际创建信息和管理信息的是遵守类的规则的对象。3.3.组合与聚合有什么异同?同:两者都可表示类之间整体和部

45、分的关系,整体类都是由部分类组成。异:聚合关系是“ has-a”关系,组合关系是“contains -a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强; 聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象, 同时也就删除了代表部分事物的对象。4.4.建立概念模型有哪些步骤?1、找出问题域中候选概念。用概念类分类列表和名词短语分别识别的方法找出当前需求中的候选概念类。2、将概念绘制到概念模型中。在概念模型中描述找出的概念类。3、在概念之间加入必要的 关联来记录概念之间需要保持的联系。在概念类之间添加

46、必要的关联来记录那些 需要保存记忆的关系。4、为概念添加必要的属性,来满足需求信息。5.什么是参与者? 参与者(actor )是系统外部的一个实体,它以某种方式 参与了用例的执行过程。参与者用于表示使用系统的对象, 或者说,参与者由它 们参与用例时所担当的角色来代表。6.用例有什么特征?( 1)用例总是由参与者启动。用例所代表的功能必须由参与者激活,而后才能执行。一般情况下,参与者可能没有意识到启动了一 个用例。换句话,参与者需要系统完成的功能,其实都是通过用例具体完成的, 参与者一定会直接或间接的命令系统执行用例。(2)用例为参与者提供结果值。用例必须为参与者提供实在的结果值,虽然这个值并不

47、总是重要的,但是能被参 与者识别。(3)用例具有完整性。用例是一个完整的描述。虽然编程实现时, 一个用例可以被分解成几个小用例(函数),每个小用例之间互相调用执行,一 个小用例可以先执行完毕,但是该小用例执行结束并不能说这个用例执行结束。 也就是说,不管用例内部的小用例是如何通信工作的, 只有最终产生了返回给参 与者的结果值,才能说用例执行完毕。7什么是基本事件流?举例说明。参与者在用例中所遵循的逻辑路径。因 为它描述了当各项工作都正常进行时用例的工作方式,所以通常称为基本路径。 事件流描述了用户和执行用例之间交互的每一步。 例如,图书馆借出图书用例的 基本事件流:管理员输入借书证信息系统要确

48、保借书证信息的有效性检 查是否有超期的借阅信息管理员输入要借阅的图书信息系统将借阅者的借 阅信息添加到数据库中系统显示该借阅者的所有借阅信息8什么是边界类?什么是实体类?什么是控制类?边界类:用于建立系统与其参与者之间交互的模型。这种交互通常包括接收来自用户和外部系统的信息 与请求以及将信息与请求提交到用户和外部系统。实体类:实体类通常用于对持久的信息建模,即主要对诸如个体、实际对象或实际事件的某些现象或概念的 信息及相关行为建模。 控制类:代表协调、排序、事务处理以及其他对象的控 制,经常用于封装与某个具体用例有空的控制。9顺序图有什么作用? 顺序图的主要用途之一是为用例构建逻辑模型,任 何

49、用例都可以使用顺序图进行进一步的阐明和实现, 即把用例所表达的需求,转 化为进一步的、更加正式层次的精细表达。10. 请对顺序图和通信图进行比较。 顺序图主要描述特定用例时系统各组 成部分之间交互的次序,强调的是交互的时间顺序,而通信图则从另一个角度描 述系统对象之间的链接,强调的是交互的情况和参与交互的对象的整体组织。11. 什么是过程?为什么需要过程? 一个过程定义了为达到某个确定的目 标,需要什么人在什么时间以何种方式做何种工作。 一个有效的过程为有效地 开发高质量的软件提供准则,它获取并提出当前技术条件下可行的最佳实践方案。因此,它可降低风险并增强预见性。12. 统一软件开发过程分为哪

50、几个阶段?各个阶段主要完成哪些工作?分四个阶段:初始(先启)、精化、构建、交付(产品化)。先启阶段:明确项目目 标和范围,其主要任务是理解与分析需求,生成用例模型框架,对优先级较高的 用例进行细化。 精化阶段:确立系统架构和技术方向,完成部分优先级最高的用例开发,并完善所有的用例模型。构建阶段:大规模并行实施设计、开发、单元测试,即经多次迭代,逐渐完成不同优先级的用例开发。产品化阶段:产品验收、部署、发布,即进行各种功能、性能测试,对其进行产品化、部署,完 成整个系统的开发工作。13. 简述面向对象各种模型的演化过程。(1)从需求出发,创建问题域一静 一动两个模型:概念模型和用例模型。首先利用

51、“名词动词法”从需求描述中提 取相应的类来建立概念模型,并添加主要属性及识别它们之间的关联关系; 对于 较复杂的应用系统,则必须首先进行业务分析,建立业务模型后再建立概念模型。 其次根据用户需求编写用例描述、 绘制用例图,建立包括用例描述和用例图在内 的用例模型,此时可以进行用户界面原型的创建, 从中发现用户的使用场景,建 立开发人员与用户之间进行沟通的共同基础。用户界面模型的创建既可以使用可 视化语言,也可以简单地使用绘制草图的方式来实现。(2)在用例模型的基础上, 进行健壮性分析,目的是发现实体类、控制类和边界类,并绘制健壮性分析图,从而较平滑地从分析阶段向设计阶段过渡。如果用例较复杂,则我们在描述事件流时,可以借助活动图来表示。14. 识别

温馨提示

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

评论

0/150

提交评论