软件工程实用教程2版课后答案

第1章软件工程引论

1.什么是软件危机?它和软件工程有什么关系?

答案要点:

由于软件规模的扩大、功能的增强和复杂性的增加,使得在一定时间内仅依靠少数人开发一个软件变得越来越困难。在软件开发中经常会出现时间延迟、预算超支、质量得不到保证、移植性差等问题,甚至有的项目在耗费了大量人力、财力后,由于离目标相差甚远而宣布失败。软件危机的突出表现:1)软件生产率低2)软件产品常常与用户要求不一致3)软件规模的增长,带来了复杂度的增加4)不可维护性突出5)软件文档不完整、不一致。

人们提出“软件工程”的概念,就是为了用工程的方法和管理手段,将软件开发纳入工程化的轨道,以便开发出成本低、功能强、可靠性高的软件产品。由于引入了软件工程的思想,把其他工程技术研究和开发领域中行之有效的知识和方法运用到软件开发工作中来,提出了按工程化的原则和方法组织软件开发工作的解决思路和具体方法,在一定程度上缓解了“软件危机”。

2.简述软件和软件工程的定义以及软件工程的形成过程。

答案要点:

计算机软件是由计算机程序的发展而形成的一个概念。它是与计算机系统操作有关的程序、规程、规则及其文档和数据的统称。软件由两部分组成:一是机器可执行的程序和有关的数据;二是与软件开发、运行、维护、使用和培训有关的文档。

软件工程是指导计算机软件开发和维护的工程学科。它强调按照软件产品的生产特性,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前最好的技术结合起来,以便经济地开发出高质量的软件并有效地维护它。

第一阶段:20世纪70年代,为了解决软件项目失败率高、错误率高以及软件维护任务重等问题,人们提出软件生产工程化的思想,希望使软件生产走上正规化的道路,并努力克服软件危机。

第二阶段:20世纪80年代,面向对象的方法与技术受到了广泛的重视,Smalltalk-80的出现标志着面向对象的程序设计进入了实用和成熟阶段。20世纪80年代末逐步发展起来的面向对象的分析与设计方法,形成了完整的面向对象技术体系,使系统的生命周期更长,适应更大规模、更广泛的应用。这时,进一步提高软件生产率、保证软件质量就成为软件工程追求的更高目标。软件生产开始进入以过程为中心的第二阶段。软件开发过程从目标管理转向过程管理,形成了软件工程的第二代——过程软件工程时代。

第三阶段:进入20世纪90年代以后,软件复用和软件构件技术正逐步成为主流软件技术,软件工程也由此进入了新的发展阶段——构件软件工程时代。

3.软件工程的目标是什么?如何解决多目标之间的矛盾?

答案要点:

软件工程的目标是基于软件项目目标的成功实现而提出的,主要体现在以下几方面。

软件开发成本较低。

软件功能能够满足用户的需求。

软件性能较好。

软件可靠性高。

软件易于使用、维护和移植。

能按时完成开发任务,并及时交付使用。

软件工程的首要问题是软件质量。软件工程的目的就是在以上目标的冲突之间取得一定程度的平衡。因此,在涉及平衡软件工程目标这个问题的时候,软件的质量应该摆在最重要的位置加以考虑。软件质量可用功能性、可靠性、可用性、效率、可维护性和可移植性等6个特性来评价。

4.在软件开发中软件工具有什么作用?

答案要点:

软件开发工具使软件在开发效率、工程质量、减少软件开发对人的依赖性等多方面得到改善。软件开发工具本身也是一个软件。软件开发工具与软件开发方法有着密切的关系,软件开发工具是软件方法在计算机上的具体实现

第2章软件生存周期及开发模型

1.简述什么是软件生存周期?根据国家标准《计算机软件开发规范》,软件生存周期主要包括哪几个阶段?

答案要点:

软件生存周期是指软件产品从功能确定、设计、开发成功、投入使用,并在使用中不断修改、完善,直至被新的软件所替代,而停止该软件使用的全过程。

国家标准GB8566-1988《计算机软件开发规范》将软件生命周期划分为几个阶段:可行性研究、项目计划、需求分析、总体设计、详细设计、编码实现(包括单元测试)、集成测试、确认测试、系统运行和维护。这几个阶段又可以归纳为3个大的阶段,即软件定义阶段,软件开发阶段和软件运行维护阶段。

2.瀑布模型有哪些特点?对于里程碑,你有哪些认识?

答案要点:

瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件项目按规程管理提供了便利。例如,按阶段制定项目计划,分阶段进行成本核算,进行阶段性的评审等。这为提高软件产品质量提供了有效保证。

瀑布模型的特点:

阶段性:前一阶段工作完成以后,后一阶段工作才能开始,前一阶段的输出文档是后一阶段的输入文档。

阶段评审:在每一阶段工作完成后都要进行评审,以便尽早发现问题,避免后期的返工,如果评审不合格,则不开始下一阶段的工作。

文档管理:在每阶段都规定了要完成的文档,没有完成文档,就认为没有完成该阶段的任务。

3.试说明原型模型的两种实现方案各有什么特点?各适用于什么情况?

答案要点:

原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求分析上的模糊认识。将模拟的手段引入需求分析的初期阶段,通过建立原型缩短用户与分析人员之间的距离。

快速原型方法具有以下一些特点。

快速原型是用来获取用户需求的,或是用来试探某种设计是否有效。一旦需求或设计确定下来,原型就将被抛弃。因此快速原型要求快速构建、容易修改,以节约原型创建成本,加速开发速度。快速原型往往采用软件生成工具来创建,例如,4GL语言。

快速原型是暂时使用的,因此并不要求完整。它往往针对某个局部问题建立专门原型,如界面原型、工作流原型、查询原型等。

快速原型不能贯穿软件的整个生命周期,它需要和其他的过程模型相结合才能产生作用。例如,前面我们提到的在瀑布模型中应用快速原型,可以解决瀑布模型在需求分析时期存在的不足。

对于一个大型复杂的系统,如果不经过分析来进行整体性划分,想直接用屏幕来一个一个地模拟是很困难的;对于大量运算、逻辑性较强的程序模块,快速原型方法很难构造出模型来供人评价。因此,原型方法只适用于小型、简单、处理过程比较明确、没有大量运算和逻辑处理过程的系统。

