1、软件工程课后题答案第一章软件工程引论在下列选项中,(D )不是软件的特征。A .系统性与复制性B.可靠性与一致性C.抽象性与智能型D.有形性与可控性软件是一种(B )产品。A .有形B.逻辑C.物质D.消耗软件工程是一种(A )分阶段实现的软件程序开发方法。A. 自顶向下B.自底向上C.逐步求精D.面向数据流与计算机科学的理论研究不同,软件工程是一门(B )学科。A .理论性B.工程性C.原理性D,心理性软件工程与计算机科学性质不同,软件工程者重于(C )。A .原理探讨B.理论研究C.建造软件系统D.原理性的理论下列说法正确的是(B )软件工程的概念于20世纪50年代提出软件工程的概念于20
2、世纪60年代提出A. 20世纪70年代出现了客户机/服务器技术20世纪80年代软件工程学科达到成熟软件工程方法学中的软件工程管理是其中的一个重要内容,它包括软件管理学和软件工 程经济学,它要达到的目标是(D )A .管理开发人员,以开发良好的软件B .采用先进的软件开发工具,开发优秀的软件C .消除软件危机,达到软件生产的规模效益D .以基本的社会效益为基础,工程化生产软件第二章软件生命周期及开发模型1. 软件生命周期包括可行性分析和项目开发计划、需求分析、总体设计、详细分析、编码、(B )、维护等活动。A .应用B.测试C.检测D.以上答案都不正确软件生命周期模型有多中,下列项目中,(C )
3、不是软件生命周期模型。A .螺旋模型B.增量模型C.功能模型D.瀑布模型软件生命周期中时间最长的阶段时(D )A .需求分析阶段B.总体设计阶段C,测试阶段D.维护阶段瀑布模型是一种(1)A,软件开发方法B.软件生存周期C.程序设计方法学D.软件生存周期模型软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A )A,瀑布模型B.对象模型C.螺旋模型D.层次模型在结构化的瀑布模型中,(D )阶段定义的标准将成为软件测试中系统测试阶段的目标A.详细设计阶段B.总体设计阶段C.可行性研究阶段D.需求分析增鼠模型是一种(B )的模型A.整体开发B.非整体开发C.灵活性差I).较晚产生工作软
4、件(C )是指模拟某种产品的原始模型A.模型B.最初模型C.原型1).进化模型建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是(B )A.用于验证软件需求的原型B.垂直原型C.用于验证设计方案的原型D.用于演化出目标 系统的原型方法首先用结构化分析(SA )对软件进行需求分析,然后用结构化设计(SD )方法进行总 体设计,最后是结构化编程(Structured Programming, SP )。第五章面向对象的需求分析简述对象与类之间的联系与区别。答:对象(Object )是系统中用来描述客观事物的-个实体,它是构成系统的一个基本单 位,由一组属性和对这组属性进行操作的一组服
5、务组成。类(Class )是具有相同属性和服 务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和 服务两个主要部分。具体来说,类由数据和方法集成,它是关于对象性质的描述,包括外部 特性和内部实现两个方面。类是具有相同属性和行为的一组相似对象的抽象,在现实世界中 并不能真正存在。类好比是一个对象模板,根据需要用它可以产生多个对象(即类的实例)。 因此类所代表的是一个抽象的概念或事物,类是静态概念;在客观世界中实际存在的是类的 实例,即对象,对象是动态概念。类是对象的抽象,有了类之后,对象则是类的具体化,是 类的实例。1. 试描述继承性与多态性的作用。答:继承(Inh
6、eritance )是面向对象方法学中的核心概念,它是指从一个类的定义中可以 派生出另一个类的定义,被派生出的类(子类)可以白动拥有父类的全部属性和服务。继承 简化了人们对现实世界的认识和描述,在定义子类时不必重复定义那些己在父类中定义过的 属性和服务,只要说明它是某个父类的子类,并定义自己特有的属性和服务即可。继承机制 是组织构造和复用类的种工具,如果将用面向对象方法开发的类作为可复用构件,那么在 开发新系统时可以直接复用这个类,还可以将其作为父类,通过继承而实现复用。复用减少了程序的代码量和复杂度,提高了软件的质量和可靠性,软件的维护 修改也变得更加容易。多态性(Polymorphism
7、)是指同名的方法或操作在不同类型的对象中有各自相应的实现。 在存在继承关系的一个类层次结构中,不同层次的类可以共享一个操作,但却有各自不同的 实现。当一个对象接收到一个消息请求时,它根据其所属的类,动态地选用在该类中定义的 操作。多态性机制不但为软件的结构设计提供了灵活性,减少了信息冗余,明显提高了软件 的可复用性和可扩充性。2. 通过看图回答下面的问题。在图所示的用例图中: XI、X2和X3表示用例中的什么? 己知UC3是抽象用例,那么XI可通过图中哪些用例与系统进行交互? 图中哪个用例时UC4的可选部分,哪个用例是UC4的必须部分?答:XI、X2和X3表示用例中的角色(或参与者)。已知UC
8、3是抽象用例,那么XI可通过 图中的UC4、LC1用例与系统进行交互。UC2是UC4的可选部分,UC5是UC4的必须部分。 第六章面向对象的软件设计说明面向对象的集成测试包含哪些内容。答:面向对象系统是由对象到子系统、再到系统的集成。通常是松耦合的,系统中没有一个 明显的顶层,即面向对象系统没有严格的层次控制结构,相互调用的功能也分散在不同的类 中,类通过消息的相互作用申请和提供服务。此外, 面向对象程序具有动态性,程序的控制流往往无法确定。因此,增量式集成测试不再适用,只能采用基于操作的集成测 试。面向对象的集成测试关注系统的结构和内部的相互作用,可以分成两步进行:先进行静 态测试,再进行动
9、态测试。面向对象基于操作的集成测试策略有两种:基于线程的测试和基于使用的测试。基于线程的测试把相应系统的一个输入或一个事件所需要的那些类集成起来。分别集成并测 试每个线程,同时应用回归测试以保证不产生副作用。基于使用的洲试首先测试几乎不使用服务器类的那些类(称为独立类),把独立类都测试完 之后,再测试使用独立类的下一个层次的类(称为依赖类)。对依赖类的测试一个层次一个 层次地持续进行下去,直至把软件系统构造完为止举例说明各种程序设计语言的特点及适用范围。答:以常见的一些编程语言为例:FORTRAN语言,它不仅面向科学计算,数据处理能力也极强。适用于科学工程计算Pascal语 言,具有很强的数据
10、和过程结构化能力,它语言简明,数据类型丰富,程序结构严谨。它是 第一个体现结构化编程思想的语言。用于描述结构化算法和科学计算,操作系统的编写 C语言:功能强大,支持复杂的数据结构,可大量运用指针,具有丰富灵活的操作运算符及 数据处理操作符,它还具有汇编语言的某些特征,使程序运行效率高。可用于许多领域,特 别是在操作系统等方面有较大优势。Coble语言,它具有极强的数据定义能力,程序说明与硬件环境说明分开、数据描述与算法 描述分开。结构严谨层次分明,广泛用于商业数据处理。SQL:结构化查询语言,用于对数据库进行存取管理。汇编语言和Ada语言,主要用于实时处理和编写系统软件。Prolog .Lis
11、p语言oLisp是一种函数型语言,特别适用于组合问题中符号运算和表处理, 用于定理证明、树的搜索和其他问题的求解。Prolog是种逻辑型语言,它提供了支持知 识表示的特性,每一个程序由一组表示事实、规则和推理的句子组成,比较接近与自然语言。 这两种语言主要用于人工智能系统开发。C+、Java语言,是面向对象的设计语言,用于面向对象的方开发软件。1. 选择面向对象程序设计时应考虑哪些因素?答:纯面向对象程序设计语言着重支持面向对象方法研究和快速原型的实现,而混合型面向 对象程序设计语言的目标则是提高运行速度和使传统程序员容易接受面向对象的思想。成熟 的面向对象程序设计语言般都是提供丰富的类库和强
12、有力的开发环境。除此之外,开发人 员在选择面向对象程序设计语言时,还应考虑可复用性、类库和开发环境以及一些其他的因 素。语言、开发环境和类库这3个因素综合起来,共同决定了可复用性。考虑类库时,不仅 应该考虑是否提供了类库,还应考虑库中提供了哪些有价值的类。在选择编程语言时还应考 虑的因素有为用户学习面向对象分析、设计和编程技术所能提供的培训服务;在使用面向对 象程序设计语言期间能提供的技术支持;能提供给开发人员使用的开发工具、开发平台和发 布平台;对机器性能和内存的需求;集成已有软件的容易程度等。第七章软件测试技术简述软件测试的步骤。答:首先要分别完成每个单元(模块)的测试任务,以确保每个模块
13、能正常工作。然后把已 经测试过的模块组装起来,进行集成测试。完成集成测试以后,要对开发工作初期制定的确 认准则进行检验。完成确认测试以后,为检验它能否与系统的其他部分协调工作,还需要进 行系统测试。软件测试步骤如下。1)制订测试计划。该计划被批准后转向第2)步。2)设计测试用例。该用例被批准后转向第3)步。3)如果满足“启动准则”,那么执行测试。4)撰写测试报告。5)消除软件缺陷。如果满足“完成准则”,那么正常结束测试。1. 简述黑盒测试和白盒测试的方法并举例说明。答:1)黑盒测试也称功能测试或数据驱动测试。在测试时,把程序看作一个不能打开的黑盒子, 它是在完全不考虑程序内部结构和内部特性的情
14、况下,测试者在程序接口进行测试,它只检 查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产 生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试技术是穷 举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有 的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不 合法但是可能的输入进行测试。黑盒测试能够发现的错误类型包括:功能不对或遗漏、界面 错误、数据结构或外部数据库访问错误、性能错误、初始化和终止错误等。黑盒测试技术主 要包括等价类划分、边界值分析、因果图、错误推测等方法。2)白盒测试也称
15、结构测试或逻辑驱动测试,它是在已知程序内部结构的情况下设计测试用 例的测试方法。在使用白盒测试方法时,测试者必须检查程序的内部结构,从检查程序的逻 辑着手,对所有逻辑路径进行测试,得出测试数据。白盒测试的主要技术有逻辑驱动、路径 测试等,主要用于软件验证、检验语法错误、编译错误、性能问题、逻辑问题、判定条件问 题和编程规范等。2. 软件测试分为哪几个阶段?每个阶段分别测试哪些内容?答:根据软件开发流程,软件测试工作可以分为单元测试、集成测试、系统测试和验收测试。 单元测试是对软件中的基木组成单位进行的测试,验证每个模块是否满足系统设计说明书的 要求。集成测试是将己测试过的模块组合成子系统,重点
16、测试各模块之间接口和联系。系统 测试是对己经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等是否满 足其规约所指定的要求。验收测试是根据需求规格说明书中定义的全部功能和性能要求,确 认软件是否达到了要求。第八章软件维护技术为什么说软件维护是不可避免的?答:为了保证软件在运行期间正常运行,延长软件的使用寿命,发挥良好的社会效益和经济 效益,软件维护必不可少软件可维护性与哪些因素有关?采用哪些因素能提高软件可维护性?答:决定软件可维护性的质量属性主要有以下几个方面。可理解性。可理解性是指人们通过阅读源代码和相关文档,了解程序功能、结构、接口和内 部过程的容易程度。一个可理解的程序应该
17、具备模块化、结构化、风格一致化(代码风格与 设计风格一致)、易识别化(使用有意义的数据名和过程名),以及文档完整化等一些特性。 可测试性。可测试性是指论证程序正确性的容易程度。程序复杂度越低,证明其正确性就越 容易。而且测试用例设计得合适与否,取决于对程序的理解程度。因此,个可测试的程序 应当是可理解的、可靠的和简单的。可修改性。可修改性是指程序容易修改的程度。一个可修改的程序应当是可理解的、通用的、 灵活的和简单的。其中通用性是指程序适用于各种功能变化而无需修改。灵活性3.4.5.1. 是指能够容易地对程序进行修改。试说明软件文档与软件可维护性的关系。答:由于 文档是对软件的总目标、程序各组
18、成部分之间的关系、程序设计策略以及程序实现过程的历 史数据等的说明和补充,因此,文档对提高程序的可理解性有着重要作用。即使是-个十分 简单的程序,要想高效率地维护它就需要编制文档来解释其目的及任务。对于程序维护人 员来说,要想对程序编制人员的意图重新改造,并对今后变化的可能性进行估计,也必须建 立完整的维护文档。简述软件维护工作过程。为什么说软件维护过程是一个简单的软件开 发过程?答:在软件维护阶段,变更、完善软件的活动包括:提出维护申请;论证维护申 请;制定维护方案:进行维护活动;建立维护文档;评价维护结果。由此可见,完成-项软 件维护任务,乂好似重复了软件开发的全过程。什么是软件维护的副作
19、用?如何防止软件 维护的副作用?答:维护副作用是指由于修改而导致的错误或其他多余动作的发生。3类 主要副作用:修改代码的副作用一般可在回归测试过程中对修改代码的副作用造成的软件 故障进行查找和改正。修改数据的副作用完善的设计文档可以限制修改数据的副作用。这 种文档描述了数据结构,并提供了一种把数据元素、记录、文件和其他结构与软件模块联系 起来的交叉对照表。修改文档的副作用在软件再次交付使用之前,对整个软件配置进行评 审将大大减少修改文档的副作用。如何保证和提高软件维护的质量和效率?答提高软件的可维护性,可以从两方面来考虑:一方面,在软件开发期的各个阶段,各项开 发活动进行的同时,应该时时处处努
20、力提高软件的可维护性,保证软件产品在发布之日具有 高水准的可维护性;另一方面,在软件维护期进行维护活动的同时,也要兼顾提高软件的可 维护性,更不能对可维护性产生负面影响。具体的提高软件可维护性的技术途径主要有以下 4个方面:建立完整的文档;明确质量标准;采用易于维护的技术和工具;加强可维护性评 审。UML图解一个公司可以雇佣多个人,某个人在同一时刻只能为一家公司服务。每个公司只有一个 总经理,总经理下有多个部门经理管理公司的雇员,公司的雇员只归个经理管理。请为上 面描述的关系建立类模型,注意捕捉类之间的关联并标明类之间的多重性。1. 在一个习题库下,各科老师可以在系统中编写习题及标准答案,并将
21、编写的习题和答案 加入题库中,或者从题库中选取一组习题组成向学生布置的作业,并在适当的时间公布答案。 学生可以在系统中完成作业,也可以从题库中选择更多的习题练习。老师可以通过系统检查 学生的作业,学生可以在老师公布答案后对自己的练习进行核对。阅读这一情境,分析出该 系统所包括的实体类并适当添加属性,绘制出分析类图。2. 某银行系统的取款用例执行顺序如下,工作人员输冬取款单,输入后,银行系统请求银 行数据库匹配用户,进行身份验证,验证通过后,数据库注销相应存款,返回注销完成信息, 银行系统在存折上打印取款记录。请根据以上信息绘制顺序图。3. 在某一学生指纹考勤系统中,有一个用例名为“上课登记”。
22、此用例允许学生在上课前 使用系统识别自己的指纹信息进而识别自己的身份,同时系统可以将登录信息存储在数据库 中。系统生成一个关于该登记学生及当前口期、时间的新记录,并将该记录保存到数据库 中。请根据以上描述绘制“上课登记”用例的顺序图。4. 某银行系统存款处理过程如下。 系统将存款单上的存款金额分别记录在存折和账目文件中;将现金存人现金库;最后将打叩后的存折还给储户;请分析此交互过程所涉及的系统对象,并结合存款处理流程绘制协作图。5. 医院拟引入一款患者监护系统。基本要求是随时接收每个病人的生理信号(脉搏、体温、 血压、心电图等),定时记录病人情况,以形成患者日志。当某个病人的生理信号超出医生
23、规定的安全范围时,向值班护士发出警告信息。此外,护士在需要时还可以要求系统打印出 某个指定病人的病情报告。请根据以上描述,绘制患者监护系统的状态图。6. 当手机开机时,它处于空闲状态,当用户使用电话呼叫某人时,收集进入拨号状态。如 果呼叫成功,即电话接通,手机就处于通话状态;如果呼叫不成功,如对方线路有问题或关 机,则拒绝接听。这时手机停止呼叫,重新进入空闲状态,手机进入空闲状态下被呼叫,手 机进入响铃状态(ringing);如果用户接听电话(pick),手机处于通话状态;如果用户未做 出任何反应,可能他没有听见铃声,手机一直处于响铃状态,如果用户拒绝来电,手机回到 空闲状态。请按以上描述绘制
24、出使用手机的状态图。7. 某学生选课系统的查询课程用例如下,学生首先进入选课系统,然后输入要查询的课程 名,系统验证输入的课程名是否存在,若存在,跳转到对应的显示课程信息的页面;若不存 在,则给出提示信息,返回选课页面。请根据以上描述绘制活动图。8. 在机票预订系统中,使用系统的用户必须先注册一个自己的账号,其过程为输入注册信 息、验证信息完整、提交信息、系统进行验证(是否重名等),如果验证均通过,则注册成 功,否则失败。请根据以上描述,对用户注册用例画出活动图。9. 某个自助传货机系统的用户购买汽水的交互过程如下。用户投币,系统接收到硬币后显示出机器中的商品余量信息。用户选择其中一种汽水,
25、系统处理后将该种汽水释放。请绘制此交互过程的协作图。2. 原型化方法是一种(A )型的设计过程。A.在外向内B.自顶向下C.自内向外D.自底向上对于原型的使用建议,以下说法不正确的是(C )A.对于开发周期很长的项目,能够使用原型8.在系统的使用可能变化较大、不能相 对稳定是,能够使用原型C.缺乏开发工具,或对原型的可用工具不了解的时候,能够使用 原型D.开发者对系统的某种设计方案的实现无信心或无十分的把握时,能够使用原型原型模型的主要特点之一是(B )A.开发完毕才见到产品B.及早提供工作软件C.及早提供全部完整软件D.开发完毕 才见到工作软件第三章结构化需求分析需求工程的主要目的是(C )
26、A,制定系统开发的具体方案B.进-步确定系统的需求C.解决系统是“做什么的为题”D.解决系统是“如何做的问题”需求分析的任务不包括(B )A.问题分析B.系统设计C.需求分析D.需求评审软件分析的第一步要做的工作是(A )A.定义系统的目标B.定义系统的功能模块C.分析用户需求D.分析系统开发的可行 性可行性研究的目的是用最小的代价在尽可能短的时间内确定问题的(A )A.能否可解B.工程进度C.开发计划D.人员配置需求分析最终结果是产生(B )A.项目开发计划B.需求规格说明书C.设计说明书D.可行性分析报告在结构化分析方法中,(C )是表达系统内部数据运动的图形化技术A,数据字典B.实体关系
27、图C.数据流图D.状态转换图DFI)中的每个加工至少需要(【)A. 一-个输入流B.个输出流C.-个输入或输出流D.i个输入流和一个数处理需求分析的主要方法有(C )A,形式化分析方法B. PAD图描述C.结构化分析方法D.程序流程图SA法的主要描述手段有(B )A.系统流程图和模块图B. DFD图、数据字典、加工说明C.软件结构图、加工说明D. 功能结构图、加工说明软件需求分析阶段的工作,可以分为以下4个方面:对问题的识别、分析与综合、编写 需求分析文档以及(C )A.总结B,编写阶段性报告C.进行需求分析评审D.以上答案都不正确第四章结构化软件设计1. 在面向数据流的软件设计方法中,一般将
28、信息里与分为(D )A .数据流和控制流B.变换流和控制流C.事务流和控制流D.变换流和事务流耦合度可以分为七级,其中最松散的耦合是(A )A.非直接耦合B.数据耦合C.特征耦合D.控制耦合2. 当模块中包含复杂的条件组合,只有(A )能够清晰的表达出各种动作之间的对应关系A.判定表和判定树B.盒图C.流程图D.关系图一个软件的宽度是指其控制的(C )A.模块数B.层数C.跨度D.厚度3. 面向数据流的软件设计方法可将(C )映射成软件结构A,控制结构B.模块C.数据流D.事务流第五章面向对象的需求分析采用顷L进行软件建模的过程中,类图是系统的一种静态视图,用(B )可明确表示两 类事物之间存
29、在的整体/部分形式的关联关系。A.依赖关系B.聚合关系C.泛化关系D.实现关系在UML语言中,图中的a、b、c三中图形符号按照顺序分别表示(C )Kim, KeehyunKim, Hyunsoojung, YoontaeA.边界对象、实体对象、控制对象B.实体对象、边界对象、控制对象C.控制对象、 实体对象、边界对象D.边界对象、控制对象、实体对象不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做(B )A.继承B.多态C.动态绑定D.静态绑定第六章面向对象的软件设计1. 下面哪种设计模式定义了对象间的一种一对多的依赖关系,以便当一个对象的状态发生 改变时,所有依赖于它的对象都得到通知
30、并自动刷新(D )A. Adapter (适配器)B. Iterator(迭代器)C. Prototype (原型)D. Observer (观察 者)UML中有多种类型的图,其中,(B )对系统的使用方式进行了分类;()显示了类及 其相互关系;()显示了人或对象的活动,其方式类似于流程图;通信图显示了在某种情况下 对象之间发送的消息:()与通信图类似,但强调的是顺序而不是连接。A.用例图、顺序图、类图、活动图B.用例图、类图、活动图、顺序图C.类图、顺序图、 活动图、用例图D.活动图、顺序图、用例图、类图UML类图的类与类之间的关系有5利七继承、依赖、关联、组合和聚合,若类A需要使 用标准数
31、学函数类库中提供的功能,那么类A与标准类库中提供的类之间存在(A )关系 A.依赖B.关联C.聚合D.组合第七章软件测试技术用边界值分析法,假定1A. X=l, X=100 B. X=0, X=l, X=100, X=101 C. X=2, X=99 D.X=0, X=101下列关于软件验收测试的合格通过准则错误的是(C )A.软件需求分析说明书中定义的所有功能己全部实现B,所有测试项没有C.立项审批表、 需求分析文档、设计文档和编码实现不一致】)验收测试工件齐全以下关于集成测试的内容正确的有(D )集成测试也叫组装测试或者联合测试测试在把各个模块连接起来的时候,穿越 模块接口的数据是否会丢失
32、测试一个模块的功能是否会对另一个模块的功能产生不利 影响测试各个子功能组合起来,能否达到预期要求的父功能测试全局数据结构是否 有问题测试单个模块的误差累积起来,是否会放大,从而达到不能接受的程度A.B.C.D.以上全部正确为了提高测试的效率,应该(D )A .随机的选取测试数据B.取-切可能的输入数据作为测试数据C.在完成编码以后制定软件的测试计划1).选择发现错误的可能性大的数据作为测试数据软件调试的目的是(A )A.找出错误所在并改正之B.排除存在错误的可能性C.对错误性质进行分类D.统计 出错的次数单元测试一般以白盒为主,测试的依据是(A )A.模块功能规格说明B.系统模块结构图C.系统
33、需求规格说明D.统计出错的次 数下次关于a、P测试的描述中正确的是(C )A. a测试不需要用户代表参加B. B测试不是验收测试的种C. a测试可以有用户代表参加D. P测试是系统测试的一种1. 软件测试的目的是(B )A.评价软件的质最B.发现软件的错误C.找出软件中所有的错误D.证明软件是正确 的软件测试用例主要由输入数据和(C )两部分组成A.测试计划B.测试规则C.预期输出结果I).以往测试记录分析2. 在黑盒测试中,着重检查输入条件组合的方法是(D )A,等价类划分法B.边界值分析法C.错误推测法D.因果图法第八章软件维护技术随着软硬件环境变化而修改软件的过程是(B )A.校正性维护
34、B.适宜性维护C.完善性维护D.预防性维护为了提高软件的可维护性,在编码阶段应注意(B )A.保存测试用例和数据B.提高模块的独立性C.文档的副作用【).养成好的程序设 计风格为提高系统性能而进行的修改属于(C )A.纠正性维护B.适应性维护C.完善性维护D.测试性维护软件生命周期中,(D )阶段所站的工作量最大A.分析阶段B.设计阶段C.编码阶段D.维护阶段系统维护中要解决的为题来源于(D )A.系统分析阶段B.系统设计阶段C.系统实施阶段D.上述3个阶段(A、B、C )都包括软件维护的副作用,是指(C )A.开发时的错误B.隐含的错误C.因修改软件而造成的错误D.运行时的误操作 第一章软件
35、工程引论1.2.3.4.5. 软件工程出现的主要原因是软件危机的出现。V文档是软件产品的-部分,没有文档的 软件就不能称为软件。J软件危机的主要表现是软件需求量迅速增加,软件价格上升。X 一 个成功的项目唯-应该提交的就是运行程序法。X与计算机科学的理论研究不同,软件工 程是一门原理性学科。X第二章软件生命周期及开发模型瀑布模型和增剧模型都属于整体开发模型。X原型模型可以有效地适应用户需求的动态变化。X1. 螺旋模型在瀑布模型和增量模型的基础上增加了风险分析活动。J软件过程改进也是软件工程的范畴。V在软件开发中采用原型系统策略的主要困难是成本问题。X第三章结构化需求分析1.2.3.4. 需求分
36、析的主要目的是制定软件开发的具体方案。X用户对软件需求的描述不精确,往 往是产生软件危机的原因之一。J分层的DFI)图可以用于可行性分析阶段,描述系统的物 理结构。X在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为 了获取第一手资料,并从中提取有价值的需求。J需求规格说明数描述了系统每个功能的实现。X第四章结构化软件设计1. 在同一用户界面中,所有的菜单选择,命令输入、数据显示和其它功能应采用不同的形 式和风格。X最高的耦合度是数据耦合。7编程中应采用统一的标准和约定,降低程序的复杂性。V流程图也称为框图程序,是程序最常用的一种表示法。V2. 理想的人机界面应针对具有典型个
37、性的特定的一类用户设计。J重视程序结构的设计,能是程序具有较好的层次结构。V软件过程不用遵循“自上而下,逐步求精”的原则和单入口单出口的结构化设计思想。X软件开发、设计几乎都是从头开始,成本和进度很难估计。V耦合度是对软件结构中模块间关联程度的一种度量。在设计软件是应追求耦合尽可能紧 密的系统。XSD法是一种面向数据结构的设计方法,强调程序结构与问题结构相适应。X第五章面向对象的需求分析边界对象表示了系统与参与者之间的接II。在每一个用例中,该对象从参与者处收集信 息,并将之转换为一种实体对象和控制对象使用的形式。V采用面向对象的方法开发软件的过程中,抽取和整理用户需求并建立问题域精确模型的
38、过程叫面向对象分析。V继承仅仅允许单重继承,即不允许一个子类有多个父类。X第六章面向对象的软件设计面向对象程序设计应该在面向对象分析之前,因为只有产生了设计结果才可以对其进行 分析。X面向对象设计产生的结果在形式上可以与面向对象分析产生的结果类似,例如都可以使 用UML表达。J第七章软件测试技术1. 软件测试就是为了验证软件功能的实现是否正确,是否完成既定目标的活动,所以软件 测试在软件工程而后期才开始具体的工作。X发现错误多的模块,可能残留在模块中的错误也多。J测试人员在测试过程中发现一处问题,如果问题影响不大,而自己有可以修改,应立即 将此问题正确修改,以加快、提高开发的进程。X路径测试不
39、属于单元测试的内容。V2. 测试只要做到语句覆盖和分支覆盖,就可以发现程序中的所有错误。X软件测试只能发现错误,但不能保证测试后的软件没有错误。J集成测试是有最终用户来实施的。X所有的逻辑覆盖标准中,查错能力最强的语句覆盖。X3. 等价类划分方法能够有效的检测输入条件的各种组合可能引起的错误。X验收检洲方法需要考察模块间接口和各模块之间的联系。X第八章软件维护技术1.2.3.4.5.维护申请报告是一种由用户产生的文档,它用作计划维护任务的基础。X维护阶段是软件 生存周期中时期最短的阶段,也是花费精力和费用最少的阶段。X在软件维护中,因修改 软件而导致出现错误或其它情况成为维护的副作用。V为了提
40、高软件的可维护性和可靠性 而对软件进行的修改称为适应性维护。X维护的副作用有编码副作用、数据副作用、文档 副作用3种。J第一章软件工程引论什么是软件危机?它和软件工程有什么关系?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说, 软件危机包含下述两方面的问题:如何开发软件,以满足对软件口益增长的需求:如何维护 数量不断膨胀的已有软件。1. 简述软件和软件工程的定义以及软件工程的形成过程。答:软件是与计算机系统操作有关的程序、规程、规则及其文档和数据的统称。软件由两部 分组成:一是机器可执行的程序和有关的数据:二是与软件开发、运行、维护、使用和培训 有关的文档。软件
41、工程是指导计算机软件开发和维护的工程学科。它强调按照软件产品的生产特性,采用 工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术 和当前最好的技术结合起来,以便经济地开发出高质量的软件并有效地维护它。软件工程 的发展经历了以下3个阶段。第一阶段:20世纪70年代,一传统软件工程时代。第二阶段:20世纪80年代,一过程软件工程时代。第三阶段:进入20世纪90年代以后,一构件软件工程时代。2. 软件工程的目标是什么?如何解决多目标之间的矛盾?答:软件工程的目标:软件开发成本较低。软件功能能够满足用户的需求。软件性能较好。 软件可靠性高。软件易于使用、维护和移植。能按时
42、完成开发任务,并及时交付使用。有些目标之间是相互补充的,如易于维护和高可靠性之间、功能强与可用性之间;有些目标 是彼此相互冲突的,如若只考虑降低开发成本,很可能同时也降低了软件的可靠性,如果一 味追求提高软件的性能,可能造成开发出的软件对硬件的依赖性较强,从而影响到软件的可 移植性;不同的应用对软件质量的要求不同,如对实时系统来说,其可靠性和效率比较重要; 对生命周期较K的软件来说,其可移植性、可维护性比较重要,所以,应该根据不同的系统 需求决定个目标之间的重要性。3. 在软件开发中软件开发工具有什么作用?答:软件开发工具是指用来辅助软件开发、维护和管理的软件。现代软件工程方法得以实施 的重要
43、保证是软件开发工具和环境。软件开发工具使软件在开发效率、工程质量、减少软件 开发对人的依赖性等多方面得到改善什么是软件支持过程?它与软件工程方法学有何关系?答:软件过程是指生产满足需求且达到工程目标的软件产品所涉及的一系列相关活动,它覆盖了需求分析、系统设计、实施以及支持维护等各个阶段。软件过程有各种分类方法。按性质划分软件过程可概括为基本过程类、支持过程和组织过程 类。可见软件支持过程是软件过程中的一种。4. 在软件工程知识体系中,将软件工程划分为哪些知识域?答:SWEBOK将软件工程知识体系划分为10个知识域,分为两类过程。一类是开发与维护过 程,包括软件需求、软件设计、软件构造、软件测试
44、和软件维护;另一类是支持过程,包括 软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量。5. B. W. Boehm提出的软件工程基本原则的作用是什么?答:1.采用分阶段的生命周期计划,以实现对项目的严格管理坚持进行阶段评审,以确保软件产品质量实行严格的产品控制,以适应软件规格的变更采用现代程序设计技术2. 软件成果能清楚地审查开发小组人员应该少而精承认不断改进软件工程实践的必要性第二章软件生命周期及开发模型1. 简述什么是软件生命周期。根据国家标准计算机软件开发规范,软件生命周期主要 包括哪几个阶段?答:作为工程化的一般特征,软件产品和其他工业产品一样,软件产品也包括设计
45、、生产、 使用和消亡儿个阶段,并称之为软件的生命周期,即指软件产品从功能确定、设计、开发成 功、投入使用,并在使用中不断修改、完善,直至被新的软件所替代,而停止该软件使用的 全过程。国家标准GB8566-1988计算机软件开发规范将软件生命周期划分为儿个阶段: 可行性研究、项目计划、需求分析、总体设计、详细设计、编码实现(包括单元测试、集成 测试、确认测试)、系统运行和维护。这几个阶段又可以归纳为3个阶段,即软件定义阶段, 软件开发阶段和软件运行维护阶段。2. 瀑布模型有哪些特点?对于里程碑,你有哪些认识?答:1970年W. Royce最早提出瀑布模型。答:瀑布模型的特点:(1).线性化模型结
46、构; (2).各阶段具有里程碑特征:(3).基于文档的驱动:(4).严格的阶段评审机制。其中的里程碑是指瀑布模型中的阶段只能逐级到达、不能跨越;每个阶段都有明确的任务, 都需要产生确定的成果。由于瀑布模型是一种线性模型,要求项目严格按规程推进,必须等 到所有开发工作全部完成以后才能获得可以交付的软件产品。因此,瀑布模型不太适用于用 户需求经常变更的软件项目。瀑布模型是种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件项目 按规程管理提供了便利。例如,按阶段制订项目计划,分阶段进行成本核算,进行阶段性的 评审等。这为提高软件产品质量提供了有效保证。3. 试说明原型模型的两种实现方案
47、各有什么特点,各适用哪些情况。答:原型可以分为3类。1)抛弃式原型:这种原型在目的达到后即被抛弃,原型不作为最终产品,如上所述。2)进化式原型:这类原型的形成和发展是逐步完成的,它是高度动态迭代和高度动态循环, 每次迭代都要对系统重新进行需求规格说明、重新设计、重新实现和重新评价,所以是对付 变化最为有效的方式。3)增量式模型:系统是次段地增量构造,与演化式原型的最大区别在于增量式开4.6.7.8. 发是在软件总体设计基础上进行的。一般认为,只有大型项目才采用螺旋模型,原因是 什么?答:螺旋模型的优越性在于它吸收了 “进化”的概念,使得开发人员和用户对每一 个演化层出现的风险均有所了解,并对此
48、做出反应。但使用该模型需要丰富的风险评估经验 和专门知识,如果项目风险较大又未及时发现,势必造成重大损失。实际上,对软件项目进 行风险分析也需要费用,假如项目风险分析费用过高,甚至超过了项目的开发费用,显然就 不合适了。一般大型项目才有较高的风险,才有进行详细风险分析的必要。因此,这种模型 比较适合大型的软件项目。为什么说构建复用模型是一种有利于软件按工业流程生产的过 程模型?答:对象技术将事物实体封装成包含数据和数据处理方法的对象,并抽象为类。 经过适当的设计和实现的类也可称为构件。由于构件具有一定的通用性,可以在不同的软件 系统中被复用。在基于构件复用的软件开发中,软件由构件装配而成,这就如同用标准零件 装配汽车一样。构件复用技术,它能带来更好的复用效果,并旦具有工程特性,更能适应软 件按工业流程生产的需要。敏捷方法的价值观和原则与传统的方法有哪些联系和区别?答: 相对于“非敏捷”,敏捷不仅是体现在有效地响应变化,它还包括鼓励程序员团队与业务专 家之间的紧密协作、面对面地沟通(认为比书面的文档更有效)、强调可运行软件的快速交 付而不是中间产品,敏捷过程提倡可持续开发。建立紧凑而自我组织型的团队,能够很好地 适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100