1、渐增式和非渐增式各有何优缺点?为什么通常采用渐增式?非渐增式是将所有的模块一次性连接起来,简单、易行,节省时间,但测试过程中难于查错,发现错误也很难定位,测试效率低。渐增式是将模块一个一个接入系统,每连入一个模块,都要对新系统进行测试。这种组装测试方案比较非渐增式,容易查出错误,及进行错误定位,有利于查处所有模块接口错误,因此测试效率高。因此通常采用渐增式。2、简述驱动模块比桩模块容易设计的原因?因为驱动模块是模拟主程序或者调用模块的功能,出于被测试模块的上层,所以驱动模块只需要向被测模块传递数据,接收打印从被测模块返回的数据的功能,较容易实现。桩模块用于模拟那些由被测模块所调用的下属模块的功能。由于下属模块往往不止一个,也不止一层,也由于模块接口的复杂性,桩模块很难模拟各下层模块之间的调用关系。同时为了模拟下层模块的不同功能,需要编写多个桩模块,而这些桩模块所模拟的功能是否正确,也很难进行验证。因此,驱动模块的设计显然比桩模块容易。3、简述CMMI中的能力等级。在CMMI中,针对每个过程域设定了六个能力等级(1)0级:未完成级。(2)1级:已执行级(3)2级:已管理级(4)3级:已定义级(5)4级:已定量管理级(6)5级:持续优化级4、简述螺旋模型的基本开放过程。(1)需求定义。利用需求分析技术理解应用领域,获取初步的用户需求,制定项目开发计划。(2)风险分析。根据初始需求或改进意见评审可选用的方案,给出消除或减少风险的途径。(3)工程实现。利用快速原型构造方法针对已知的用户需求生成快速原型。(4)评审。将原型提交用户使用并征询用户改进意见。上述过程将不断迭代,直至给用户满意的目标软件产品。5、简述瀑布模型存在的问题。问题主要有(1)要求客户能完整、正确和清晰地表达他们的需求;并要求开发人员一开始就要理解这一应用。(2)由于需求的不稳定性,使设计,编码和测试阶段都可能发生延期;并且当项目接近结束时,出现大量的集成和测试工作。(3)在开始的阶段中,很难评估真正的进度状态;并且直到项目结束之前都不能演示系统的能力。(4)在一个项目的早期阶段,过分地强调了基线和里程碑处的文档;并可能需要花费更多的时间用于建立一些用处不大的文档。全真模拟123451、简述面向对象方法源于的基本思想面向对象方法的基本思想是从现实世界中客观存在的事物出发来构造软件,并在系统构造中尽可能运用人类的思维方式。面向对象强调以问题域中的事物为中心来思考问题、认识问题,并根据这些事物的本质特征,把它抽象地表示为系统中的对象,作为系统的基本构成单位。面向对象软件开发方法的一般思路是首先获取需求,用各种文字说明,图形,表格等建立描述客观世界的抽象模型,识别与问题有关的类与类之间的联系,加上与实现环境有关的类,逐步细化模型;经过设计的类与联系进行调整后,完成整个系统的描述,然后对类进行编码和测试,得到结果。2、简述RUP设计方法组成部分RUP设计方法由三个部分组成1.给出用于表达设计模型中基本成分的四个术语,子系统,设计类,接口和用况细化。2.规约了设计模型的语法,指导模型的表达。3.给出了创建设计模型的过程以及相应的指导。3、简述软件测试的步骤以及相应步骤的测试对象1.单元测试,测试对象对单元模块2.集成测试,测试对象为组装后的程序模块3.有效性测试,测试对象为可运行的目标软件系统4.系统测试,测试对象为整个系统4、什么是集成测试?非渐增式和渐增式有什么区别?集成测试就是将模块组合起来称为一个完整的系统对其进行测试。非渐增式和渐增式的区别1.非渐增式是将模块先进性单元测试然后组装在一起进行测试。渐增式是煮个将未测试的模块组装到已经测试过的模块上进行集成测试,没加入一个就测试一次。2.非渐增式需要桩模块和驱动模块,非渐增式开始可以并行测试。3.渐增式可以及时的发现接口错误,非渐增式很难发现接口发现错误。4.渐增式开始不能并行测试,渐增式测试比较彻底。5、简述瀑布模型的提出对软件工程的主要贡献。1.在决定系统怎样做之前存在一个需求阶段,它鼓励对系统做什么规约。2.在系统构造之前存在一个设计阶段,它鼓励规划系统结构3.在每一阶段结束时进行评审,从而允许获取方法和用户的参与。4.前一步可以作为下一步被认可的,文档化的基线,并允许基线和配置早期接受控制6、简述画数据流图应注意的问题。注意的问题1.在DFD图中,数据流砌到连接其他实体的作用。在应用中,数据流和数据存储一般需要给出标识,而对流入或流出数据存储的数据流,在语义比较清晰的情况下,一般可以不给出它们的标识。2.加工之间可以有多个数据流,这些数据流之间可以没有任何直接关系,数据流图也不表明它们的先后次序。3.对于一个比较大的软件系统,为了避免由于采用一张DFD图来描述系统功能而出现层次不清,难以理解的情况,我那个网采用多层次的数据流图。7、简述用况图的作用。用况图可以为系统建模,描述软件系统行为的功能结构,也可以对业务建模,描述企业或组织的业务过程结构。不论是对系统建模还是对业务建模,都涉及到系统/业务语境的模型化和系统/业务需求的模型化。8、简述集成测试的分类以及各自的缺点。集成测试可分为:1.自顶向下2.自底向上缺点:1.自顶向下需要设计承接模块以及随之而来的困难。2.自底向上只有在加上最后一个模块时,程序才作为一个实体存在。9、简述软件测试与软件调试相比,在目的、技术和方法等方面的区别。1.测试从一个侧面证明程序员的失败,调试是为了证明程序员的正确。2.测试以已知条件开始,使用预先定义的程序且有预知的结果,不可预见的仅是程序是否通过调试,调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。3.测试是有计划的,并要进行测试设计,调试是不受时间约束的。4.测试是一个发现错误,改正错误,重新测试的过程。调试是一个推理过程。5.测试的执行是有规程的。调试的执行往往要求程序员进行必要推理。6.测试经常是有独立的测试组在不了解软件设计的条件下完成的。调试必须由了解详细设计的程序员完成。7.大多数测试的直行和设计可由工具支持。调试时,程序员能利用的工具主要是调试器。10、软件生存周期模型的含义。软件生存周期模型是一个包括软件产品开发,运行和维护中有关过程,活动和任务的框架,覆盖了从该系统的需求定义到系统的使用终止。11、简述构建系统功能模型的步骤。构建系统功能模型的步骤:1.建立系统环境图,确定系统语境2.自顶向下,逐步求精,建立系统的层次数据流图3.定义数据词典4.描述加工12、简述RUP的特点。RUP是一种以用况为驱动的,以体系结构为中心的迭代、增量式开发。13、简述领域模型和业务模型在系统开发中的作用。其作用如下:1.领域模型用于补货系统语境中的一些重要领域对象类,一般是以类图表达的。2.业务模型是用于在系统开发中捕获业务处理和其中的业务对象。14、简述软件测试的步骤以及基本任务。软件测试步骤为:单元测试,集成测试,有效性测试和系统测试。基本任务:1.单元测试的任务制对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能。2.集成测试的任务是检查与设计相关的软件体系结构的有关问题。3.有效性测试的任务是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。4.系统测试的任务是把已确认的软件与其他系统元素结合在一起进行测试。15、简述软件生存周期中,软件确认过程的意图、活动和任务。意图:证实所期望使用的软件工作产品是否满足其需求。1.活动1,过程实现任务1,应作出有关该项目是否进行确认工作的决定,并确认所需工作的组织上的独立程度。任务2,如果项目进行确认工作,应为确认系统或软件产品建立相应的确认过程,并定义确认任务,包括执行这些任务所关联的方法,技术和工具。任务3,如果项目进行独立的确认工作,应选择一个有资格的组织负责该工作。确保确认人员的独立性,并有权力执行确认任务。任务4,应开发确认计划,并建立相应的文档。任务5,应实施确认计划。2.活动2,确认任务1,编制所选的测试需求,测试用例以及测试规格说明,以便分析测试结果。任务2,确保这些测试需求,测试用例以及测试规格说明反映特定期望使用的特殊需求。任务3,按任务1和2进行测试,其中还包括强度,边界和单个输入的测试软件产品是否能够分离以及是否将错误影响最小化的测试用户使用软件产品能否成功实现其期望任务的测试任务4,确认软件产品是否成功实现其期望的使用。任务5,测试软件产品是否适合已选择的目标环境。16、简述结构化分析的描述工具以及步骤。结构化分析的描述工具有:1.数据流图2.数据字典3.描述加工逻辑的结构化语言,判定表,判定数步骤为:1.了解当前系统的工作流程,获取当前系统的物理模型。2.抽象当前系统的逻辑模型3.建立目标系统的逻辑模型4.做进一步补充和优化17、简述RUP的分析模型中,类的分析的目标和任务。1.类的分析的目标:一时标识并维护分析类的责任;而是基于它们的用况细化中的角色,标识并维护分析类的属性和关系;三是捕获分析类细化中的特殊需求。2.类的人系的任务:任务1,标识责任任务2,标识属性任务3,标识关联和聚合18、简述软件测试中,路径选取的一般原则。1.选取最简单的、具有一定功能含义的入口/出口路径2.在已选取的基础上,选取无循环的路径。选取短路径,简单路径。3.选取没有明显功能含义的路径,此时要研究这样的路径为什么存在,为什么没有通过功能上和里的路径得到覆盖。19、简述软件生存周期过程描述中,软件需求分析过程的意图、活动和任务。意图:建立系统软件部分的需求。活动和任务:项目应按可用的组织策略和规程,实施以下活动和任务。活动:软件需求分析任务1:建立软件需求和文档。任务2:评估软件需求,并建立相应的评估结果文档。任务3:按软件复审过程进行软件需求评审。20、简述因果图生成测试用例的基本步骤。1.通过软件规格说明书的分析,找出一个模块的原因,并给每个原因和结果赋予一个标识符。2.分析原因与结果之间以及原因与原因之间的对应关系,并画出因果图。3.在因果图上标识出一些特定的约束或限制条件。4.把因果图转换成判定表。5.把判定表的每一列拿出来作为依据,涉及测试用例。21、解释结构符“+”、“【|】”、“{}”的含义,并举例说明。“+”是顺序结构,是指A是由数据B和数据C顺序构成“【|】”是选择结构,是指数据A是由数据B或数据C定义的,即数据A不可能同时由B和C定义。“{}”是重复结构,是指数据A是由多个重复出现的数据B构成的。例如,学成成绩是由姓名性别学号科目和成绩构成的则记为:学生成绩=姓名+性别+学号+科目+成绩性别是男或女,记为性别=【男|女】学生成绩表是由多个学生成绩构成的,记为学生成绩表={学生成绩}22、简述类的操作。1.类的操作是一个对类中所有对象要做事情的抽象,他可以被其他对象所调用2.操作的可见性和属性的可见性相似,可分为公有的,可以被其他类调用;受保护的,只有其子类可以调用;私有的,只有本类的操作才能使用;包内的,只有在同一包中声明的类才能使用。3.操作名是该操作的标识,是一正文串4.操作的返回类型是对操作的实现类型或操作的返回值类型的规约,它与具体的实现语言有关。5.操作的性质串用于确定操作的特性值。6.操作可分为类范围的操作和对象范围的操作。23、简述体系结构分析的目标和任务。1.体系结构分析的目标是通过标识分析包和分析类,建立系统分析模型和体系结构“骨架”,并标识有关分析包和分析类的特定需求。2.体系结构分析的任务:任务1,表示分析包任务2,处理分析包之间的共性任务3,标识服务包任务4,定义分析包的依赖任务5,标识重要的实体类任务6,标识分析包和重要实体类的公共特定需求。24、增量模型的突出优点是什么?1.第一个可交付版本所需要的成本和时间是较少的,从而可减少开发由增量表示的小系统所承担的风险。2.由于很快发布了第一个版本,因此可减少用户需求的变更。3.允许增量投资,即在项目开始时可以仅对一个或两个增量投资。25、简述在软件测试中,路径测试的测试策略有哪些。1.路径覆盖:执行所有可能穿过程序控