原型进化模型对开发过程的考虑是,针对有待开发的软件系统,先开发一个原型系统让用户使用,然后根据用户使用情况的意见反馈,对原型系统不断修改,使它逐步接近并最终达到开发目标。跟快速原型不同的是,快速原型在完成需求定义后将被抛弃,而原型进化所要创建的原型则是一个今后要投入应用的系统,只是所创建的原型系统在功能、性能等方面还有许多不足,还没有达到最终的开发目标,需要不断改进。

·原型进化模型将软件的需求细节定义、产品开发和有效性验证放在同一个工作进程中交替或并行运作。因此,在获得了软件需求框架以后,例如,软件的基本功能被确定以后,就可以直接进入到对软件的开发中。

原型进化模型是通过不断发布新的软件版本而使软件逐步完善的,因此,这种开发模式特别适合于那些用户急需的软件产品开发。它能够快速地向用户交付可以投入实际运行的软件成果,并能够很好地适应软件用户对需求规格的变更。

4.一般认为,只有大型项目才采用螺旋模型,其原因是什么?答案要点:

螺旋模型增加了软件项目的风险分析,因为项目规模越大、问题越复杂,资源、成本、进度等因素的不确定性就越大,承担项目所冒的风险也越大。人们进行风险分析与管理的目的就是在造成危害之前及时对风险进行识别、分析、采取对策,从而消除或减少风险所造成的损失。该模型适合于指导大型软件项目的开发,它将软件项目开发划分为制定计划、风险分析、实施开发以及客户评估4类活动。在对风险进行识别和分析时,如果开发风险过大,开发者和用户无法承受,项目有可能因此而终止。螺旋模型的优越性在于它吸收了“进化”的概念,使得开发人员和用户对每一个演化层出现的风险均有所了解,并对此做出反应。但使用该模型需要丰富的风险评估经验和专门知识,如果项目风险较大又未及时发现,势必造成重大损失。实际上,对软件项目进行风险分析也需要费用,假如项目风险分析费用过高,甚至超过了项目的开发费用,显然就不合适了。一般大型项目才有较高的风险,才有进行详细风险分析的必要。因此这种模型比较适合大型的软件项目。

5.为什么说构件复用模型是一种有利于软件按工业流程生产的过程模型?答案要点:构件复用模型最明显的优势是减少了需要开发的软件数量,缩短了软件交付周期,提高了软件的质量,降低了开发风险。由于构件具有一定的通用性,可以在不同的软件系统中被复用。在基于构件复用的软件开发中,软件由构件装配而成,这就如同用标准零件装配汽车一样。构件复用技术,它能带来更好的复用效果,并且具有工程特性,更能适应软件按工业流程生产的需要。

8.具有原型化的瀑布模型具有什么特点?它与瀑布模型最大的不同是什么?答案要点:特点:

·原型进化模型将软件的需求细节定义、产品开发和有效性验证放在同一个工作进程中

交替或并行运作。因此.在获得了软件需求框架以后,如软件的基本功能被确定以后,就可以直接进入到对软件的开发中。

·原型进化模型是通过不断发布新的软件版本而使软件逐步完善的,因此.这种开发模式特别适合于那些用户急需的软件产品开发。它能够快速地向用户交付可以投入实际运行的软件成果,并能够很好地适应软件用户对需求规格的变更。不同是:

传统的瀑布模型很难适应需求变化、模糊不定的软件系统的开发,而且在开发过程中,用户很难参与进去,只有到开发结束才能看到整个软件系统。这种线性的开发过程,缺乏灵活性。

原型模型的提出,可以较好的解决瀑布模型的局限性。

通过建立原型,可以更好的和客户进行沟通,解决对一些模糊需求的澄清,并且对需求的变化有较强的适应能力。原型模型可以减少技术、应用的风险,缩短开发时间,减少费用,提高生产率,通过实际运行原型,提供了用户直接评价系统的方法,促使用户主动参与开发活动,加强了信息的反馈,促进了各类人员的协调交流,减少误解,能够适应需求的变化,最终有效提高软件系统的质量。

9.某企业计划开发一个“综合信息管理系统”,该系统涉及销售、供应、财务、生产、人力资源等多个部门的信息管理。该企业的设想是按部门的优先级别逐个实现,边开发边应用。对此需要采用一种比较合适的过程模型,请对这个过程模型做出符合应用需求的选择,并说明选择理由。

答案要点:

可以采用增量模型。它是瀑布模型与原型进化模型的综合,它对软件过程的考虑是:在整体上按照瀑布模型的流程实施项目开发,以方便对项目的管理;但在软件的实际创建中,则把软件系统按功能分解为许多增量构件,并以构件为单位逐个地创建与交付,直到全部增量构架创建完毕,并都被集成到系统之中交付用户使用。

第3章结构化需求分析

1.如何理解需求分析的任务是确定软件系统“做什么”,而不是“怎么做”?

答案要点:

需求分析的任务是借助当前系统的逻辑模型导出目标系统的逻辑模型。在理解当前系统“怎么做”的基础上,抽取其“做什么”的本质,从而从当前系统的物理模型抽象出当前系统的逻辑模型。在去掉非本质的因素后,根据用户提出的对目标系统的需求,分析当前系统与目标系统的差别,明确目标系统的范围、功能、处理步骤和数据结构,建立目标系统的逻辑模型。需求分析阶段研究的对象是软件项目的用户要求,正确地理解需求和准确地表达需求是需求分析的关键,只有经过确切描述的软件需求才能成为软件设计的基础。

2.什么是用户需求?什么是系统需求?

答案要点:

用户需求是关于软件的一系列想法的集中体现,涉及软件的功能、操作方式、界面风格、用户机构的业务范围、工作流程和用户对软件应用的展望等。因此,用户需求也就是关于软件的外界特征的规格表述。

系统需求是比用户需求更具有技术特性的需求陈述。它是提供给开发者或用户方技术人员阅读的,并将作为软件开发人员设计系统的起点与基本依据。系统需求需要对系统的功能、性能、数据等方面进行规格定义。

3.

4.用户需求调查主要有哪些方法?

答案要点:

用户需求调查主要有研究资料法、问卷调查法、用户访谈和实地观察法等。

5.为什么一个系统的数据流程图一般是一套分层的数据流图?

答案要点:

分层的数据流图体现了分解和抽象的原则,它使人们不至于一下子陷入细节,而是有控制地逐步地了解更多的细节,这有助于理解问题。图中顶层抽象地描述了整个系统,底层具体地画出了软件的每一个细部,中间层则是从抽象到具体的逐步过渡。按照这样的方法,无论问题多么复杂,分析工作都可以有计划、有步骤、有条不紊地进行。

6.数据字典的作用是什么?它有哪些基本条目?

答案要点:

数据字典是结构化分析的另一个有力的工具。它是为数据流程图中的每个数据流、数据存储、加工以及组成数据流或文件的数据项做出说明,没有数据字典,数据流程图就不严格。数据字典的重要用途是作为分析阶段的工具。在数据字典中建立严密一致的定义有助于改进分析人员和用户之间的通信,避免许多误解的发生。数据字典也有助于改进不同的开发人员或不同的开发小组之间的通信。同样,将数据流程图中的每个元素的精确定义放在一起,就构成了系统的、完整的需求规格说明的主体。数据字典还作为连接软件设计、实现和进化阶段的开发机构的信息存储。在软件设计阶段,数据字典是存储文件或数据库设计的基础。在实施阶段,还可参照数据字典描述数据。随着系统的改进,字典中的信息也会发生变化,新的信息会随时加入进来。

7.需求规格说明书的主要内容是什么?它的作用是什么?

答案要点:

需求规格说明书是需求分析阶段的最终“产品”。它相当于用户和开发商之间的一项合同。它精确地描述软件产品做什么,以及产品的约束条件等。它还给软件设计提供了一个蓝图,给系统验收提供了一个验收标准集。主要内容:

1)引言:编写目的、背景、定义、参考资料

2)任务概述:目标、用户特点、假设与约束

3)需求规定:对功能的规定、对性能的规定、输入输出要求、数据管理能力要求、故障处理要求

4)运行环境规定:设备、支持软件、接口、控制

5)需求分析等

8.什么是结构化分析方法?结构化分析方法的结果是什么?

答案要点:

结构化分析方法要求软件系统的开发工作按照规定步骤,使用一定的图表工具,在结构化和模块化的基础上进行。结构化是把软件系统功能当作一个大模块,根据分析与设计的不同要求,进行模块分解或者组合。

结构化系统分析的结果是建立系统的逻辑模型。

9.题(P54)

顶图:

底图:

E-R图:

10.题(

P54

第4章结构化软件设计

1.概要设计的任务和步骤是什么?

答案要点:

概要设计的任务就是根据需求分析阶段所产生的软件需求规格说明书,建立目标系统的总体结构。1)建立目标系统的总体架构2)给出每个功能模块的功能描述、数据接口描述和调用关系,规定设计限制、外部文件及全局数据定义。3)设计数据库及数据结构。4)编写文档。

概要设计过程主要包括:1)制定规范2)系统架构设计3)软件结构设计4)公共数据结构设计5)安全性设计6)故障处理设计7)编写文档8)概要设计评审

2.如何理解模块的独立性?用什么指标来衡量模块的独立性?

答案要点:

模块的独立性是指不同模块之间的相互联系应尽可能的少,应尽可能减少公共的变量和数据结构;一个模块应尽可能在逻辑上独立,有完整单一的功能。具有良好独立性的模块,可使模块功能完整、数据接口简单、程序易于理解和维护。独立性限制了错误的作用范围,使错误易于排除,因而可使软件开发速度快,质量高。

通过模块的耦合度、模块的内聚性来衡量模块的独立性

3.从数据流程图导出的初试模块结构图是不完美的,应从哪些方面考虑改进?答案要点:

1)做到模块的高内聚性,并且能够辨别出低内聚性的模块,加以修改使之提高内聚性;

2)降低模块间的耦合度:控制使用全局数据、模块间尽量传递数据型信息;

3)作用(影响)范围在控制范围之内;

4)模块的扇入、扇出要适当等。

5.为每一种模块内聚举一个具体例子;为每一种模块耦合举一个具体例子。

1.答案要点:

偶然内聚:计算学生总成绩与统计学生出勤人数放在一个模块中;

逻辑内聚:打印会计报表与打印学生成绩表在一个模块中;

时间内聚:系统初始化模块;

过程内聚:根据考试成绩分别进行奖学金处理、留级、退学处理等

通信内聚:输入入库单、据此登记库存帐并开具发票等

顺序内聚:计算学生平均成绩、求出最高分、最低分与达到优秀的学生等。功能内聚:计算工资

2.答案要点:

答案要点:

内容耦合:A模块中功能要完成需要调用B模块中的代码来实现;

公共耦合:多个模块共享一个数据变量;

控制耦合:根据医护人员的信息,调用医生的评价模块、或护士的考核模块;数据耦合:输入考勤信息,并据此计算当月实发工资。

6.简述变换分析、事务分析的基本步骤。

答案要点:

变换流分析设计步骤:

1)确定变换流、输入流和输出流部分

2)设计模块结构的顶层和第一层

3)设计中下各层

事务分析的步骤:

∙根据事务功能设计一个顶层总控模块;

∙将事务中心的输入数据流对应为一个第一层的接收模块及该模块的下层模块;∙将事务中心对应为一个第一层的调度模块;

∙对每一种类型的事务处理,在调度模块下设计一个事务处理模块,然后为每个事务处理模块设计下面的操作模块及操作模块的细节模块。

8.画出火车票订票系统的HIPO图。

答案要点:

9.详细设计有哪些主要工具?

答案要点:

程序流程图、PAD

图和盒图是详细设计时所使用的主要工具。

10.从1000以内将能够被7整除的数查出来,并计算出这些数的和。试分别使用程序流程图、N-S盒图、PAD图设计该问题的算法。

答案要点:

publicclassA{

publicstaticvoidmain(Stringargs[]){

intn=1;

intsum=0;

while(n

n=n+1;

if((n%7==0)){

sum=sum+n;

}

}

System.out.println("在1000以内能被7整除的所有数的和是:"+sum);

}

}

12.试述界面设计中需要考虑哪些因素。

答案要点:

1)用户工作环境与工作习惯

2)界面的风格的“一致性”与“个性化”

3)界面信息反馈

4)界面的合适性

5)容错性

6)审美性和可用性

第7章软件测试技术

1.软件测试的目的和原则是什么?答案要点:

测试的目的:

软件测试是为了发现错误而执行程序的过程;

测试是为了证明程序有错,而不是证明程序没有错误;

一个好的测试用例在于它能发现至今未发现的错误;

一个成功的测试是发现了至今未发现的错误的测试。

测试的基本原则:

1)尽早并不断地进行测试

2)程序员应尽可能避免检查自己的程序

3)测试用例应当包括合理的输入条件和不合理的输入条件

4)测试用例应包括输入数据和预期的输出结果两部分

5)全面检查每个测试结果

6)严格按照测试计划来测试

7)充分注意测试中的集群现象

8)注意遵守“经济性”原则

2.简述测试的步骤。答案要点:

软件测试包括单元测试、集成测试、确认测试和系统测试。

首先要分别完成每个单元(模块)的测试任务,以确保每个模块能正常工作。然后把已经测试过的模块组装起来,进行集成测试。完成集成测试以后,要对开发工作初期制定的确认准则进行检验。完成确认测试以后,为检验它能否与系统的其他部分协调工作,还需要进行系统测试。

3.简述黑盒测试和白盒测试的方法。答案要点:

黑盒测试也称功能测试或数据驱动测试。在测试时,把程序看作一个不能打开的黑盒子,它是在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试技术主要包括等价类划分、边界值分析、因果图、错误推测等方法。

白盒测试也称结构测试或逻辑驱动测试,它是在已知程序内部结构的情况下设计测试用例的测试方法。在使用白盒测试方法时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,对所有逻辑路径进行测试,得出测试数据。白盒测试的主要技术有逻辑驱动、路径测试等。

6.什么是单元测试?单元测试测试的内容是什么?答案要点:

单元测试是对最小的可测试软件元素(单元)实施的测试,它所测试的内容包括:单元的内部结构(如逻辑和数据流)以及单元的功能和可观测的行为。使用白盒测试方法测试单元的内部结构,使用黑盒测试方法测试单元的功能和可观测的行为。

7.简述确认测试与系统测试的区别。

确认测试应检查软件能否按合同要求进行工作,即是否满足需求规格说明书中的确认标准。首先要进行有效性测试以及软件配置评审,然后进行验收测试和安装测试,在通过了鉴定之后,才能成为可交付的软件。

系统测试是将已经确认的软件、硬件等其他元素结合在一起,进行系统的各种集成测试和技术测试。其目的是通过与系统的需求相比较,发现所开发的软件与用户需求不符或矛盾的地方。系统测试是根据需求规格说明书来设计测试用例的。

区别:确认测试用户参与,采用黑盒测方法;软件设计者根据需求规格说明书,采用黑盒测方法进行。

8.什么是非渐增集成测试?什么是渐增集成测试?答案要点:

集成测试有两种方法:一种是分别测试各个模块,再把这些模块组合起来进行整体测试,这种方法称为非增量式集成。另一种是把一个要测试的模块组合到已测试好的模块中,测试完后再将一个需要测试的模块组合进来测试,逐步把所有模块组合在一起,并完成测试。该方法称为增量式集成。非增量式集成可以对模块进行并行测试,能充分利用人力,加快工程进度。但这种方法容易混乱,出现错误不容易查找和定位。增量式测试的范围是一步步扩大的,所以错误容易定位,而且已测试的模块可在新的条件下进行测试,程序测试得更彻底。增量式测试有自顶向下的增量方式和自底向上的增量方式两种测试方法。

第8章软件维护技术

2.软件可维护性与那些因素有关?采用那些因素能提高软件可维护性?答案要点:软件可维护性定义为软件的可理解、可测试、可修改的难易程度。这3个属性是密切相关的,共同表述了可维护性的定义。一个程序如果可理解性差,则是难以修改的;如果可测

试性差,修改后正确与否也难以验证。

提高软件的可维护性,可以从两方面来考虑:一方面,在软件开发期的各个阶段,各项开发活动进行的同时,应该时时处处努力提高软件的可维护性,保证软件产品在发布之日具有高水准的可维护性;另一方面,在软件维护期进行维护活动的同时,也要兼顾提高软件的可维护性,更不能对可维护性产生负面影响。

3.试说明软件文档与软件可维护性的关系?答案要点:

文档(包括软件系统文档和用户文档)是影响软件可维护性的决定性因素。由于文档是对软件的总目标、程序各组成部分之间的关系、程序设计策略以及程序实现过程的历史数据等的说明和补充,因此,文档对提高程序的可理解性有着重要作用。即使是一个十分简单的程序,要想高效率地维护它就需要编制文档来解释其目的及任务。

对于程序维护人员来说,要想对程序编制人员的意图重新改造,并对今后变化的可能性进行估计,也必须建立完整的维护文档。为了估计软件维护的有效程度,确定软件产品的质量,同时确定维护的实际开销,需要在维护过程中做好维护文档的记录。每项维护活动都应该收集下述数据,以便对维护工作进行正确评估。对一个软件维护性能的评价。如果缺乏可靠的统计数据将会变得比较困难。但是,如果所有维护活动的文档做得比较好,就可以统计出维护性能方面的度量模型。

4.简述软件维护的工作过程。为什么说软件维护过程是一个简化的软件开发过程?答案要点:

首先要建立维护机构,对每一个维护申请提出报告,并对其进行论证。然后为每一项维护申请规定维护的内容和标准的处理步骤。此外,还必须建立维护活动的登记制度,以及规定维护评审和评价的标准。

5.什么是软件维护的副作用?如何防止软件维护的副作用?答案要点:

维护副作用是指由于修改而导致的错误或其他多余动作的发生。在软件再次交付使用之前,对整个软件配置进行评审将大大减少修改文档的副作用。实际上,某些维护申请只是指出用户文档不够清楚,并不要求修改软件设计或源代码。此时,只对文档进行维护即可。

第1章软件工程引论

1.什么是软件危机?它和软件工程有什么关系?

答案要点:

由于软件规模的扩大、功能的增强和复杂性的增加,使得在一定时间内仅依靠少数人开发一个软件变得越来越困难。在软件开发中经常会出现时间延迟、预算超支、质量得不到保证、移植性差等问题,甚至有的项目在耗费了大量人力、财力后,由于离目标相差甚远而宣布失败。软件危机的突出表现:1)软件生产率低2)软件产品常常与用户要求不一致3)软件规模的增长,带来了复杂度的增加4)不可维护性突出5)软件文档不完整、不一致。

人们提出“软件工程”的概念,就是为了用工程的方法和管理手段,将软件开发纳入工程化的轨道,以便开发出成本低、功能强、可靠性高的软件产品。由于引入了软件工程的思想,把其他工程技术研究和开发领域中行之有效的知识和方法运用到软件开发工作中来,提出了按工程化的原则和方法组织软件开发工作的解决思路和具体方法,在一定程度上缓解了“软件危机”。

2.简述软件和软件工程的定义以及软件工程的形成过程。

答案要点:

计算机软件是由计算机程序的发展而形成的一个概念。它是与计算机系统操作有关的程序、规程、规则及其文档和数据的统称。软件由两部分组成:一是机器可执行的程序和有关的数据;二是与软件开发、运行、维护、使用和培训有关的文档。

软件工程是指导计算机软件开发和维护的工程学科。它强调按照软件产品的生产特性,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前最好的技术结合起来,以便经济地开发出高质量的软件并有效地维护它。

第一阶段:20世纪70年代,为了解决软件项目失败率高、错误率高以及软件维护任务重等问题,人们提出软件生产工程化的思想,希望使软件生产走上正规化的道路,并努力克服软件危机。

第二阶段:20世纪80年代,面向对象的方法与技术受到了广泛的重视,Smalltalk-80的出现标志着面向对象的程序设计进入了实用和成熟阶段。20世纪80年代末逐步发展起来的面向对象的分析与设计方法,形成了完整的面向对象技术体系,使系统的生命周期更长,适应更大规模、更广泛的应用。这时,进一步提高软件生产率、保证软件质量就成为软件工程追求的更高目标。软件生产开始进入以过程为中心的第二阶段。软件开发过程从目标管理转向过程管理,形成了软件工程的第二代——过程软件工程时代。

第三阶段:进入20世纪90年代以后,软件复用和软件构件技术正逐步成为主流软件技术,软件工程也由此进入了新的发展阶段——构件软件工程时代。

3.软件工程的目标是什么?如何解决多目标之间的矛盾?

答案要点:

软件工程的目标是基于软件项目目标的成功实现而提出的,主要体现在以下几方面。

软件开发成本较低。

软件功能能够满足用户的需求。

软件性能较好。

软件可靠性高。

软件易于使用、维护和移植。

能按时完成开发任务,并及时交付使用。

软件工程的首要问题是软件质量。软件工程的目的就是在以上目标的冲突之间取得一定程度的平衡。因此,在涉及平衡软件工程目标这个问题的时候,软件的质量应该摆在最重要的位置加以考虑。软件质量可用功能性、可靠性、可用性、效率、可维护性和可移植性等6个特性来评价。

4.在软件开发中软件工具有什么作用?

答案要点:

软件开发工具使软件在开发效率、工程质量、减少软件开发对人的依赖性等多方面得到改善。软件开发工具本身也是一个软件。软件开发工具与软件开发方法有着密切的关系,软件开发工具是软件方法在计算机上的具体实现

第2章软件生存周期及开发模型

1.简述什么是软件生存周期?根据国家标准《计算机软件开发规范》,软件生存周期主要包括哪几个阶段?

答案要点:

软件生存周期是指软件产品从功能确定、设计、开发成功、投入使用,并在使用中不断修改、完善,直至被新的软件所替代,而停止该软件使用的全过程。

国家标准GB8566-1988《计算机软件开发规范》将软件生命周期划分为几个阶段:可行性研究、项目计划、需求分析、总体设计、详细设计、编码实现(包括单元测试)、集成测试、确认测试、系统运行和维护。这几个阶段又可以归纳为3个大的阶段,即软件定义阶段,软件开发阶段和软件运行维护阶段。

2.瀑布模型有哪些特点?对于里程碑,你有哪些认识?

答案要点:

瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件项目按规程管理提供了便利。例如,按阶段制定项目计划,分阶段进行成本核算,进行阶段性的评审等。这为提高软件产品质量提供了有效保证。

瀑布模型的特点:

阶段性:前一阶段工作完成以后,后一阶段工作才能开始,前一阶段的输出文档是后一阶段的输入文档。

阶段评审:在每一阶段工作完成后都要进行评审,以便尽早发现问题,避免后期的返工,如果评审不合格,则不开始下一阶段的工作。

文档管理:在每阶段都规定了要完成的文档,没有完成文档,就认为没有完成该阶段的任务。

3.试说明原型模型的两种实现方案各有什么特点?各适用于什么情况?

答案要点:

原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求分析上的模糊认识。将模拟的手段引入需求分析的初期阶段,通过建立原型缩短用户与分析人员之间的距离。

快速原型方法具有以下一些特点。

快速原型是用来获取用户需求的,或是用来试探某种设计是否有效。一旦需求或设计确定下来,原型就将被抛弃。因此快速原型要求快速构建、容易修改,以节约原型创建成本,加速开发速度。快速原型往往采用软件生成工具来创建,例如,4GL语言。

快速原型是暂时使用的,因此并不要求完整。它往往针对某个局部问题建立专门原型,如界面原型、工作流原型、查询原型等。

快速原型不能贯穿软件的整个生命周期,它需要和其他的过程模型相结合才能产生作用。例如,前面我们提到的在瀑布模型中应用快速原型,可以解决瀑布模型在需求分析时期存在的不足。

对于一个大型复杂的系统,如果不经过分析来进行整体性划分,想直接用屏幕来一个一个地模拟是很困难的;对于大量运算、逻辑性较强的程序模块,快速原型方法很难构造出模型来供人评价。因此,原型方法只适用于小型、简单、处理过程比较明确、没有大量运算和逻辑处理过程的系统。

原型进化模型对开发过程的考虑是,针对有待开发的软件系统,先开发一个原型系统让用户使用,然后根据用户使用情况的意见反馈,对原型系统不断修改,使它逐步接近并最终达到开发目标。跟快速原型不同的是,快速原型在完成需求定义后将被抛弃,而原型进化所要创建的原型则是一个今后要投入应用的系统,只是所创建的原型系统在功能、性能等方面还有许多不足,还没有达到最终的开发目标,需要不断改进。

·原型进化模型将软件的需求细节定义、产品开发和有效性验证放在同一个工作进程中交替或并行运作。因此,在获得了软件需求框架以后,例如,软件的基本功能被确定以后,就可以直接进入到对软件的开发中。

原型进化模型是通过不断发布新的软件版本而使软件逐步完善的,因此,这种开发模式特别适合于那些用户急需的软件产品开发。它能够快速地向用户交付可以投入实际运行的软件成果,并能够很好地适应软件用户对需求规格的变更。

4.一般认为,只有大型项目才采用螺旋模型,其原因是什么?答案要点:

螺旋模型增加了软件项目的风险分析,因为项目规模越大、问题越复杂,资源、成本、进度等因素的不确定性就越大,承担项目所冒的风险也越大。人们进行风险分析与管理的目的就是在造成危害之前及时对风险进行识别、分析、采取对策,从而消除或减少风险所造成的损失。该模型适合于指导大型软件项目的开发,它将软件项目开发划分为制定计划、风险分析、实施开发以及客户评估4类活动。在对风险进行识别和分析时,如果开发风险过大,开发者和用户无法承受,项目有可能因此而终止。螺旋模型的优越性在于它吸收了“进化”的概念,使得开发人员和用户对每一个演化层出现的风险均有所了解,并对此做出反应。但使用该模型需要丰富的风险评估经验和专门知识,如果项目风险较大又未及时发现,势必造成重大损失。实际上,对软件项目进行风险分析也需要费用,假如项目风险分析费用过高,甚至超过了项目的开发费用,显然就不合适了。一般大型项目才有较高的风险,才有进行详细风险分析的必要。因此这种模型比较适合大型的软件项目。

5.为什么说构件复用模型是一种有利于软件按工业流程生产的过程模型?答案要点:构件复用模型最明显的优势是减少了需要开发的软件数量,缩短了软件交付周期,提高了软件的质量,降低了开发风险。由于构件具有一定的通用性,可以在不同的软件系统中被复用。在基于构件复用的软件开发中,软件由构件装配而成,这就如同用标准零件装配汽车一样。构件复用技术,它能带来更好的复用效果,并且具有工程特性,更能适应软件按工业流程生产的需要。

8.具有原型化的瀑布模型具有什么特点?它与瀑布模型最大的不同是什么?答案要点:特点:

·原型进化模型将软件的需求细节定义、产品开发和有效性验证放在同一个工作进程中

交替或并行运作。因此.在获得了软件需求框架以后,如软件的基本功能被确定以后,就可以直接进入到对软件的开发中。

·原型进化模型是通过不断发布新的软件版本而使软件逐步完善的,因此.这种开发模式特别适合于那些用户急需的软件产品开发。它能够快速地向用户交付可以投入实际运行的软件成果,并能够很好地适应软件用户对需求规格的变更。不同是:

传统的瀑布模型很难适应需求变化、模糊不定的软件系统的开发,而且在开发过程中,用户很难参与进去,只有到开发结束才能看到整个软件系统。这种线性的开发过程,缺乏灵活性。

原型模型的提出,可以较好的解决瀑布模型的局限性。

通过建立原型,可以更好的和客户进行沟通,解决对一些模糊需求的澄清,并且对需求的变化有较强的适应能力。原型模型可以减少技术、应用的风险,缩短开发时间,减少费用,提高生产率,通过实际运行原型,提供了用户直接评价系统的方法,促使用户主动参与开发活动,加强了信息的反馈,促进了各类人员的协调交流,减少误解,能够适应需求的变化,最终有效提高软件系统的质量。

9.某企业计划开发一个“综合信息管理系统”,该系统涉及销售、供应、财务、生产、人力资源等多个部门的信息管理。该企业的设想是按部门的优先级别逐个实现,边开发边应用。对此需要采用一种比较合适的过程模型,请对这个过程模型做出符合应用需求的选择,并说明选择理由。

答案要点:

可以采用增量模型。它是瀑布模型与原型进化模型的综合,它对软件过程的考虑是:在整体上按照瀑布模型的流程实施项目开发,以方便对项目的管理;但在软件的实际创建中,则把软件系统按功能分解为许多增量构件,并以构件为单位逐个地创建与交付,直到全部增量构架创建完毕,并都被集成到系统之中交付用户使用。

第3章结构化需求分析

1.如何理解需求分析的任务是确定软件系统“做什么”,而不是“怎么做”?

答案要点:

需求分析的任务是借助当前系统的逻辑模型导出目标系统的逻辑模型。在理解当前系统“怎么做”的基础上,抽取其“做什么”的本质,从而从当前系统的物理模型抽象出当前系统的逻辑模型。在去掉非本质的因素后,根据用户提出的对目标系统的需求,分析当前系统与目标系统的差别,明确目标系统的范围、功能、处理步骤和数据结构,建立目标系统的逻辑模型。需求分析阶段研究的对象是软件项目的用户要求,正确地理解需求和准确地表达需求是需求分析的关键,只有经过确切描述的软件需求才能成为软件设计的基础。

2.什么是用户需求?什么是系统需求?

答案要点:

用户需求是关于软件的一系列想法的集中体现,涉及软件的功能、操作方式、界面风格、用户机构的业务范围、工作流程和用户对软件应用的展望等。因此,用户需求也就是关于软件的外界特征的规格表述。

系统需求是比用户需求更具有技术特性的需求陈述。它是提供给开发者或用户方技术人员阅读的,并将作为软件开发人员设计系统的起点与基本依据。系统需求需要对系统的功能、性能、数据等方面进行规格定义。

3.

4.用户需求调查主要有哪些方法?

答案要点:

用户需求调查主要有研究资料法、问卷调查法、用户访谈和实地观察法等。

5.为什么一个系统的数据流程图一般是一套分层的数据流图?

答案要点:

分层的数据流图体现了分解和抽象的原则,它使人们不至于一下子陷入细节,而是有控制地逐步地了解更多的细节,这有助于理解问题。图中顶层抽象地描述了整个系统,底层具体地画出了软件的每一个细部,中间层则是从抽象到具体的逐步过渡。按照这样的方法,无论问题多么复杂,分析工作都可以有计划、有步骤、有条不紊地进行。

6.数据字典的作用是什么?它有哪些基本条目?

答案要点:

数据字典是结构化分析的另一个有力的工具。它是为数据流程图中的每个数据流、数据存储、加工以及组成数据流或文件的数据项做出说明,没有数据字典,数据流程图就不严格。数据字典的重要用途是作为分析阶段的工具。在数据字典中建立严密一致的定义有助于改进分析人员和用户之间的通信,避免许多误解的发生。数据字典也有助于改进不同的开发人员或不同的开发小组之间的通信。同样,将数据流程图中的每个元素的精确定义放在一起,就构成了系统的、完整的需求规格说明的主体。数据字典还作为连接软件设计、实现和进化阶段的开发机构的信息存储。在软件设计阶段,数据字典是存储文件或数据库设计的基础。在实施阶段,还可参照数据字典描述数据。随着系统的改进,字典中的信息也会发生变化,新的信息会随时加入进来。

7.需求规格说明书的主要内容是什么?它的作用是什么?

答案要点:

需求规格说明书是需求分析阶段的最终“产品”。它相当于用户和开发商之间的一项合同。它精确地描述软件产品做什么,以及产品的约束条件等。它还给软件设计提供了一个蓝图,给系统验收提供了一个验收标准集。主要内容:

1)引言:编写目的、背景、定义、参考资料

2)任务概述:目标、用户特点、假设与约束

3)需求规定:对功能的规定、对性能的规定、输入输出要求、数据管理能力要求、故障处理要求

4)运行环境规定:设备、支持软件、接口、控制

5)需求分析等

8.什么是结构化分析方法?结构化分析方法的结果是什么?

答案要点:

结构化分析方法要求软件系统的开发工作按照规定步骤,使用一定的图表工具,在结构化和模块化的基础上进行。结构化是把软件系统功能当作一个大模块,根据分析与设计的不同要求,进行模块分解或者组合。

结构化系统分析的结果是建立系统的逻辑模型。

9.题(P54)

顶图:

底图:

E-R图:

10.题(

P54

第4章结构化软件设计

1.概要设计的任务和步骤是什么?

答案要点:

概要设计的任务就是根据需求分析阶段所产生的软件需求规格说明书,建立目标系统的总体结构。1)建立目标系统的总体架构2)给出每个功能模块的功能描述、数据接口描述和调用关系,规定设计限制、外部文件及全局数据定义。3)设计数据库及数据结构。4)编写文档。

概要设计过程主要包括:1)制定规范2)系统架构设计3)软件结构设计4)公共数据结构设计5)安全性设计6)故障处理设计7)编写文档8)概要设计评审

2.如何理解模块的独立性?用什么指标来衡量模块的独立性?

答案要点:

模块的独立性是指不同模块之间的相互联系应尽可能的少,应尽可能减少公共的变量和数据结构;一个模块应尽可能在逻辑上独立,有完整单一的功能。具有良好独立性的模块,可使模块功能完整、数据接口简单、程序易于理解和维护。独立性限制了错误的作用范围,使错误易于排除,因而可使软件开发速度快,质量高。

通过模块的耦合度、模块的内聚性来衡量模块的独立性

3.从数据流程图导出的初试模块结构图是不完美的,应从哪些方面考虑改进?答案要点:

1)做到模块的高内聚性,并且能够辨别出低内聚性的模块,加以修改使之提高内聚性;

2)降低模块间的耦合度:控制使用全局数据、模块间尽量传递数据型信息;

3)作用(影响)范围在控制范围之内;

4)模块的扇入、扇出要适当等。

5.为每一种模块内聚举一个具体例子;为每一种模块耦合举一个具体例子。

1.答案要点:

偶然内聚:计算学生总成绩与统计学生出勤人数放在一个模块中;

逻辑内聚:打印会计报表与打印学生成绩表在一个模块中;

时间内聚:系统初始化模块;

过程内聚:根据考试成绩分别进行奖学金处理、留级、退学处理等

通信内聚:输入入库单、据此登记库存帐并开具发票等

顺序内聚:计算学生平均成绩、求出最高分、最低分与达到优秀的学生等。功能内聚:计算工资

2.答案要点:

答案要点:

内容耦合:A模块中功能要完成需要调用B模块中的代码来实现;

公共耦合:多个模块共享一个数据变量;

控制耦合:根据医护人员的信息,调用医生的评价模块、或护士的考核模块;数据耦合:输入考勤信息,并据此计算当月实发工资。

6.简述变换分析、事务分析的基本步骤。

答案要点:

变换流分析设计步骤:

1)确定变换流、输入流和输出流部分

2)设计模块结构的顶层和第一层

3)设计中下各层

事务分析的步骤:

∙根据事务功能设计一个顶层总控模块;

∙将事务中心的输入数据流对应为一个第一层的接收模块及该模块的下层模块;∙将事务中心对应为一个第一层的调度模块;

∙对每一种类型的事务处理,在调度模块下设计一个事务处理模块,然后为每个事务处理模块设计下面的操作模块及操作模块的细节模块。

8.画出火车票订票系统的HIPO图。

答案要点:

9.详细设计有哪些主要工具?

答案要点:

程序流程图、PAD

图和盒图是详细设计时所使用的主要工具。

10.从1000以内将能够被7整除的数查出来,并计算出这些数的和。试分别使用程序流程图、N-S盒图、PAD图设计该问题的算法。

答案要点:

publicclassA{

publicstaticvoidmain(Stringargs[]){

intn=1;

intsum=0;

while(n

n=n+1;

if((n%7==0)){

sum=sum+n;

}

}

System.out.println("在1000以内能被7整除的所有数的和是:"+sum);

}

}

12.试述界面设计中需要考虑哪些因素。

答案要点:

1)用户工作环境与工作习惯

2)界面的风格的“一致性”与“个性化”

3)界面信息反馈

4)界面的合适性

5)容错性

6)审美性和可用性

第7章软件测试技术

1.软件测试的目的和原则是什么?答案要点:

测试的目的:

软件测试是为了发现错误而执行程序的过程;

测试是为了证明程序有错,而不是证明程序没有错误;

一个好的测试用例在于它能发现至今未发现的错误;

一个成功的测试是发现了至今未发现的错误的测试。

测试的基本原则:

1)尽早并不断地进行测试

2)程序员应尽可能避免检查自己的程序

3)测试用例应当包括合理的输入条件和不合理的输入条件

4)测试用例应包括输入数据和预期的输出结果两部分

5)全面检查每个测试结果

6)严格按照测试计划来测试

7)充分注意测试中的集群现象

8)注意遵守“经济性”原则

2.简述测试的步骤。答案要点:

软件测试包括单元测试、集成测试、确认测试和系统测试。

首先要分别完成每个单元(模块)的测试任务,以确保每个模块能正常工作。然后把已经测试过的模块组装起来,进行集成测试。完成集成测试以后,要对开发工作初期制定的确认准则进行检验。完成确认测试以后,为检验它能否与系统的其他部分协调工作,还需要进行系统测试。

3.简述黑盒测试和白盒测试的方法。答案要点:

黑盒测试也称功能测试或数据驱动测试。在测试时,把程序看作一个不能打开的黑盒子,它是在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试技术主要包括等价类划分、边界值分析、因果图、错误推测等方法。

白盒测试也称结构测试或逻辑驱动测试,它是在已知程序内部结构的情况下设计测试用例的测试方法。在使用白盒测试方法时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,对所有逻辑路径进行测试,得出测试数据。白盒测试的主要技术有逻辑驱动、路径测试等。

6.什么是单元测试?单元测试测试的内容是什么?答案要点:

单元测试是对最小的可测试软件元素(单元)实施的测试,它所测试的内容包括:单元的内部结构(如逻辑和数据流)以及单元的功能和可观测的行为。使用白盒测试方法测试单元的内部结构,使用黑盒测试方法测试单元的功能和可观测的行为。

7.简述确认测试与系统测试的区别。

确认测试应检查软件能否按合同要求进行工作,即是否满足需求规格说明书中的确认标准。首先要进行有效性测试以及软件配置评审,然后进行验收测试和安装测试,在通过了鉴定之后,才能成为可交付的软件。

系统测试是将已经确认的软件、硬件等其他元素结合在一起,进行系统的各种集成测试和技术测试。其目的是通过与系统的需求相比较,发现所开发的软件与用户需求不符或矛盾的地方。系统测试是根据需求规格说明书来设计测试用例的。

区别:确认测试用户参与,采用黑盒测方法;软件设计者根据需求规格说明书,采用黑盒测方法进行。

8.什么是非渐增集成测试?什么是渐增集成测试?答案要点:

集成测试有两种方法:一种是分别测试各个模块,再把这些模块组合起来进行整体测试,这种方法称为非增量式集成。另一种是把一个要测试的模块组合到已测试好的模块中,测试完后再将一个需要测试的模块组合进来测试,逐步把所有模块组合在一起,并完成测试。该方法称为增量式集成。非增量式集成可以对模块进行并行测试,能充分利用人力,加快工程进度。但这种方法容易混乱,出现错误不容易查找和定位。增量式测试的范围是一步步扩大的,所以错误容易定位,而且已测试的模块可在新的条件下进行测试,程序测试得更彻底。增量式测试有自顶向下的增量方式和自底向上的增量方式两种测试方法。

第8章软件维护技术

2.软件可维护性与那些因素有关?采用那些因素能提高软件可维护性?答案要点:软件可维护性定义为软件的可理解、可测试、可修改的难易程度。这3个属性是密切相关的,共同表述了可维护性的定义。一个程序如果可理解性差,则是难以修改的;如果可测

试性差,修改后正确与否也难以验证。

提高软件的可维护性,可以从两方面来考虑:一方面,在软件开发期的各个阶段,各项开发活动进行的同时,应该时时处处努力提高软件的可维护性,保证软件产品在发布之日具有高水准的可维护性;另一方面,在软件维护期进行维护活动的同时,也要兼顾提高软件的可维护性,更不能对可维护性产生负面影响。

3.试说明软件文档与软件可维护性的关系?答案要点:

文档(包括软件系统文档和用户文档)是影响软件可维护性的决定性因素。由于文档是对软件的总目标、程序各组成部分之间的关系、程序设计策略以及程序实现过程的历史数据等的说明和补充,因此,文档对提高程序的可理解性有着重要作用。即使是一个十分简单的程序,要想高效率地维护它就需要编制文档来解释其目的及任务。

对于程序维护人员来说,要想对程序编制人员的意图重新改造,并对今后变化的可能性进行估计,也必须建立完整的维护文档。为了估计软件维护的有效程度,确定软件产品的质量,同时确定维护的实际开销,需要在维护过程中做好维护文档的记录。每项维护活动都应该收集下述数据,以便对维护工作进行正确评估。对一个软件维护性能的评价。如果缺乏可靠的统计数据将会变得比较困难。但是,如果所有维护活动的文档做得比较好,就可以统计出维护性能方面的度量模型。

4.简述软件维护的工作过程。为什么说软件维护过程是一个简化的软件开发过程?答案要点:

首先要建立维护机构,对每一个维护申请提出报告,并对其进行论证。然后为每一项维护申请规定维护的内容和标准的处理步骤。此外,还必须建立维护活动的登记制度,以及规定维护评审和评价的标准。

5.什么是软件维护的副作用?如何防止软件维护的副作用?答案要点:

维护副作用是指由于修改而导致的错误或其他多余动作的发生。在软件再次交付使用之前,对整个软件配置进行评审将大大减少修改文档的副作用。实际上,某些维护申请只是指出用户文档不够清楚,并不要求修改软件设计或源代码。此时,只对文档进行维护即可。


    相关文章

    2015年英语类3D电子书(题库)

    2015年英语类3D电子书(题库)共428种 英语类考试 大学英语考试 大学英语四级               1.[圣才视频]大学英语四级考试真题解析班(网授)[免费下载] 8.[3D题库]2015年12月大 ...

    大学课后习题答案

    [大学四年100万份资料大集合] http://www.3che.com/forum.php?mod=viewthread&tid=7083&fromuid=582866 新视野大学英语课后习题答案1-4册全集 http:/ ...

    实用综合教程(第二版)课后练习答案

    1.Don 't let the failure discourageyou.Try again. 2.He dropped out of college after only two weeks. 3.He spoke very high ...

    超多大学课后习题答案与大家分享啦~~

    超多大学课后习题答案与大家分享啦~~.txt男人应该感谢20多岁陪在自己身边的女人.因为20岁是男人人生的最低谷,没钱,没事业:而20岁,却是女人一生中最灿烂的季节.只要锄头舞得好,哪有墙角挖不到?2500份课后答案,很值得收藏,这里只介绍 ...

    新概念英语3全真课堂

    大家网新概念英语论坛 http://club.topsage.com/forum-73-1.html 2011新概念英语学习大全 http://club.topsage.com/thread-2408082-1-1.html 2011年最新 ...

    实用英语新编教程2(第三版)unit1~4课后翻译

    Unit one 美国人一般早早就安排好他们的退休生活. Americans usually make a plane for their retirement well in advance. 他们通常被看成最有希望的歌手. They a ...

    软件工程实用教程第三版 郭宁主编 课后习题及答案

    第一章 软件工程引论 1. 在下列选项中,(D )不是软件的特征. A . 系统性与复制性 B. 可靠性与一致性 C. 抽象性与智能型 D.有形性与可控性 2. 软件是一种(B )产品. A . 有形 B. 逻辑 C. 物质 D. 消耗 3 ...

    全面预算管理教程 课后测试

    我的课程 全面预算管理教程 关闭 ∙ ∙ ∙ ∙ 1 2 3 4.课后测试 课后测试 如果您对课程内容还没有完全掌握,可以点击这里再次观看. 观看课程 测试成绩:93.33分.恭喜您顺利通过考试! 单选题 1. 全面预算的出发点是: √ A ...

    大学物理简明教程课后习题参考答案-陈执平

    大物课后习题参考答案???1-1 一质点在xy平面内运动,在t?0 s时 它的位置矢量r?(?4i?5j)m,经Δt?5s后,其位移Δr?(6i?8j)m,求:(1) t?5 s时的位矢:(2)在Δt时间内质点的平均速度.解 (1)据题意, ...